Simulator to build and test causal consistency algorithms. Still very much a WIP.
- 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
- C3
- Saturn
- Cure or Gentlerain
Compile: mvn compile assembly:single
Run: java -cp target/peersim.jar peersim.Simulator config/config.txt
- 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)