Клиент memcached на основе Java, оптимизация размещения данных внутри memcache - PullRequest
1 голос
/ 08 ноября 2010

У меня есть список из 1000 бобов, которые мне нужно разделить между различными проектами. Я использую memcache для этой цели. В настоящее время цикл выполняется по полному списку, и каждый компонент хранится в memcache с некоторым уникальным идентификатором memcache. Мне было интересно, вместо того, чтобы помещать каждый боб в memcache независимо. Поместите все bean-компоненты в hashmap с тем же ключом, который используется для хранения bean-компонентов в memcache, а затем поместите этот hashmap в memcache. Это даст мне какое-то существенное улучшение по сравнению с помещением каждого бина отдельно в memcached. Или это вызовет у меня какие-либо проблемы из-за большого размера объекта. Любая помощь приветствуется.

Ответы [ 2 ]

2 голосов
/ 08 ноября 2010

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

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

0 голосов
/ 08 ноября 2010

Я проделал некоторую работу по оптимизации в spymemcached, которая помогает делать правильные вещи при кодировании проводов.

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

...