FireflyDB
FireflyDB is a fast, thread-safe, JVM-based key-value storage engine with microsecond latency. FireflyDB is 20x faster
for reads and 10x faster for writes than Bitcask, which has a similar architecture.
Installation
Maven
<dependency>
<groupId>com.sahilbondre</groupId>
<artifactId>fireflydb</artifactId>
<version>0.1.1</version>
</dependency>
Gradle
implementation 'com.sahilbondre:fireflydb:0.1.1'
API
FireflyDB fireflyDB=FireflyDB.getInstance("path/to/db");
fireflyDB.start();
// Write
byte[]key="testKey".getBytes();
byte[]value="testValue".getBytes();
fireflyDB.put(key,value);
// Read
byte[]result=fireflyDB.get(key);
// Compaction
// FireflyDB will compact automatically but can be triggered on demand.
fireflyDB.compact();
fireflyDB.stop();
Potential Improvements
- Add an explicit delete operation.
- Expose compaction size as a configuration option.
- Expose compaction interval as a configuration option.
- Allow larger key size as a configuration option.
- Expose read only mode.
What's Changed
- FFDB-012: Add benchmark and docs by @godcrampy in #24
Full Changelog: v0.1.0...v0.1.1