2012-04-19 52 views
1

我希望能夠做這樣的事情:是否有交易的java key-value存儲是嵌入並允許您覆蓋對象而不先刪除它

db.createDbIfNotExists("/some/file"); 

db.doInTransaction(new DbTransaction() { 
    public void do() { 

     for(KeyValue kv : listOfKvs) { 
      ...some code that might fail... 
      db.save(kv.getKey(), kv.getObject()); 
     } 
    } 
} 

如果已經存在任何鍵,我希望新對象覆蓋該對象的舊對象。我不想加載它並刪除它或加載並更新它。

如果在事務處理過程中,我的代碼會拋出一個異常,我希望寫回滾。

需要能夠在2/3分鐘左右寫入500,000個小於1k的物體。

在此先感謝。

湯姆

+0

Redis(http://redis.io)和Voldemort(http://project-voldemort.com)都是關鍵/值,如果我記得沒錯,可以在不加載的情況下更新。你可能想檢查一下(我評論過,如果你不知道他們,我剛剛使用Redis作爲一個小緩存數據庫)。 – 2012-04-19 16:45:27

回答