OrientDB中的磁盘缓存如何通过读缓存和写缓存(百分比)分隔



我从文档中发现,在orientedb 100%使用磁盘缓存的情况下,读取缓存和写入缓存的最大大小分别为70%和30%(http://orientdb.com/docs/last/plocal-storage-disk-cache.html#interaction-在读取和写入高速缓存之间)。

阅读更多关于读缓存的信息,它被3个queque划分:a1in、a1out和am,它们的最大大小分别为读缓存大小的25%、50%和75%(http://orientdb.com/docs/last/plocal-storage-disk-cache.html#queue-尺寸)。

很明显,在读缓存已满的稳定条件下,它需要70%以上的磁盘缓存用于读缓存。这是如何处理的?从写缓存中占用一些空间,还是从一开始就给读缓存更多的空间?

此外,我想确定的是:

  1. 所涉及的"磁盘缓存"是包含在通用磁盘(HDD或SDD)中的RAM,而不是机器的RAM
  2. orientedb使用的磁盘缓存的默认空间是100%,如第一个链接中所写(可以通过storage.diskCache.bufferSize参数更改)

谢谢大家!

很明显,在读缓存已满的稳定条件下,它需要70%以上的磁盘缓存。

并非读缓存中的所有队列都包含已加载的数据。消耗50%磁盘缓存大小的a1out队列只包含关于在a1in队列中加载的页面的信息。因此,这个队列包含所谓的"重影条目",这些条目实际上不会影响磁盘缓存内存的消耗。需要该队列来提供额外的统计数据,以克服简单LRU缓存的缺点。

从写缓存中占用一些空间,或者从一开始就给读缓存更多的空间

写缓存和读缓存共享相同的内存空间,但部分空间专门属于写缓存。

所涉及的"磁盘缓存"是包含在通用磁盘(HDD或SDD)中的RAM,而不是机器的RAM;

我们使用服务器的RAM,不使用HDD缓冲区。

orientedb使用的磁盘缓存默认空间为100%

它在高数据负载的情况下100%使用,否则现在15%(而不是文档中所述的30%)仅用于写缓存,因此在没有高数据负载时不会使用。

最新更新