Кэширование объектов Java, что быстрее, чтение из файла или с удаленного компьютера? - PullRequest
2 голосов
/ 10 июня 2009

Я нахожусь в точке, где мне нужно принять решение о том, что делать, когда кэширование объектов достигает настроенного порога.

Должен ли я хранить объекты в индексированном файле (например, предоставленном JCS) и считывать их из файла (файл IO), когда это необходимо, или хранить объект в распределенном кэше (сеть, сериализация, десериализация)

Мы используем Solaris в качестве ОС.

============================

Добавление дополнительной информации.

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

Одна из проблем, которую мы не можем увеличить в локально кэшированных объектах, заключается в том, что она хранит кэшированные объекты в куче JVM, которая имеет ограниченную память (используя 32-битную JVM).

=============================================== =========================

Спасибо, мы наконец-то выбрали Coherence в качестве нашего продукта Cache. Это обеспечивает много топологий конфигурации кэша, в процессе против удаленного против диска .. и т. Д.

Ответы [ 7 ]

3 голосов
/ 06 декабря 2009

Это будет зависеть от многих вещей, таких как скорость диска, задержка в сети и объем данных, поэтому некоторые эксперименты могут быть лучшим способом получить представление. Я рекомендую вам взглянуть на http://ehcache.org/,, это может пригодиться.

2 голосов
/ 04 декабря 2009

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

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

1 голос
/ 23 ноября 2009

Ожидаете ли вы, что распределенные узлы будут хранить ваши данные в памяти? Я бы не стал.

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

Локальный быстрее.

0 голосов
/ 06 января 2010

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

0 голосов
/ 28 декабря 2009

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

0 голосов
/ 23 ноября 2009

Я не понимаю вопрос. Вам нужен распределенный кеш или нет? Просто ответьте на этот вопрос, чтобы узнать, что вам нужно.

0 голосов
/ 10 июня 2009

Вы почти наверняка гарантированно быстрее кешируете данные в файл, а не по всей сети.

...