![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| Sleepy_PIP |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 30.6.2004 Где: Moscow Репутация: 4 Всего: 12 |
Доброго времени суток!
Помню вроде-бы обсуждалась проблемма систем кеширования вообще и файлового кеширования в данной конференции, но не нашел поиском. Так что если не прав - прошу модераторов извинить! Проблемма стоит в создании файлового кеша для алгоритмов на java. все вроде просто но это не так. ну первое - произвел опять обзор систем имеющих отношение к кешированию информации для java. тут наверное наиболее удобно все собрано: ссылка что характерно - ничего подобного на именно специализированный именно файловый кеш не наблюдается в инете. начал пока медленно соображать как-ж заточить имеющееся для именно файлового кеширования. и понял что пока никак не понимаю пути решения проблеммы. Ну для начала остановился на JCS JCS системка (если она рабочая) - как раз то что мне и надо - и в памяти кешит и может при ее недостатке использовать доп. регионы которые физически могут являться местом на отдельном диске. а вот что дальше? JCS по большому счету (как и прочие) работает с объектами, тоесть кеширование именно объектное. очень хорошо что расчитано и на многопоточность. Файловый интерфейс хочется аналогичный java.io. тоесть и последовательный и произвольный доступ. И вот тут то я и просел. что собственно то кешировать? - ну первое что приходит в мозги - блоки. причем наверное они должны для начала быть одинакового размера. да оверхед по использованию ресурсов, зато быстрее. Далее начинаем соображать - файл как сущность должен чем-то описываться, и к этой сущности надо цеплять список блоков этого самого файла, и часть блоков может быть закеширована (т.е. как объект сохранена с использованием JCS в кеше). Но при этом - 1. никак не решу что должно служить индексом-ключем однозначно идентифицирущим объект в кеше при доступе к конкретному файлу (к конкретному его байту). 2. никак не пойму - что - все интерфейсы java.io прийдется фактически переписать? (ну нужные ), т.е. фактически построить не надстройку а полностъю с боку новую систему работы с файлами? тоесть пока получается не представляю толком переход от уровня файла (как совокупности байтиков имеющих нечто общее) к сущности объект, хранящийся в собствено объектном кеше ... 1.как-бы Вы подошли к решению подобной проблеммы? 2. а может быть есть таки файловые кеш-системф для java? 3. а с JCS кто нито работал? - оно действительно рабочее? строить самостоятельную хорошую систему кеширования честно говоря слабо да и не входит в планы ... Спасибо! -------------------- -- Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем свободным ..." |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
Есть понятие коллекция - List , Map. Они используются для хранения обьектов в памяти. Это уже простейший кеш.
Системы кеширования, перечисленные в ссылке, это обычно Map + персистенс, т.е. встроенная возможность сохранения обьектов коллекции в файле, базе данных, или на другом компьютере. Таким образом, редко используемые обьекты или обьекты, срок хранения которых истек, автоматически удаляются из Map'а (т.е. из памяти). Удаляются навсегда или только из памяти и позднее могут быть автоматически восстановлены. Все определяется настройками. Работа с кеш системой не отличается от работы с Map (выбор ключей, get , put ..). Обычно необходимо только указать параметры хранилища (если требуется персистенс) и политику удаления\сохранения обьектов. Обьекты должны быть сериалайзабл. Это сообщение отредактировал(а) COVD - 24.8.2010, 22:59 |
|||
|
||||
| Sleepy_PIP |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 512 Регистрация: 30.6.2004 Где: Moscow Репутация: 4 Всего: 12 |
наверное тем кто интересуется данными вопросами будет интересно что раскопал:
ehcache.org Safety Thread safe for use by multiple concurrent threads. Tested formemory leaks. SeeMemoryCacheTest#testMemoryLeak. This test passes for Ehcache but exploits a number of memory leaks in JCS. JCS will give an OutOfMemory error with a default 64M in 10 seconds. интересно - это действительно так? (JCS will give an OutOfMemory error with a default 64M in 10 seconds.) -------------------- -- Sleepy_PIP. Pavel Pryazhentsev (ex. 2:5020/141) "... Лучше быть нужным, чем свободным ..." |
|||
|
||||
| COVD |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1655 Регистрация: 26.7.2005 Репутация: 17 Всего: 43 |
Конкурентам свойственно постоянно выискивать друг у друга баги. Ehcache - популярная система.
|
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |