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.
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 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.
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 |
Much like running server testing also requires building MPP. Run tests using:
Linux
./gradlew check
Windows
gradlew.bat check