The notebook was written with the intent of being a local GUI, and as a side-effect of taking advantage of the browser, it's usable over the net. But the performance of is terrible since there are around 40,000 users, so we need to make the server much more scalable and robust overall. The plan is currently to tackle this during Sage Days 27.

Two main projects

Scratch documents

Google Code Repositories



  1. Write testing code to identify bottlenecks, and generally improve robustness.
  2. Convert notebook data structures to a database architecture to allow for concurrent scalable access to a centralized data store by different processes.
  3. Rewrite to use flask. The notebook will then depend on Flask and no longer use Twisted. The main advantage to using flask is the excellent support for mod_wsgi.

  4. Use mod_wsgi and Apache (say) to make the server scale massively.


sudo  ipfw add pipe 1 ip from any to any
sudo ipfw pipe 1 config bw 128Kbit/s queue 50Kbytes plr 0.1

If you make the bandwidth smaller, then make the queue smaller. For example, 64Kbit/s might use 10Kbytes queue.




notebook/scalability (last edited 2017-03-22 01:25:40 by mrennekamp)