Кэширование большой таблицы поиска в памяти JVM

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

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

Пара других моментов: транзакции всегда добавляются в набор данных, и они никогда не исключаются. Кроме того, мы распределяем обработку, разделяя набор данных между работниками на разных серверах.

Просто сейчас система использует класс Java Collection для кэширования набора данных транзакций в памяти. Это происходит главным образом из-за требований к скорости, поскольку обеспечивает быстрый последовательный доступ к транзакциям.

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

1 ответ

Изобретать колесо - это так заманчиво! Когда у Oracle есть в базе данных память, почему мы не можем сделать то же самое... Позвольте мне попробовать тоже. Как насчет хэширования массива байтов и хранения этих хешей? А когда возникает коллизия хешей, тогда идите в реальную базу данных и перепроверьте весь массив. Так заманчиво...

Другие вопросы по тегам