Collab Draw Realtime Collaborative Drawing Board Shishir Prasad
Collab. Draw Real-time Collaborative Drawing Board Shishir Prasad Prashant Saxena Prakhar Panwaria
Collab. Draw
Overview § Goals • • High Scalability High Fault Tolerance Strong Consistency Offline Mode Client
Components § Clients § Browser § HTML 5 local store § Worker Servers § Drawing Board data store § Session Manager § Meta-data store
Workflow R eg is te r Session Manager
Pre fer r ed Se rve rs Workflow n sio es S t ar t IP S r rve e S Client A St ar t Session Ser Se ve s r I sio Manager n P Client B Worker Servers
Server Failure et. W r() e rk o Client A P r. I e rv g Preferred Servers Se Session Manager Client B Worker Servers
Server Failure et. W g Preferred Servers D r() e rk o Client A ted c ne n o isc ge Session Manager t. W ork er( on ) ne cte d Dis c Client B Worker Servers
Server Failure Preferred Servers Client A Disconnected Mode Session Manager Client B Worker Servers
Server Failure et. W Client A r() e rk o P r. I e rv g Preferred Servers Se Disconnected Mode ge t. W Session Manager Se rve ork r IP er( ) Client B Worker Servers
CAP § Hybrid Consistency § Between Preferred Servers : Strong § Rest : Eventual through anti-entropy protocol § High Availability § Worker Failure: Dynamic client migration § Network Failure: Disconnected mode § Partition Tolerance § Drawing Boards data replicated
Demo
Evaluation
Evaluation § Average time for a paint brush event to appear on the canvas § Single machine: ~20 ms § 2 machines: ~32 ms § Average recovery time (in case of server failure) § Single machine: ~18 s (Server up time) § 2 machines: ~2 s
Enhancements
Thanks!
Supplement
(1) Main Page
(2) Canvas Page
(3) Dashboard
Evaluation
90 80 70 60 50 40 30 20 10 0 1 2 3 4
- Slides: 23