A distributed key-value store written in java that uses the reactor pattern to handle requests. For detecting node failures the epidemic protocol is used. See Description.pdf for more detailed description.
- --thread-pool-size num (Optional) Set the number of threads in the thread pool.
- --port num (Optional) Set the port number that the server listens on.
- --epidemic-port num (Optional) Set the port for the epidemic protocol to use.
- --node-list filename (Optional) Tells the server which file contains the node information. The file format is one line per server entry and each entry is of the format hostname:port:epidemic_port.
- --local-test (Optional) This option is used for testing locally, use it if the server entry provided via the node list file contains localhost or 127.0.0.1 as the hostname.
- --num-vnodes num (Optional) Sets the number of virtual nodes that the server uses. Currently this number must be the same accross all server instances participating in the same distributed system.
- --max-kvstore-size num (Optional) The approxiamte maximum number of MB that the kv-store will use before throwing out of memory error.
- --max-cache-size num (Optional) The approximate maximum number of MB that the message cache will use before dropping requests.
- --queue-size num (Optional) The maximum number of messages that the server will store in its request queue (which stores requests to other server instances).
- --replication-factor num (Optional) The number of replicas that the distributed system will try to store in the distributed system.
- Event driven architecture for scalability and performance
- Fault tolerant (tested in a memory contrainted and unreliable environment: planetlab)
- Reliable (replication is able to recover keys when nodes fail)
- Currently only supports in memory storage.