只讀 Key-Value 存儲系統:PalDB

jopen 9年前發布 | 9K 次閱讀 PalDB NoSQL數據庫

PalDB 是 LinkedIn 開源的可嵌入只讀 Key-Value 存儲系統。

PalDB 是一個可嵌入,持續 Key-Value 存儲,擁有非常快的性能和合適的存儲大小。PalDB 存儲是單個二進制文件,只能編寫一次,可以直接在應用中使用。

PalDB 的 JAR 包只有 110K,只有單個依賴 (snappy, which isn't mandatory),可以跟一些配置參數一起使用。

因為 PalDB 是只讀的存儲系統,只關注數據,相比其他嵌入式 key-value 系統來說非常簡單,擁有較高的吞吐量。

當前的基準測試基于 3.1Ghz Macbook Pro:

PalDB, LevelDB 和 RocksDB 吞吐量比較(越高越好)

只讀 Key-Value 存儲系統:PalDB

PalDB 和一個 Java HashSet 內存使用比較(越低越好)

只讀 Key-Value 存儲系統:PalDB

編寫一個存儲:

StoreWriter writer = PalDB.createWriter(new File("store.paldb"));
writer.put("foo", "bar");
writer.put(1213, new int[] {1, 2, 3});
writer.close();

查看一個存儲:

StoreReader reader = PalDB.createReader(new File("store.paldb"));
String val1 = reader.get("foo");
int[] val2 = reader.get(1213);
reader.close();

迭代

StoreReader reader = PalDB.createReader(new File("store.paldb"));
Iterable<Map.Entry<String, String>> iterable = reader.iterable();
for (Map.Entry<String, String> entry : iterable) {
  String key = entry.getKey();
  String value = entry.getValue();      
}
reader.close();

項目主頁:http://www.baiduhome.net/lib/view/home/1446001437413

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!