OrientDB - Кеширование

Caching- это концепция, которая создает копию структуры таблицы базы данных, обеспечивая удобную среду для пользовательских приложений. OrientDB имеет несколько механизмов кеширования на разных уровнях.

Следующая иллюстрация дает представление о том, что такое кеширование.

На иллюстрации выше DB1, DB2, DB3 - это три разных экземпляра базы данных, используемые в приложении.

Level-1 кеш - это Local cacheв котором хранятся все сущности, известные конкретному сеансу. Если у вас есть три транзакции в этом сеансе, он будет содержать все сущности, используемые всеми тремя транзакциями. Этот кеш очищается при закрытии сеанса или при выполнении метода «очистки». Это снижает нагрузку на операции ввода-вывода между приложением и базой данных и, в свою очередь, увеличивает производительность.

Level-2 кеш - это Real cacheкоторый работает с использованием стороннего поставщика. Вы можете полностью контролировать содержимое кеша, т.е. вы можете указать, какие записи следует удалить, какие хранить дольше и так далее. Это полный общий кеш для нескольких потоков.

Storage model не что иное, как запоминающее устройство, то есть диск, память или удаленный сервер.

Как работает кеш в OrientDB?

Кэширование OrientDB предоставляет разные методологии в разных средах. Кэширование в основном используется для ускорения транзакций с базой данных, сокращения времени обработки транзакции и повышения производительности. На следующих блок-схемах показано, как кэширование работает в локальном режиме и в режиме клиент-сервер.

Локальный режим (встроенная база данных)

Следующая блок-схема показывает, как запись находится между хранилищем и используемым приложением в локальном режиме, то есть когда ваш сервер базы данных находится на вашем локальном хосте.

Когда клиентское приложение запрашивает запись, OrientDB проверяет следующее:

  • Если транзакция началась, он ищет внутри транзакции измененные записи и возвращает их, если они найдены.

  • Если локальный кеш включен и содержит запрошенную запись, то возвращает ее.

  • Если в этот момент запись отсутствует в кеше, то запрашивает ее в Хранилище (диск, память).

Клиент-серверный режим (удаленная база данных)

Следующая блок-схема показывает, как запись находится между хранилищем и используемым приложением в режиме клиент-сервер, т. Е. Когда ваш сервер базы данных находится в удаленном месте.

Когда клиентское приложение запрашивает запись, OrientDB проверяет следующее:

  • Если транзакция началась, он ищет внутри транзакции измененные записи и возвращает их, если они найдены.

  • Если локальный кеш включен и содержит запрошенную запись, то возвращает ее.

  • На этом этапе, если запись отсутствует в кэше, она запрашивает ее у Сервера через вызов TCP / IP.

  • На сервере, если локальный кеш включен и содержит запрошенную запись, возвращает ее.

  • На этом этапе запись по-прежнему не кэшируется на сервере, а затем запрашивает ее в хранилище (диск, память).