Как кеш диска в OrientDB разделяется кешем чтения и записи (в процентах)

Из документов я узнал, что при 100% использовании дискового кеша orientdb он использует максимальный размер 70 % для кеша чтения и 30 % для кеша записи (http://orientdb.com/docs)./last/local-storage-disk-cache.html#interaction-between-read-and-write-caches).

Читая больше о кэше чтения, он разделен на 3 очереди: a1in, a1out и am, максимальные размеры которых соответственно составляют 25%, 50% и 75% от размера кэша чтения (http://orientdb.com/docs/last/plocal-storage-disk-cache.html#queue-sizes ).

Понятно, что в стабильном состоянии с заполненным кешем чтения ему требуется более 70% дискового кеша для кеша чтения. Как это обрабатывается? Некоторое место берется из кеша записи или просто больше места с самого начала отдается кешу чтения?

Кроме того, я хотел бы быть уверен, что:

  1. задействованный «дисковый кеш» - это ОЗУ, включенное в общий диск (жесткий диск или твердотельный накопитель), а не ОЗУ машины;
  2. пространство дискового кеша по умолчанию, используемое orientdb, составляет 100%, как написано в первой ссылке (можно изменить с помощью параметра storage.diskCache.bufferSize)

Спасибо всем!


person michelepatrassi    schedule 13.04.2016    source источник
comment
Понятно, что в стабильном состоянии с заполненным кешем чтения ему требуется более 70% дискового кеша. Я создатель дискового кеша, поэтому мой вопрос: почему вы так думаете?   -  person Andrey Lomakin    schedule 14.04.2016
comment
задействованный дисковый кеш — это ОЗУ, включенное в общий диск (жесткий диск или твердотельный накопитель), а не ОЗУ машины; Это неправда, например, Western Digital Black 500GB 7200rpm 32MB имеет кэш 32MB, чего явно недостаточно для ускорения случайных операций ввода-вывода.   -  person Andrey Lomakin    schedule 14.04.2016
comment
Дисковый кеш более 70%: я написал выше % о кэше чтения, итого это 150% (также в примере считается кэш чтения с 4 указателями страниц как 100% и, в конце примера, 6 указателей страниц хранятся (таким образом, 150%).   -  person michelepatrassi    schedule 14.04.2016
comment
Дисковый кеш на диске: так как же управлять этим состоянием, о котором вы сказали (с кешем 32 МБ)? Говоря ясно, если механизм кэширования поддерживается, где это физически делается? Спасибо.   -  person michelepatrassi    schedule 14.04.2016


Ответы (1)


Понятно, что в стабильном состоянии с заполненным кешем чтения ему требуется более 70% дискового кеша.

Не все очереди в кэше чтения содержат загруженные данные. Очередь a1out, занимающая 50% дискового кэша, содержит только информацию о страницах, которые были загружены в очередь a1in. Таким образом, эта очередь содержит так называемые «призрачные записи», которые в действительности не влияют на потребление дисковой кэш-памяти. Эта очередь необходима для предоставления дополнительных статистических данных, чтобы преодолеть недостатки простого кэша LRU.

Некоторое место берется из кеша записи или просто больше места с самого начала отдается кешу чтения

Кэш записи и кеш чтения используют одно и то же пространство памяти, но часть пространства принадлежит исключительно кешу записи.

задействованный «дисковый кеш» - это ОЗУ, включенное в общий диск (жесткий диск или твердотельный накопитель), а не ОЗУ машины;

Мы используем оперативную память сервера и не используем буфер жесткого диска.

Пространство дискового кеша по умолчанию, используемое orientdb, равно 100%.

Он используется на 100% в случае высокой нагрузки данных, в противном случае 15% сейчас (а не 30%, как указано в документации) используется только для кэша записи, поэтому не используется без наличия высокой нагрузки данных.

person Andrey Lomakin    schedule 18.04.2016