Я пытаюсь реализовать упрощенную в кэше "таблицу" в памяти, где есть 2 типа индексов: первичный и вторичный.
-
Первичный индекс сопоставляет один ключ (первичный ключ) с уникальным значением (интерфейс карты)
-
Вторичный индекс отображает один ключ в коллекцию значений (Multimap подходит для счета)
Очень похож на таблицу в мире РСУБД, где есть несколько столбцов поиска. Иногда вы хотите искать по PK, иногда возвращаете список строк на основе общего свойства. Прямо сейчас нет необходимости в других операциях, чем equals (=) (т.е. Без запросов диапазона или сопоставления с образцом).
Добавить семантику кэша в указанную выше структуру данных (выселение, загрузку данных/загрузчик кэша, обновление и т.д.) и что в значительной степени необходимо.
Я хотел бы попросить ваш совет о том, как наилучшим образом подойти к данной проблеме. Должен ли он быть кешем на индекс или кеш (для ПК) + (синхронизированный) Multimap для вторичных индексов?
Любая помощь очень ценится.
С уважением.