OrientDB - 快取



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

下圖說明了快取的概念。

Caching Mechanisms

在上圖中,DB1DB2DB3 是應用程式中使用的三個不同的資料庫例項。

一級快取是本地快取,它儲存特定會話已知的全部實體。如果此會話中有三個事務,它將儲存所有三個事務使用的所有實體。當您關閉會話或執行“清除”方法時,此快取將被清除。它減少了應用程式和資料庫之間I/O操作的負擔,從而提高了效能。

二級快取是一個真實快取,它透過使用第三方提供程式來工作。您可以完全控制快取的內容,即您可以指定哪些條目應被刪除,哪些條目應儲存更長時間等等。它是多個執行緒之間共享的完整快取。

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

OrientDB 中快取的工作原理?

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

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

下圖說明了在本地模式(即資料庫伺服器位於您的本地主機上)下記錄在儲存和使用應用程式之間的過程。

Embedded Database

當客戶端應用程式請求記錄時,OrientDB 檢查以下內容:

  • 如果已開始事務,則它會在事務內搜尋已更改的記錄,如果找到則返回。

  • 如果啟用了本地快取並且包含請求的記錄,則返回它。

  • 如果此時快取中沒有記錄,則向儲存(磁碟、記憶體)請求。

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

下圖說明了在客戶端-伺服器模式(即資料庫伺服器位於遠端位置)下記錄在儲存和使用應用程式之間的過程。

Remote Database

當客戶端應用程式請求記錄時,OrientDB 檢查以下內容:

  • 如果已開始事務,則它會在事務內搜尋已更改的記錄,如果找到則返回。

  • 如果啟用了本地快取並且包含請求的記錄,則返回它。

  • 此時,如果快取中沒有記錄,則透過 TCP/IP 呼叫向伺服器請求。

  • 在伺服器上,如果啟用了本地快取並且包含請求的記錄,則返回它。

  • 此時,如果伺服器中仍然沒有快取記錄,則向儲存(磁碟、記憶體)請求。

廣告