Orientdb 简明教程

OrientDB - Caching

Caching 是一个概念,它将创建一个数据库表结构的副本,为用户应用程序提供一个舒适的环境。OrientDB 具有多个不同级别的缓存机制。

以下插图给出了有关缓存是什么的想法。

caching mechanisms

在上述插图中, DB1DB2DB3 是应用程序中使用的三个不同的数据库实例。

Level-1 缓存是一个 Local cache ,它存储特定会话已知的所有实体。如果此会话中有三个事务,它将保留所有三个事务使用的所有实体。当您关闭会话或执行“clear”方法时,会清除此缓存。它减轻了应用程序与数据库之间的 I/O 操作负担,进而提高了性能。

Level-2 缓存是一个 Real cache ,它通过使用第三方提供程序来工作。您可以完全控制缓存的内容,即您将能够指定应删除哪些条目,应将哪些条目存储更长时间,依此类推。它是多个线程之间的完全共享缓存。

Storage model 就是存储设备,即磁盘、内存或远程服务器。

How Cache Works in OrientDB?

OrientDB 缓存可在不同环境中提供不同的方法。缓存主要用于更快的数据库事务,减少事务的处理时间并提高性能。以下流程图显示了缓存如何在本地模式和客户端-服务器模式下工作。

Local Mode (Embedded Database)

以下流程图告诉您记录如何在本地模式(即当您的数据库服务器位于本地主机时)在存储和使用的应用程序之间进行。

embedded database

当客户端应用程序请求记录时,OrientDB 检查以下内容:

  1. 如果事务已经开始,则它在事务中搜索已更改的记录并在找到时返回。

  2. 如果启用了本地缓存且其中包含请求的记录,则返回该记录。

  3. 如果此时记录不在缓存中,则向存储 (磁盘、内存) 请求记录。

Client Server Mode (Remote Database)

下述流程图说明了记录位于存储与客户端-服务器模式中使用的应用程序之间的过程,即位于远程位置的数据库服务器。

remote database

当客户端应用程序请求记录时,OrientDB 检查以下信息:

  1. 如果事务已经开始,则它在事务中搜索已更改的记录并在找到时返回。

  2. 如果启用了本地缓存且其中包含请求的记录,则返回该记录。

  3. 此时,如果记录不在缓存中,则通过 TCP/IP 调用向服务器请求记录。

  4. 如果在服务器中启用了本地缓存并且包含请求的记录,则返回该记录。

  5. 此时,记录仍未缓存到服务器中,则向存储 (磁盘、内存) 请求记录。