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

Christian Rolf

042f472cd92332d20f866704d0801337?s=47 Multicore World 2013
February 21, 2013
99

Christian Rolf

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

042f472cd92332d20f866704d0801337?s=128

Multicore World 2013

February 21, 2013
Tweet

Transcript

  1. AutoCloud: Scalable Client-Side Replication Christian Rolf Corvid

  2. AutoCloud: Scalable Client-Side Replication (work in little to no progress)

    Christian Rolf Corvid
  3. Who is Corvid?

  4. Who is Corvid? • My start-up, Dunedin-based

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    be retrieved from a local mirror 99% 85% 1% 75% 72%
  22. Why?

  23. Why? • To increase throughput in times of load

  24. Why? • To increase throughput in times of load •

    To save bandwidth where it is limited (e.g. NZ)
  25. 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
  26. That said, some things are better on paper

  27. Any questions before we get technical?

  28. • Lots of data on web-pages doesn’t change and can

    be retrieved from a local mirror
  29. • 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
  30. • Lots of data on web-pages doesn’t change and can

    be retrieved from a local mirror
  31. • 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
  32. Run a web server inside the web browser, delivering data

    from the cache
  33. Run a web server inside the web browser, delivering data

    from the cache
  34. Run a web server inside the web browser, delivering data

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

    from the cache
  36. Run a web server inside the web browser, delivering data

    from the cache
  37. 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');
  38. 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
  39. Think; in-browser BitTorrent for web-pages

  40. What’s needed

  41. What’s needed • List of static & semi-static elements sent

    to clients from the web-server
  42. What’s needed • List of static & semi-static elements sent

    to clients from the web-server • Clients notifying the web-server about their mirroring
  43. 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
  44. 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
  45. Thank You!