📜  OrientDB-缓存

📅  最后修改于: 2020-11-26 05:39:45             🧑  作者: Mango


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

下图说明了什么是缓存。

缓存机制

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

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

2级缓存是使用第三方提供程序的真实缓存。您可以完全控制缓存的内容,即,您可以指定应删除哪些条目,哪些条目应存储更长的时间,依此类推。它是多个线程之间的完全共享缓存。

存储模型不过是磁盘,内存或远程服务器之类的存储设备。

缓存如何在OrientDB中工作?

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

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

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

嵌入式数据库

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

  • 如果事务已开始,则它将在事务内部搜索更改的记录,如果找到,则将其返回。

  • 如果启用了本地缓存并包含请求的记录,则将其返回。

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

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

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

远程数据库

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

  • 如果事务已开始,则它将在事务内部搜索更改的记录,如果找到,则将其返回。

  • 如果启用了本地缓存并包含请求的记录,则将其返回。

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

  • 在服务器中,如果启用了本地缓存并包含请求的记录,则将其返回。

  • 此时,记录仍未缓存在服务器中,然后向存储(磁盘,内存)请求记录。