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