OrientDB - 缓存


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

下图说明了什么是缓存。

缓存机制

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

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

二级缓存是使用第三方提供商工作的真实缓存。您可以完全控制缓存的内容,即您将能够指定哪些条目应该被删除,哪些条目应该存储更长时间等等。它是多个线程之间完全共享的缓存。

存储模型只不过是存储设备,可以是磁盘、内存或远程服务器。

OrientDB 中的缓存如何工作?

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

本地模式(嵌入式数据库)

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

嵌入式数据库

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

  • 如果事务已经开始,那么它会在事务内部搜索更改的记录,如果找到则返回该记录。

  • 如果本地缓存已启用并且包含所请求的记录,则返回它。

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

客户端服务器模式(远程数据库)

下面的流程图告诉您在客户端-服务器模式下,即当您的数据库服务器位于远程位置时,记录如何在存储和使用的应用程序之间进行。

远程数据库

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

  • 如果事务已经开始,那么它会在事务内部搜索更改的记录,如果找到则返回该记录。

  • 如果本地缓存已启用并且包含所请求的记录,则返回它。

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

  • 在服务器中,如果本地缓存已启用并且包含所请求的记录,则返回它。

  • 此时,该记录仍然没有缓存在服务器中,则向Storage(磁盘、内存)请求该记录。