Учебники

OrientDB — Кэширование

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

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

Механизмы кеширования

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

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

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

Модель хранения — это не что иное, как устройство хранения, которое является диском, памятью или удаленным сервером.

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

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

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

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

Встроенная база данных

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

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

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

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

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

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

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

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

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

Удаленная база данных

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

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

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

В этот момент, если запись не находится в кеше, она запрашивает ее у сервера через вызов TCP / IP.

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

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