Вспомогательный рабочий кэш Spark - PullRequest
0 голосов
/ 08 января 2020

Я хотел бы иметь некоторый вспомогательный кеш в памяти, который позволит избежать выполнения запросов к базе данных, но вместо этого возвращает результаты из кеша + также обновляет кеш в случае, если я изменяю базу данных. Таким образом, я хочу уменьшить количество запросов в нашей системе и повысить глобальную производительность.

Я думал о следующих решениях:

  1. Кэш RDD - для меня это кажется немного громоздкий, особенно обновление функциональности - мне нужно отключить и сохранить новую
  2. Apache Ignite, hazelcast или некоторую распределенную систему - я бы хотел избежать внедрения новой технологии для небольшого вспомогательного кэша
  3. Simple Реализация автономного кэша и наличие экземпляра на каждом рабочем узле - проблема в том, что данные должны быть изолированы и обрабатываться только на этом узле. Это может работать для меня, но проблема может возникнуть в случае сбоя узла или лучшего временного отключения узла, где, я думаю, другой узел будет обновлять данные, которые уже находятся в кэше на временно отключенном узле. Кэш может устареть Тогда и не синхронизироваться.

У вас есть какие-либо идеи, как решить проблему, или мне действительно нужно go с какой-нибудь технологией, такой как Ignite / Hazelcast?

...