OrientDB-キャッシング
Cachingは、データベーステーブル構造のコピーを作成して、ユーザーアプリケーションに快適な環境を提供する概念です。OrientDBには、さまざまなレベルでいくつかのキャッシュメカニズムがあります。
次の図は、キャッシングとは何かについてのアイデアを示しています。

上の図では DB1、 DB2、 DB3 アプリケーションで使用される3つの異なるデータベースインスタンスです。
Level-1 キャッシュは Local cache特定のセッションで認識されているすべてのエンティティを格納します。このセッションに3つのトランザクションがある場合、3つのトランザクションすべてで使用されるすべてのエンティティが保持されます。このキャッシュは、セッションを閉じるとき、または「クリア」メソッドを実行するとクリアされます。これにより、アプリケーションとデータベース間のI / O操作の負担が軽減され、パフォーマンスが向上します。
Level-2 キャッシュは Real cacheこれは、サードパーティのプロバイダーを使用して機能します。キャッシュの内容を完全に制御できます。つまり、削除するエントリ、保存期間を長くするエントリなどを指定できます。これは、複数のスレッド間で完全に共有されるキャッシュです。
Storage model ディスク、メモリ、またはリモートサーバーであるストレージデバイスに他なりません。
OrientDBでキャッシュはどのように機能しますか?
OrientDBキャッシングは、さまざまな環境でさまざまな方法を提供します。キャッシングは主に、データベーストランザクションを高速化し、トランザクションの処理時間を短縮し、パフォーマンスを向上させるために使用されます。次のフロー図は、ローカルモードとクライアントサーバーモードでキャッシュがどのように機能するかを示しています。
ローカルモード(組み込みデータベース)
次のフロー図は、ローカルモードで、つまりデータベースサーバーがローカルホストにある場合に、レコードがストレージと使用されているアプリケーションの間にどのようにあるかを示しています。

クライアントアプリケーションがレコードを要求すると、OrientDBは次のことをチェックします-
トランザクションが開始されている場合は、トランザクション内で変更されたレコードを検索し、見つかった場合はそれを返します。
ローカルキャッシュが有効で、要求されたレコードが含まれている場合は、それを返します。
この時点でレコードがキャッシュにない場合は、ストレージ(ディスク、メモリ)にレコードを要求します。
クライアントサーバーモード(リモートデータベース)
次のフロー図は、クライアントサーバーモードで、つまりデータベースサーバーがリモートロケーションにある場合に、レコードがストレージと使用されているアプリケーションの間にどのようにあるかを示しています。

クライアントアプリケーションがレコードを要求すると、OrientDBは次のことをチェックします-
トランザクションが開始されている場合は、トランザクション内で変更されたレコードを検索し、見つかった場合はそれを返します。
ローカルキャッシュが有効で、要求されたレコードが含まれている場合は、それを返します。
この時点で、レコードがキャッシュにない場合は、TCP / IP呼び出しを介してサーバーにレコードを要求します。
サーバーで、ローカルキャッシュが有効になっていて、要求されたレコードが含まれている場合は、それを返します。
この時点でも、レコードはサーバーにキャッシュされておらず、ストレージ(ディスク、メモリ)に要求されます。