Skip to content

Simulator written in Java, on top of Peersim to Simulate distributed networks that ensure data replication.

Notifications You must be signed in to change notification settings

antonionduarte/replication-dsim

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Distributed Replication Simulator

Simulator to build and test causal consistency algorithms. Still very much a WIP.

TODO - Simulator:

  • Client simulation
    • Configuration - Reading values from config file
    • Operations being sent in a closed loop
    • Distinction between read/write operations
    • Individual Clients
    • Access specific keys to prepare for partial replication
  • Configuration - Create an easy-to-read sample config file
  • Collecting Metrics
    • Latency
    • Operations/s
    • Visibility Times
  • Heap / Scheduler change - A node can only receive one operation on a specific timestamp.
  • Transport - Latency Matrix / Throughput into consideration
    • Read and process latency matrices to a format acceptable for Peersim
    • Generate an "optimized" tree graph based on it - Python Script (altered Prim algorithm basically)
    • Import the matrices into Peersim, the Latency ones using E2ENetwork/E2ETransport, and the Tree Overlay using WireFromFile.
    • Node Bandwidth Support
  • Protocol - Base Meta-protocol
    • Internal event queue for non processed events
    • Changes to account for difference between reads/writes
    • Base protocolMessage container class getSize() for Transport etc...
    • New layer to add message processing time support instead of being done through the Heap
    • Partial Replication support
      • Each node includes the list of Partitions of every node.
      • Operation propagation according to Partitions
      • Reads / Writes accessing correct partition
      • Migrations
  • Operation propagation through the system
    • AllToAll Broadcast and Overlay Init - 1 Click
    • Saturn Tree Propagation

TODO - Protocols

  • C3
  • Saturn
  • Cure or Gentlerain

Running and Compiling the Simulator:

Compile: mvn compile assembly:single

Run: java -cp target/peersim.jar peersim.Simulator config/config.txt

Latency Matrix

  • Africa Cape Town (0)
  • US West (N. Cal) (19)
  • Asia Pacific Sydney (7)
  • Canada (8)
  • EU Paris (14)
  • EU London (13)
  • São Paulo (16)

About

Simulator written in Java, on top of Peersim to Simulate distributed networks that ensure data replication.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages