2014-09-06 47 views
0

(具有類似的標題邊欄上的其他問題不解決這個問題。)如何鎖定所有其他客戶端的MongoDB集合(寫入或讀取)?

我有我使用像一個歷史序列發生器集合:

{seq_id:1,dt:ISODate(...),type:'service_a',stage:1} 
{seq_id:2,dt:ISODate(...),type:'service_a',stage:2} 
{seq_id:3,dt:ISODate(...),type:'service_a',stage:3} 
{seq_id:1,dt:ISODate(...),type:'service_b',stage:1} 
{seq_id:2,dt:ISODate(...),type:'service_b',stage:2} 
{seq_id:3,dt:ISODate(...),type:'service_b',stage:3} 

我希望能夠到:

  1. 來自所有其他客戶端鎖定集合(讀或寫)
  2. 閱讀最新seq_id到內存
  3. 在內存中生成(Java的,在我的情況)3個順序ID
  4. 插入3個文件到集合
  5. 解鎖收集

我希望能夠從甚至閱讀鎖定所有其他客戶端當我的客戶端將其鎖定時,作爲另一個客戶端,在我的客戶端到達步驟4之前進入步驟2和3會導致seq_ids衝突。

回答

0

MongoDB是eventually consistent它排除了基於鎖的模式,也保證了最新的更新。這聽起來像你應該選擇像Cassandra或標準的RDBS。

相關問題