OrientDB - Кеширование
Caching- это концепция, которая создает копию структуры таблицы базы данных, обеспечивая удобную среду для пользовательских приложений. OrientDB имеет несколько механизмов кеширования на разных уровнях.
Следующая иллюстрация дает представление о том, что такое кеширование.
На иллюстрации выше DB1, DB2, DB3 - это три разных экземпляра базы данных, используемые в приложении.
Level-1 кеш - это Local cacheв котором хранятся все сущности, известные конкретному сеансу. Если у вас есть три транзакции в этом сеансе, он будет содержать все сущности, используемые всеми тремя транзакциями. Этот кеш очищается при закрытии сеанса или при выполнении метода «очистки». Это снижает нагрузку на операции ввода-вывода между приложением и базой данных и, в свою очередь, увеличивает производительность.
Level-2 кеш - это Real cacheкоторый работает с использованием стороннего поставщика. Вы можете полностью контролировать содержимое кеша, т.е. вы можете указать, какие записи следует удалить, какие хранить дольше и так далее. Это полный общий кеш для нескольких потоков.
Storage model не что иное, как запоминающее устройство, то есть диск, память или удаленный сервер.
Как работает кеш в OrientDB?
Кэширование OrientDB предоставляет разные методологии в разных средах. Кэширование в основном используется для ускорения транзакций с базой данных, сокращения времени обработки транзакции и повышения производительности. На следующих блок-схемах показано, как кэширование работает в локальном режиме и в режиме клиент-сервер.
Локальный режим (встроенная база данных)
Следующая блок-схема показывает, как запись находится между хранилищем и используемым приложением в локальном режиме, то есть когда ваш сервер базы данных находится на вашем локальном хосте.
Когда клиентское приложение запрашивает запись, OrientDB проверяет следующее:
Если транзакция началась, он ищет внутри транзакции измененные записи и возвращает их, если они найдены.
Если локальный кеш включен и содержит запрошенную запись, то возвращает ее.
Если в этот момент запись отсутствует в кеше, то запрашивает ее в Хранилище (диск, память).
Клиент-серверный режим (удаленная база данных)
Следующая блок-схема показывает, как запись находится между хранилищем и используемым приложением в режиме клиент-сервер, т. Е. Когда ваш сервер базы данных находится в удаленном месте.
Когда клиентское приложение запрашивает запись, OrientDB проверяет следующее:
Если транзакция началась, он ищет внутри транзакции измененные записи и возвращает их, если они найдены.
Если локальный кеш включен и содержит запрошенную запись, то возвращает ее.
На этом этапе, если запись отсутствует в кэше, она запрашивает ее у Сервера через вызов TCP / IP.
На сервере, если локальный кеш включен и содержит запрошенную запись, возвращает ее.
На этом этапе запись по-прежнему не кэшируется на сервере, а затем запрашивает ее в хранилище (диск, память).