OrientDB緩存

緩存是一個概念,它將創建數據庫表結構的副本,爲用戶應用程序提供一個舒適的環境。 OrientDB在不同級別有多種緩存機制。

下面的插圖給出了關於什麼是緩存的說明。
OrientDB緩存

在上圖中,DB1,DB2,DB3是應用程序中使用的三種不同的數據庫實例。

一級緩存是一個本地緩存,用於存儲特定會話已知的所有實體。 如果您在此會話中有三筆交易,則它將持有所有三筆交易使用的所有實體。 當您關閉會話或執行「清除」方法時,此緩存將被清除。 它減少了應用程序和數據庫之間I/O操作的負擔,從而提高了性能。

二級緩存是使用第三方提供商的實時緩存。 你可以完全控制緩存的內容,也就是說你可以指定哪些項目應該被刪除,哪些項目應該被存儲更長時間等等。它是多個線程之間的完全共享緩存。

存儲模型只不過是磁盤,內存或遠程服務器的存儲設備。

OrientDB緩存工作原理

OrientDB緩存在不同的環境中提供不同的方法。 緩存主要用於更快的數據庫事務,減少事務的處理時間並提高性能。 以下流程圖顯示了緩存如何在本地模式和客戶端 - 服務器模式下工作。

本地模式(嵌入式數據庫)

以下流程圖告訴您如何在本地模式下存儲和使用的應用程序之間存在記錄,即當數據庫服務器位於本地主機中時。

當客戶端應用程序請求OrientDB檢查以下記錄時 -

  • 如果事務已經開始,那麼它在事務內部搜索已更改的記錄並在找到時返回它。
  • 如果本地緩存已啓用幷包含所請求的記錄,則將其返回。
  • 如果此時記錄不在高速緩存中,則請求存儲(磁盤,內存)。

客戶服務器模式(遠程數據庫)

以下流程圖說明如何在客戶端 - 服務器模式下,即數據庫服務器位於遠程位置時,記錄位於存儲和使用的應用程序之間。

OrientDB緩存

當客戶端應用程序要求記錄時,OrientDB會檢查以下內容 -

  • 如果事務已經開始,那麼它在事務內部搜索已更改的記錄並在找到時返回它。
  • 如果本地緩存已啓用幷包含所請求的記錄,則將其返回。
  • 此時,如果記錄不在緩存中,則通過TCP/IP調用向服務器請求。
  • 在服務器中,如果本地緩存已啓用幷包含所請求的記錄,則返回該緩存。
  • 此時,記錄仍然不在服務器中緩存,然後向存儲(磁盤,內存)請求。