2014-09-29 47 views
1

我不太清楚怎麼問這個問題,但我希望你明白我的意思......OrientDB - 確保一致的狀態

我使用OrientDB,它是用於單個應用程序的嵌入式數據庫。我想確保應用程序崩潰時,數據庫始終處於一致狀態,這樣我的應用程序就可以再次啓動,而無需對數據庫執行維護或丟失任何數據。

也就是說,當我更改數據庫並獲得成功消息時,我知道這些更改已寫入。

這是OrientDB的支持,如果是的話,啓用的選項是什麼?

(PS如果我知道的,公認的術語,這種設置是所謂的,我可以搜索自己...)

回答

2

OrientDB使用某種回滾日誌,這意味着在默認情況下它會記錄所有操作與磁盤上存儲的數據一起執行,並將它們僅附加到日誌中。這個日誌的記錄被緩存並每秒刷新一次。如果應用程序崩潰WAL(提前寫入)/操作日誌將被讀取,所有操作將再次應用。此外,WAL還有交易的概念,這意味着如果交易在崩潰時不會完成,則所有應用的更改都將回滾。因此,您可以確定在OrientDB中關注以下內容:

  1. 所有數據都是在崩潰之前的一秒間隔之前寫入的,將會恢復。
  2. 所有寫入交易的數據將處於一致狀態。
  3. 您可能會在最後一秒的時間間隔內丟失部分數據。

WAL緩存的刷新間隔可以更改,但可能會導致性能下降。