2017-09-06 57 views
1

我正在考慮arangoDB進行圖搜索。ArangoDB集合鎖

我有兩個集合,一個是人,另一個是電影,我在人與電影之間做了一個圖。

當我插入查詢類似下面

FOR p IN people 
    FOR m In movie 
    FILTER p.movieName == m.title 
    INSERT {_from:p._id, _to:m._id} IN peopleAndMovieRelation 

當我上面的查詢查詢,我無法訪問peopleAndMovieRelation邊緣集合。查詢完成後,我可以訪問它。

當數據插入時,ArangoDB是否使用收集鎖?

回答

1

如果您將ArangoDB與MMFiles存儲引擎一起使用,則寫入塊讀取和鎖定位於集合級別。因此在查詢執行時邊緣集合無法訪問,邊緣被寫入peopleAndMovieRelation

但是,使用RocksDB存儲引擎時,文檔級鎖允許併發寫入。寫入不會阻止讀取。讀取不會阻止寫入。

https://docs.arangodb.com/3.2/Manual/Architecture/StorageEngines.html

0

下面是存儲引擎額外的解釋。 Comparing RocksDB and MMFiles Storage Engine

在縮短)

MMFiles存儲引擎
- ArangoDB默認存儲引擎基於最新版本(3.2)
- 收藏級鎖
- 所有指標在啓動時加載主內存(長啓動如果索引太多,但訪問速度最快)

RocksDB存儲引擎
- 支持3.2+
- 在主內存中緩存數據,但是從磁盤負載是否需要
- 所有指數都寫在磁盤
- 最快的啓動(在啓動時無負載指標),逐步提高性能