2012-04-19 50 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

回答