|
|
|
Кто нибудь пользовался Apache Commons JCP /Java Caching System/
|
|||
|---|---|---|---|
|
#18+
Subj ? Как впечатления ? Очень не хочется все на JCP завязать, а потом от него отказываться. Что планируется: 1. No-SQL хранилище примерно на 30 - 100 млн. элементов (размер объекта 30-50 целых чисел, <200 байт, ключ лонг+int) 2. Кеш для 2-ух разных типов объектов, настройка времени жизни в зависимости от объекта (как я понял, решается с помощью cache region) 3. Хранение на диске. 4. Репликация по сети в режиме мастер -> слейв. Вопросы: 1. Я правильно понимаю, что в in-memory cache объект все равно хранится в сериализованном виде? Т.е. после помещения объекта в кешь, если объект поменять, то в кеши он не изменится? 2. Можно ли поменять это поведение? Что бы в in-memory cache хранились объекты (ссылки на объект) 3. Как реализуют помехозащищенность и перезапуск серверов при сбое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 13:15 |
|
||
|
Кто нибудь пользовался Apache Commons JCP /Java Caching System/
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, imho, т.к. опыта высоконагруженных я тоже не имею)). - вы случайно не путаете вопросы создания и проектирования систем и вопросы админов? - как быть с горизонтальным масштабированием и кластеризацией из коробки? Почему ЭТО у вас не работает из коробки? Нет админов? Leonid KudryavtsevNo-SQL хранилище смело. Тут imho не много поклонников таких СУБД. Leonid Kudryavtsev3. Как реализуют помехозащищенность и перезапуск серверов при сбое? чисто админский вопрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 13:48 |
|
||
|
Кто нибудь пользовался Apache Commons JCP /Java Caching System/
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, не использовал, но беглое гугление наталкивает на вопросы - а проект вообще живой? Как он соотносится с JSR 107? По вопросам: >>"1. Я правильно понимаю, что в in-memory cache объект все равно хранится в сериализованном виде? Т.е. после помещения объекта в кешь, если объект поменять, то в кеши он не изменится?" Это было бы весьма логично, не представляю за счет какой магии это может работать иначе? На сколько понимаю все подобные решения так или иначе базируются на работе с off-heap, так что иначе никак. >>"2. Можно ли поменять это поведение? Что бы в in-memory cache хранились объекты (ссылки на объект)" Использовать HashMap / ConcurrentHashMap? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 14:07 |
|
||
|
Кто нибудь пользовался Apache Commons JCP /Java Caching System/
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, а вообще, если цель - организовать кэш, при этом требования по отказоустойчивости и объему кэша не слишком большие, чтобы думать о каком нибудь in-memory data grid и при этом у вас linux, то я бы подумал на счет оффхип кэша one-nio от одноклассников. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 14:11 |
|
||
|
Кто нибудь пользовался Apache Commons JCP /Java Caching System/
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevSubj ? Как впечатления ? Очень не хочется все на JCP завязать, а потом от него отказываться. Что планируется: 1. No-SQL хранилище примерно на 30 - 100 млн. элементов (размер объекта 30-50 целых чисел, <200 байт, ключ лонг+int) Небольшой объем данных. Хватит postgresql на машинке со средними харктеристиками. Leonid Kudryavtsev1. Я правильно понимаю, что в in-memory cache объект все равно хранится в сериализованном виде? Т.е. после помещения объекта в кешь, если объект поменять, то в кеши он не изменится? 2. Можно ли поменять это поведение? Что бы в in-memory cache хранились объекты (ссылки на объект) 3. Как реализуют помехозащищенность и перезапуск серверов при сбое? В общем случае in memory cache ставится вне сервера приложений (как СУБД). Как раз, чтобы решить проблему с 3 и возможностью кластеризации вашего сервера. Если расматривать кэш с этой точки зрения - то сразу получаются ответы на все пункты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 14:21 |
|
||
|
Кто нибудь пользовался Apache Commons JCP /Java Caching System/
|
|||
|---|---|---|---|
|
#18+
Отвечаю на вопрос 1,2: В in-memory cache хранится ровно объект. При этом, объект может иметь свои атрибуты и есть атрибут: IElementAttributes.IsSpool - Can this item be spooled to disk Т.ч. похоже можно сначала создать элемент в ОП, а когда работа с ним закончена, пометить его как могущего спулится на диск. IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 15:54 |
|
||
|
Кто нибудь пользовался Apache Commons JCP /Java Caching System/
|
|||
|---|---|---|---|
|
#18+
Зато возник еще одни вопрос/проблема: 4. Зачем-то они при сбросе на диск все время вызывают FileChannel.force. После каждого объекта! На мой взгляд - это жесть. IMHO (см. org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDisk.java метод write) Понятно, что при многопоточности им проще всегда железно на диск записывать... Но, блин, у них же специально запись на диск вынесена в отдельный поток ((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 17:36 |
|
||
|
Кто нибудь пользовался Apache Commons JCP /Java Caching System/
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevЗато возник еще одни вопрос/проблема: 4. Зачем-то они при сбросе на диск все время вызывают FileChannel.force. После каждого объекта! На мой взгляд - это жесть. IMHO (см. org.apache.commons.jcs.auxiliary.disk.indexed.IndexedDisk.java метод write) Понятно, что при многопоточности им проще всегда железно на диск записывать... Но, блин, у них же специально запись на диск вынесена в отдельный поток ((( Это не имеет отношения к многопоточности. Такая штука нужна, например в транзакциях, когда возвращаем из метода что-то (prepared, committed etc), то 100% данные на диске в энергонезависимой памяти, без нее, может вернуть true, клиентский код что-то важное сделает, вырубится электричество, и данные не успеют записаться на диск. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 17:49 |
|
||
|
Кто нибудь пользовался Apache Commons JCP /Java Caching System/
|
|||
|---|---|---|---|
|
#18+
Нет. Просто бага. Уверяют, что будет fixed (пока beta-2 не выложена). https://issues.apache.org/jira/browse/JCS-148 В общем, судя по Jiira, проект вполне себе живой. Баги правятся в течении нескольких дней (хотя было бы лучше, если бы их просто не было) ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.05.2016, 18:06 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=39229120&tid=2124107]: |
0ms |
get settings: |
5ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 222ms |
| total: | 375ms |

| 0 / 0 |
