Caching 是一個概念,將創(chuàng)建數(shù)據(jù)庫表結(jié)構(gòu)的副本,為用戶應(yīng)用程序提供舒適的環(huán)境。 OrientDB在不同級別有幾個緩存機制。
下圖說明了什么是緩存。
在上圖中,
DB1,DB2,DB3是應(yīng)用程序中使用的三個不同的數(shù)據(jù)庫實例。
Level-1緩存是本地高速緩存,其存儲由特定會話已知的所有實體。如果在此會話中有三個事務(wù),它將保存所有三個事務(wù)使用的所有實體。當(dāng)您關(guān)閉會話或執(zhí)行“清除”方法時,此高速緩存將被清除。它減少了應(yīng)用程序和數(shù)據(jù)庫之間I / O操作的負(fù)擔(dān),從而提高了性能。
Level-2緩存是通過使用第三方提供商工作的Real緩存。您可以完全控制緩存的內(nèi)容,即您可以指定應(yīng)刪除哪些條目,哪些條目應(yīng)該存儲得更久等。它是多線程之間的完全共享緩存。
存儲模型只不過是磁盤,內(nèi)存或遠(yuǎn)程服務(wù)器的存儲設(shè)備。
如何在OrientDB中工作?
OrientDB緩存在不同的環(huán)境中提供不同的方法。緩存主要用于更快的數(shù)據(jù)庫事務(wù),減少事務(wù)的處理時間并提高性能。以下流程圖顯示了緩存如何在本地模式和客戶端 - 服務(wù)器模式下工作。
本地模式(嵌入式數(shù)據(jù)庫)
以下流程圖告訴您記錄如何在本地模式下的存儲和已使用應(yīng)用程序之間,即當(dāng)您的數(shù)據(jù)庫服務(wù)器在本地主機中時。
當(dāng)客戶端應(yīng)用程序請求記錄OrientDB檢查以下:
如果事務(wù)已經(jīng)開始,則它在事務(wù)內(nèi)搜索已更改的記錄,并在找到后返回。
如果本地緩存被啟用并且包含所請求的記錄,則返回它。
如果此時記錄不在緩存中,則請求它到存儲(磁盤,內(nèi)存)。
客戶端服務(wù)器模式(遠(yuǎn)程數(shù)據(jù)庫)
以下流程圖告訴您記錄是如何在客戶機 - 服務(wù)器模式下存儲和使用的應(yīng)用程序之間,即當(dāng)您的數(shù)據(jù)庫服務(wù)器在遠(yuǎn)程位置時。

當(dāng)客戶端應(yīng)用程序要求的記錄,OrientDB檢查以下 :
如果事務(wù)已經(jīng)開始,然后查找更改的記錄的事務(wù)中,如發(fā)現(xiàn)其返回。
如果本地高速緩存被啟用,并包含所請求的記錄,然后返回。
此時,如果記錄不在高速緩存中,則它通過TCP / IP呼叫請求到服務(wù)器。
在服務(wù)器中,如果本地高速緩存被啟用,并包含所請求的記錄,然后返回。
在這一點上,仍然記錄未在服務(wù)器高速緩存,然后它要求的存儲(磁盤,存儲器)。
更多建議: