Linux系统运维:http://www.linuxyw.com Linux系统运维

Linux系统运维 - 专业的linux运维学习与交流社区

当前位置: 主页 > 业内 >

MapDB 0.9.1 发布,紧急 Bug 修复版本

时间:2013-05-08 21:44来源:开源中国社区 作者:小编1000 点击:
MapDB 0.9.1 发布了,MapDB 提供了并发的 TreeMap 和 HashMap ,使用基于磁盘的存储。快速、可伸缩性以及易用。 0.9.1 版本修复了首个 0.9.0 版本中一些非常紧急的 bug,包括: Open issues: Issue #

MapDB 0.9.1 发布了,MapDB 提供了并发的 TreeMap 和 HashMap ,使用基于磁盘的存储。快速、可伸缩性以及易用。

0.9.1 版本修复了首个 0.9.0 版本中一些非常紧急的 bug,包括:

Open issues:

  • Issue #119 - BTreeMap (TreeMap) may not release all locks and consequently crash. This is unconfirmed and hard to replicate concurrent bug. I temporarily added assertion which slows down BTreeMap updates, but helps to diagnose this problem
  • Issue #118 - StoreWAL fails to create log for unknown reasons and crashes. Not reproduced yet, need to investigate.

Changes:

  • FIX #111 - Compaction fails with large data sets
  • FIX - BTreeKeySerializer.ZERO_OR_POSITIVE_INT was broken
  • FIX #89 - StoreAppend reopen failed
  • FIX #112 - Compaction fails with WAL enabled
  • FIX #114 - RandomAccessFile fails with WAL
  • FIX #113 - MemoryMappedFile was not unlocked on Windows after DB close
  • FIX - rewrite AsynwWriteEngine, fix many concurrent bugs
  • FIX - Files were not synced on DB.close(). Possible data loss.
  • FIX - free space reuse did not worked in StoreDirect and StoreWAL. Storage file grown infinitely with each update.
  • FIX #116 - HTreeMap.isEmpty returned wrong result.
  • FIX #121 - WAL could get corrupted in some cases.
  • ADD - basic benchmark
  • ADD - error message if file rename fails after compaction finishes
  • ADD - #119 BTreeMap locking could not be fixed, I added assertion to help diagnose issue. Small performance drop on BTreeMap updates.
  • ADD - performance improvement if Snapshot engine is not used.

下载地址:mapdb-0.9.1

 

MapDB 提供了并发的 TreeMap 和 HashMap ,使用基于磁盘的存储。快速、可伸缩性以及易用。

示例代码:

01 import org.mapdb.*;
02  
03 // configure and open database using builder pattern.
04 // all options are available with code auto-completion.
05 DB db = DBMaker.newFileDB(new File("testdb"))
06                .closeOnJvmShutdown()
07                .encryptionEnable("password")
08                .make();
09  
10 // open existing an collection (or create new)
11 ConcurrentNavigableMap<Integer,String> map = db.getTreeMap("collectionName");
12  
13 map.put(1"one");
14 map.put(2"two");
15 // map.keySet() is now [1,2]
16  
17 db.commit();  //persist changes into disk
18  
19 map.put(3"three");
20 // map.keySet() is now [1,2,3]
21 db.rollback(); //revert recent changes
22 // map.keySet() is now [1,2]
23  
24 db.close();

 

jankotek / MapDB

Watch433 Fork70

MapDB provides concurrent Maps, Sets and Queues backed by disk storage or off-heap-memory. It is a fast and easy to use embedded Java database engine. — More...

Issues
#92 MapDB should implement Redis API by jankotek  2013-05-06
#130 ArrayIndexOutOfBoundsException when calling clear() on empty Map by thmarx  2013-05-06
#93 Store without Index File by jankotek  2013-04-27
#123 Slow: DBMaker.randomAccessFileEnable() / RAF by ggrandes  2013-04-26
#96 Graph API by jankotek  2013-04-23

本文来自linux系统运维http://www.linuxyw.com/linux/yenei/20130508/259.html

顶一下
(0)
0%
踩一下
(0)
0%
分享按钮
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
验证码: 点击我更换图片
栏目列表
推荐内容