OrientDB緩存

2018-12-24 15:11 更新

Caching 是一個(gè)概念,將創(chuàng)建數(shù)據(jù)庫表結(jié)構(gòu)的副本,為用戶應(yīng)用程序提供舒適的環(huán)境。 OrientDB在不同級(jí)別有幾個(gè)緩存機(jī)制。
下圖說明了什么是緩存。

緩存機(jī)制

在上圖中,DB1,DB2,DB3是應(yīng)用程序中使用的三個(gè)不同的數(shù)據(jù)庫實(shí)例。
Level-1緩存是本地高速緩存,其存儲(chǔ)由特定會(huì)話已知的所有實(shí)體。如果在此會(huì)話中有三個(gè)事務(wù),它將保存所有三個(gè)事務(wù)使用的所有實(shí)體。當(dāng)您關(guān)閉會(huì)話或執(zhí)行“清除”方法時(shí),此高速緩存將被清除。它減少了應(yīng)用程序和數(shù)據(jù)庫之間I / O操作的負(fù)擔(dān),從而提高了性能。
Level-2緩存是通過使用第三方提供商工作的Real緩存。您可以完全控制緩存的內(nèi)容,即您可以指定應(yīng)刪除哪些條目,哪些條目應(yīng)該存儲(chǔ)得更久等。它是多線程之間的完全共享緩存。
存儲(chǔ)模型只不過是磁盤,內(nèi)存或遠(yuǎn)程服務(wù)器的存儲(chǔ)設(shè)備。

如何在OrientDB中工作?

OrientDB緩存在不同的環(huán)境中提供不同的方法。緩存主要用于更快的數(shù)據(jù)庫事務(wù),減少事務(wù)的處理時(shí)間并提高性能。以下流程圖顯示了緩存如何在本地模式和客戶端 - 服務(wù)器模式下工作。
本地模式(嵌入式數(shù)據(jù)庫)
以下流程圖告訴您記錄如何在本地模式下的存儲(chǔ)和已使用應(yīng)用程序之間,即當(dāng)您的數(shù)據(jù)庫服務(wù)器在本地主機(jī)中時(shí)。

嵌入式數(shù)據(jù)庫

當(dāng)客戶端應(yīng)用程序請(qǐng)求記錄OrientDB檢查以下:
如果事務(wù)已經(jīng)開始,則它在事務(wù)內(nèi)搜索已更改的記錄,并在找到后返回。
如果本地緩存被啟用并且包含所請(qǐng)求的記錄,則返回它。
如果此時(shí)記錄不在緩存中,則請(qǐng)求它到存儲(chǔ)(磁盤,內(nèi)存)。

客戶端服務(wù)器模式(遠(yuǎn)程數(shù)據(jù)庫)

以下流程圖告訴您記錄是如何在客戶機(jī) - 服務(wù)器模式下存儲(chǔ)和使用的應(yīng)用程序之間,即當(dāng)您的數(shù)據(jù)庫服務(wù)器在遠(yuǎn)程位置時(shí)。

遠(yuǎn)程數(shù)據(jù)庫

當(dāng)客戶端應(yīng)用程序要求的記錄,OrientDB檢查以下 :

  • 如果事務(wù)已經(jīng)開始,然后查找更改的記錄的事務(wù)中,如發(fā)現(xiàn)其返回。

  • 如果本地高速緩存被啟用,并包含所請(qǐng)求的記錄,然后返回。

  • 此時(shí),如果記錄不在高速緩存中,則它通過TCP / IP呼叫請(qǐng)求到服務(wù)器。

  • 在服務(wù)器中,如果本地高速緩存被啟用,并包含所請(qǐng)求的記錄,然后返回。

  • 在這一點(diǎn)上,仍然記錄未在服務(wù)器高速緩存,然后它要求的存儲(chǔ)(磁盤,存儲(chǔ)器)。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)