У меня есть система, состоящая из нескольких экземпляров приложений, написанных на Java.Запросы к ним сбалансированы для обеспечения высокой доступности.Каждую секунду этот «кластер» получает сотни маленьких порций данных (каждая из которых состоит из нескольких простых строк), хранится в базе данных, хранится в течение нескольких дней и затем отбрасывается.Помимо хранения этих данных, основным требованием является быстрое определение того, хранится ли данное значение в базе данных или нет.Надлежащим образом проиндексированная и секционированная таблица базы данных подходит для этой проблемы и хорошо справляется со своей задачей, по крайней мере, на данный момент.
Проблема в том, что около 80% найденных значений не найдены, поскольку их нет в базе данных.Поэтому я хотел бы немного ускорить процесс и сделать поиск более быстрым и менее ресурсоемким.Фильтр Блума был бы очевидным выбором, если бы не тот факт, что разные экземпляры приложения получают разные части данных, и если каждый экземпляр приложения имеет только часть данных в своем фильтре Блума, то эти фильтры Блума бесполезны.
Есть ли у вас какие-либо предложения / идеи о том, как решить эту проблему?