OrientDB快取


快取是一個概念,它將建立資料庫表結構的副本,為使用者應用程式提供一個舒適的環境。 OrientDB在不同級別有多種快取機制。

下面的插圖給出了關於什麼是快取的說明。

在上圖中,DB1,DB2,DB3是應用程式中使用的三種不同的資料庫範例。

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

二級快取是使用第三方提供商的實時快取。 你可以完全控制快取的內容,也就是說你可以指定哪些專案應該被刪除,哪些專案應該被儲存更長時間等等。它是多個執行緒之間的完全共用快取。

儲存模型只不過是磁碟,記憶體或遠端伺服器的儲存裝置。

OrientDB快取工作原理

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

本地模式(嵌入式資料庫)

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

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

  • 如果事務已經開始,那麼它在事務內部搜尋已更改的記錄並在找到時返回它。
  • 如果本地快取已啟用並包含所請求的記錄,則將其返回。
  • 如果此時記錄不在快取記憶體中,則請求儲存(磁碟,記憶體)。

客戶伺服器模式(遠端資料庫)

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

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

  • 如果事務已經開始,那麼它在事務內部搜尋已更改的記錄並在找到時返回它。
  • 如果本地快取已啟用並包含所請求的記錄,則將其返回。
  • 此時,如果記錄不在快取中,則通過TCP/IP呼叫向伺服器請求。
  • 在伺服器中,如果本地快取已啟用並包含所請求的記錄,則返回該快取。
  • 此時,記錄仍然不在伺服器中快取,然後向儲存(磁碟,記憶體)請求。