Upgrade, flask, sage 4.7, and ext4 filesystem
People: W. Stein, J. Grout, M. Hansen
Published Interacts
See if it is possible to get Mitesh Patel's patch to work: http://trac.sagemath.org/sage_trac/ticket/7908
Test server (might be up): http://sage.math.washington.edu:8976/pub/
Database
If we stick with the filesystem: NEED a very fast filesystem that supports > 4 million inodes and > 32000 directories per directory, i.e., ext4. This is difficult because boxen and sage.math are both Ubuntu 8.10.
- Also, want to at a minimum have user and worksheet metadata stored in database so startup is faster.
- Could run the server in a virtual machine, which would support ext4. But are virtual machines fast enough these days? They weren't last year. This would be worth trying.
- Or stick with the filesystem (see below).
Filesystem Thoughts
(mhansen is doing this) Fix the __worksheet object to not load everything. Scary stuff if you look at notebook.py.
- (mhansen) Write a script to prune the filesystem, e.g., deleting cell directories that are empty.
- (mhansen?) Make it so user directories are stored in a hierarchical way. E.g., home/_store/
Current Servers
http://flask.sagenb.org -- not upgraded
Backup Strategy
- ?
Untrusted User Code: must all be executed in a virtual machine
- ?
Monitoring
I spent a day writing this script to *manage* a collection of notebook servers: admin
- Nagios -- investigate for monitoring
Or extend this script: http://wstein.org/home/wstein/bin/watch.sage
Virtual Machines
- I tried install virtualbox 4 on sage.math and failed, due to the Linux source and Linux kernel being out of sync somehow. Probably just needs an upgrade and reboot.
- I am scared to upgrade virtualbox on boxen.math.
- The Virtualbox on boxen.math is somewhat unstable and very old.
William's TODO List
[x] official sagenb list of optional packages, and install them all. [x] make a "stop" script for servers that works. [x] fix any remaining links issues, then archive the fixlinks script [x] start servers and test [x] re-enable automatic backups [x] upgrade my sagenb install to include rado's fix for unicode issue, etc. [x] search is broken (mhansen is on it) [x] The _sage_ directory gets too big. (mhansen is on it) [x] script that computes and summarizes stats about all notebook servers: - number of users - how many users who evaluated code during the last day, week, etc. -- implement by reading last mod time on all history.pickle files. - what code was evaluated recently (read from history) - size of each notebook server - disk usage of each user - how many worksheets each user has (use a nosqlite db?) datetime server username last_datetime num_worksheets disk_usage [ ] make it so all pickle db's get saved in a non-corruptable way (atomic) [ ] push merged combined changes to wstein repo? [ ] MATHJAX (or jsmath image fonts ?!) [ ] twisted -- number of threads? [ ] ban copying results over if too big. [ ] somehow migrate flask.sagenb.org ??? or just wait.