Skip to content

dedocibula/MPPKeyValueStore

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

69 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MPP Key-Value Store

Build Status

MPP is a simple in-memory key-value store written in Java 8. It provides high-level Java API/client and a lightweight socket server based on a lock-free hash map for high throughput and scalability. By default, the server features a custom Java map implementation heavily influenced by the concepts proposed in famous, heavily-cited research paper by Maged M. Michael - High Performance Dynamic Lock-Free Hash Tables and List-Based Sets.

Building MPP

MPP is built using Gradle. To build MPP project (both server and client), run:

Linux

./gradlew assemble (build only) 
./gradlew build (build + tests)

Windows

gradlew.bat assemble (build only) 
gradlew.bat build (build + tests)

If you have Gradle distribution installed on your machine feel free to use it directly rather than relying on associated Gradle wrapper scripts.

Running MPP Server

Running MPP server first requires building MPP. Once MPP is built, server can be started using:

Linux

bin/mpp-server

Windows

bin\mpp-server.bat

Alternatively, you can start the server directly from your IDE. See examples section.

Examples

MPP store also comes with sample programs in the example directory.

Server com.javarockstars.mpp.keyvaluestore.example.ServerExample
Client com.javarockstars.mpp.keyvaluestore.example.ClientExample

Running Tests

Much like running server testing also requires building MPP. Run tests using:

Linux

./gradlew check

Windows

gradlew.bat check