collabdraw real-time collaborative drawing board shishir prasad prashant saxena prakhar panwaria
TRANSCRIPT
CollabDraw Real-time Collaborative Drawing Board
Shishir PrasadPrashant SaxenaPrakhar Panwaria
CollabDraw
Goals• High Scalability• High Fault Tolerance• Strong Consistency• Offline Mode
Overview
Client
Clients Browser HTML5 local store
Worker Servers Drawing Board data store
Session Manager Meta-data store
Components
Session Manager
Register
Workflow
Session Manager
Worker Servers
Client A
Start Sess
ion
Server IP
Pre
ferr
ed S
erve
rs
Client B
Start Session
Server IP
Workflow
Session Manager
Worker Servers
Client A
getWorke
r()
Server IP
Pre
ferr
ed S
erve
rs
Client B
Server Failure
Session Manager
Worker Servers
Client A
Pre
ferr
ed S
erve
rs
Client B
getWorke
r()
Disconnecte
d
getWorker()Disconnected
Server Failure
Session Manager
Worker Servers
Client A
Pre
ferr
ed S
erve
rs
Client B
Disconnected Mode
Server Failure
Session Manager
Worker Servers
Client A
Pre
ferr
ed S
erve
rs
Client B
Disconnected Mode
getWorke
r()
Server IP
getWorker() Server IP
Server Failure
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
CAP
Demo
Evaluation
Evaluation Average time for a paint brush event to appear on
the canvas Single machine: ~20 ms 2 machines: ~32ms
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
1 2 3 40
10
20
30
40
50
60
70
80
90