Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Christian Rolf

Multicore World 2013
February 21, 2013
150

Christian Rolf

My presentation of Corvid, and the fun, but useless, academic exercise of AutoCloud

Multicore World 2013

February 21, 2013
Tweet

Transcript

  1. Who is Corvid? • My start-up, Dunedin-based • Mentored by

    Nicolas • We develop cloud software for automatic rostering
  2. Who is Corvid? • My start-up, Dunedin-based • Mentored by

    Nicolas • We develop cloud software for automatic rostering • Embarrassingly parallel problem, but NP-complete
  3. AutoCloud in a single sentence • Lots of data on

    web-pages doesn’t change and can be retrieved from a local mirror
  4. • Lots of data on web-pages doesn’t change and can

    be retrieved from a local mirror Static
  5. • Lots of data on web-pages doesn’t change and can

    be retrieved from a local mirror Static Dynamic
  6. • Lots of data on web-pages doesn’t change and can

    be retrieved from a local mirror Static Dynamic Semi-static
  7. • Lots of data on web-pages doesn’t change and can

    be retrieved from a local mirror 99%
  8. • Lots of data on web-pages doesn’t change and can

    be retrieved from a local mirror 99% 1%
  9. • Lots of data on web-pages doesn’t change and can

    be retrieved from a local mirror 99% 85% 1%
  10. • Lots of data on web-pages doesn’t change and can

    be retrieved from a local mirror 99% 85% 1% 75%
  11. • Lots of data on web-pages doesn’t change and can

    be retrieved from a local mirror 99% 85% 1% 75% 72%
  12. Why? • To increase throughput in times of load •

    To save bandwidth where it is limited (e.g. NZ)
  13. Why? • To increase throughput in times of load •

    To save bandwidth where it is limited (e.g. NZ) • To reduce the cost of running popular sites
  14. • Lots of data on web-pages doesn’t change and can

    be retrieved from a local mirror A client that has a copy of a web page in its browser cache
  15. • Lots of data on web-pages doesn’t change and can

    be retrieved from a local mirror Run a web server inside the web browser, delivering data from the cache
  16. Run a web server inside the web browser, delivering data

    from the cache The static and semi-static data stored in the cache
  17. Run a web server inside the web browser, delivering data

    from the cache var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(80, '127.0.0.1');
  18. Run a web server inside the web browser, delivering data

    from the cache The overhead is small compared to the size of a web-page
  19. What’s needed • List of static & semi-static elements sent

    to clients from the web-server • Clients notifying the web-server about their mirroring
  20. What’s needed • List of static & semi-static elements sent

    to clients from the web-server • Clients notifying the web-server about their mirroring • Subsequent clients will get dynamic data from web-server and the rest from mirrors
  21. What’s needed • List of static & semi-static elements sent

    to clients from the web-server • Clients notifying the web-server about their mirroring • Subsequent clients will get dynamic data from web-server and the rest from mirrors • More time than I have