3

可能重复:
以原子方式更新多行

我有一组存储在 noSQL 数据库中的数据块。要更新数据,我需要:

  1. 获取(获取)
  2. 更新数据
  3. 写(放)

(不幸的是,没有直接的 CAS 支持)。

此操作是分批完​​成的,由键(二进制键/值 DB)索引的数据块属于我可以用于锁定的顺序。但是,我可能需要在一个批次中更新多个订单,因此我需要锁定全部或不锁定(最好是定时阻塞操作)。

API 看起来像:

void lock(long... orderIds, long timeout) throws NotPossibleToGetLockException;
void unlock(long... orderIds);

我想死锁不是一个真正的问题,因为我可以在尝试获得锁之前轻松排序所需的订单。

有没有支持这种功能的库?

4

0 回答 0