2016-10-10 62 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

您是對的,但只有此選項。 –