2015-10-08 2 views
1

Скажем, у меня есть таблица, в которой есть Master Data посеяно 1 раз, и редко она обновляется. Он имеет структуру с плоской структурой, ничего типа Lazy attributes.Спящий кэш против карты - Цель хранения

Address{ 
    id, 
    country, 
    state, 
    city, 
    pincode, 
    area 
} 

Случай -1: Таблица содержит 1000 записей

Case-2: Таблица имеет 1 миллиона записей

Use Case - нужно, чтобы получить полный Address object по идентификатору. Нет Updation в операции в этой таблице, используется только для отображения цели, LOV-х, ссылка Id и т.д.

  1. Учитывая производительность, обыкновений памяти, GC, скорость поиска и т.д., которые один лучше, используя кэш гибернации (идентификатор, объект) для этого или просто используя static HashMap (is as key, Address object as value).

  2. Я знаю Hibernate 2nd level cache (ehcache, Infinispan и т. Д.) Также использует структуру карты в глубине библиотек. Так добавляет ли он что-нибудь полезное в вышеуказанных случаях, чтобы добавить дополнительный уровень Hibernate.

+0

вы имеете в виду первый уровень кэша спящего режима на вашем первом этапе? –

+0

@kucing_terbang нет, это чисто кеш второго уровня и hashmap в теме, ни один уровень Ist –

+0

, тогда я выберусь с кэшем hibernate (ehcache и т. Д.). Если у вас нет огромной памяти, зарезервированной для JVM. –

ответ

1

Ehcache, Hazelcast (для кэш-памяти 2-го уровня) и т.д. имеет больше возможностей, чем статический Hashmap.

1.limit максимальное количество элементов в памяти

2.overflow на диск (если вышеуказанное число превышено)

3.Set время к жизни и времени до холостого хода для элементов

репликации 4.Allows внутри кластера

Если вы хотите, чтобы эти функции, то вы должны пойти на this.Otherwise статического HashMap может сделать свою работу. Сделайте это обновление через некоторое время, если ваши записи будут обновлены.

Еще одна вещь, в обоих случаях данные будут храниться в памяти или вы можете сказать о куче. Но если вы хотите сохранить данные OFF Куча затем прочитайте о MapDB.

Я работал над hazelcast как провайдер кэша второго уровня. Он также предоставляет распределенный кеш и хорошо работает в среде кластеризации.

Проверить эти ссылки Disk based HashMap Ehcache Vs Static map cache implementation

+0

Но использование '' чтения MapDb с диска может быть накладным. Говоря о нем в памяти и имея достаточно памяти, 'HashMap' может быть лучше. –

+0

Да, вы правы. Это лучше, если вам не нужны все эти функции кеша, которые дает ehcache. –

Смежные вопросы