FireflyD:基于 JVM 的键值存储引擎


FireflyDB 是一种快速、线程安全、基于 JVM 的键值存储引擎,具有微秒级延迟。

FireflyDB 的读取速度比具有类似架构Bitcask快 20 倍,写入速度快 10 倍。

FireflyDB是基于哈希的,并放弃范围查询以实现高吞吐量和低延迟。因此,它的写入速度比LevelDB (Google) 和RocksDB (Facebook) 快约 100 倍。

FireflyDB 依赖于合理的默认值,并且不公开许多配置选项。FireflyDB 的设计经过合理权衡以实现高性能

  1. 所有key都必须适合内存。这是所有基于哈希的存储引擎的权衡。即使最大密钥大小为 32KB,FireflyDB 也可以在每 1GB 内存中存储 32,000 多个密钥。
  2. FireflyDB 不支持范围查询。
  3. 最大key大小为 32768 字节或 32KB。
  4. 最大值大小为 2,147,483,647 字节或 2.14 GB。

<dependency>
    <groupId>com.sahilbondre</groupId>
    <artifactId>fireflydb</artifactId>
    <version>0.1.1</version>
</dependency>

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);

// 压实 ;
// FireflyDB 会自动压缩,但也可以按需触发。
    fireflyDB.compact();

    fireflyDB.stop();