2016-10-10 45 views
0

我在orientDB中创建一个系统我有一些情况下,我需要使系统中多个线程向特定顶点添加边并更新该顶点上的属性。 我的问题是,是否有任何方法,我可以阻止对这个顶点的操作,直到其他线程完成代码块这块读取和写入?orientDB图表API上的悲观锁

我来说,我有顶点酒店和空房物业的数量,任何保留,我的代码将工作按以下顺序

1-确保剩下的房间大小超过1

2 - 创建一个边缘到客户顶点

3-减少可用房间由一个

回答

1

OrientDB数量有一个乐观并发控制系统,但它可以在一些记录非常高并发更新更有效的锁定记录以避免重试。您可以通过自己或使用存储API同步访问权限。请注意,这只适用于非远程数据库。

((OStorageEmbedded)db.getStorage()).acquireWriteLock(final ORID iRid) 
((OStorageEmbedded)db.getStorage()).acquireSharedLock(final ORID iRid) 
((OStorageEmbedded)db.getStorage()).releaseWriteLock(final ORID iRid) 
((OStorageEmbedded)db.getStorage()).releaseSharedLock(final ORID iRid) 

来源和用法的例子可以在official documentation找到。

+0

感谢您的回答,但是这里的问题在于上述示例仅适用于非远程数据库,并且大多数企业应用程序正在使用远程数据库 –

+0

您是对的,但只有此选项。 –