|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
Привет друзья! Все пользуются кешами. Сегодня топик не о том как прогреть кеш. А наоборот. Как удалить из него устаревшие или изменённые записи. Вопрос - сложный. И в общем случае еще нерешённый для 90% юзкейсов что я видел. Особенно для реляционных БД. Вобщем - отпишите ваш опыт (позитивный и негативный) Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2019, 14:56 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
Хеш-теги по теме (пишу навскидку по памяти могу что-то забыть поэтому прошу дополнять): Java: EhCache, InfiniSpan, @EnableCaching (Spring) General: Memcached, Redis Servers: nginx HTTP: Expires, Cache-Control, Age Из Оракловых технологий: OCI Client Caching Алгоритмы: LRU, 2Q, ARC Теория: ? Х.З ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2019, 16:23 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
maytonПривет друзья! Все пользуются кешами. Сегодня топик не о том как прогреть кеш. А наоборот. Как удалить из него устаревшие или изменённые записи. У нас в итоге свой костылище написали :) 1. На метод с кэшированием можно поставить тэг. Потом сказать "почистить все кэши с таким тэгом". Есть и другие способы сбрасывать конкретный кэш. 2. Когда случился кэшмисс- в стеке ищутся другие методы, создающие сейчас кэш и выставляются зависимости. Поэтому когда чистятся кэши (строки кжшей) из пункта 1 - то чистятся и те строки кэши, заполнение которых было в стеке в момент создания кэша Можно пользоваться . Заодно проверьте на JDK11 - всё никак не доберусь... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2019, 11:22 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
Alexey TominmaytonПривет друзья! Все пользуются кешами. Сегодня топик не о том как прогреть кеш. А наоборот. Как удалить из него устаревшие или изменённые записи. У нас в итоге свой костылище написали :) 1. На метод с кэшированием можно поставить тэг. Потом сказать "почистить все кэши с таким тэгом". Есть и другие способы сбрасывать конкретный кэш. 2. Когда случился кэшмисс- в стеке ищутся другие методы, создающие сейчас кэш и выставляются зависимости. Поэтому когда чистятся кэши (строки кжшей) из пункта 1 - то чистятся и те строки кэши, заполнение которых было в стеке в момент создания кэша Можно пользоваться . Заодно проверьте на JDK11 - всё никак не доберусь... Круто вам. А сколько времени (мс) прибл. занимала чистка кеша? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2019, 11:40 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
mayton Хеш-теги по теме (пишу навскидку по памяти могу что-то забыть поэтому прошу дополнять): Java: EhCache, InfiniSpan, @EnableCaching (Spring) General: Memcached, Redis Servers: nginx HTTP: Expires, Cache-Control, Age Из Оракловых технологий: OCI Client Caching Алгоритмы: LRU, 2Q, ARC Теория: ? Х.З Еще сам себе добавлю. HTTP: Expires, Cache-Control, Age, Etag ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2019, 11:48 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
maytonAlexey Tominпропущено... У нас в итоге свой костылище написали :) 1. На метод с кэшированием можно поставить тэг. Потом сказать "почистить все кэши с таким тэгом". Есть и другие способы сбрасывать конкретный кэш. 2. Когда случился кэшмисс- в стеке ищутся другие методы, создающие сейчас кэш и выставляются зависимости. Поэтому когда чистятся кэши (строки кжшей) из пункта 1 - то чистятся и те строки кэши, заполнение которых было в стеке в момент создания кэша Можно пользоваться . Заодно проверьте на JDK11 - всё никак не доберусь... Круто вам. А сколько времени (мс) прибл. занимала чистка кеша? Вот не считал никогда. Да и зачем? Если кэш почистился- то потом он будет заполнятся- и это важнее по времени. Да и чистка приводит к сборке мусора, а насколько она замедлится- никто не знает. PS: сейчас я думаю, как бы обойтись без кодогенерации. А если на kotlin перейти? Но пока не придумал решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2019, 12:15 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
Пока вот такой статус. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2019, 15:22 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
Менял профили. Пока не помогает. Код: java 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2019, 15:49 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
У меня та же ошибка при сборке. А интересно было бы посмотреть. У меня в мыслях уже давно (только что проверил, аж в 2016 году таску заводил) прикрутить какой-нибудь централизованный кеш на JCache API (JSR 107). С имплементаторами пока не определился, но вроде EHCache имплементируют JSR 107. Вообще не пролема и допилить под свои нужды. Тоже та же идея, вешать аннотацию на метод типа @CachedResults Или по скоупам: @RequestScopedCachedResults @SessionScopedCachedResults и т.д. т.е. инвалидация этих кешей будет происходить в момент дестроя скоупа. Или @CachedResults(Type=Type.SYSTEM_CONFIGURATION) Ну и если выясняется, что SYSTEM_CONFIGURATION меняется, бросаем событие, и все кеши типа SYSTEM_CONFIGURATION чистятся. Но это просто задумки... Нет нет да вернусь к этому вопросу, когда-нибудь прикручу. Сейчас же в большей массе весь кеш это просто какие-то локальные решения, HashMaps, SessionScoped / ApplicationScoped бины и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2019, 18:28 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
rabiterНо это просто задумки...Я уж даже боюсь сказать сколько времени оно в спринге уже есть... в 3.1 точно все было ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2019, 18:46 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
Если закомментарить плагины maven-javadoc-plugin maven-gpg-plugin И инсталлировать по-модулям отдельно то компилляция проходит чуть дальше но всё равно есть failed tests. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2019, 19:34 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
Меня в топике больше-бы интересовали более общие вопросы. А имено. Какие бывают кеши? Вот статья на хабре https://habr.com/en/post/38771/ различает - Независимый или статичный - Явно-зависимый - Неявно-зависимый - Условно-зависимый Связи между кешированием и шаблонами (CQRS например). Прочие свойства (идемпотентность данных). А также теорема Брювера. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2019, 20:22 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
Андрей ПанфиловrabiterНо это просто задумки...Я уж даже боюсь сказать сколько времени оно в спринге уже есть... в 3.1 точно все было к сожалению, у нас не спринг.. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 02:59 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
И вправду- был сломан пуш в mvn-central (сделали не очень хорошими костылями). Пофикшу. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 07:54 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
rabiterк сожалению, у нас не спринг..ну вот открыл другой проект ~2011 года, там тоже самое, только в профиль: на AspectJ чет написано. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 12:14 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
maytonПока вот такой статус. Ага. mxcache-asm собирается и пушится отдельно. Он уже на oss.sonatype.com но ещё не доехал до мавен-централа. Можно просто зайти туда и сделать mvn install (главное, чтобы был любой ключ gnupg локально- он сразу подписывает сборку). Ну и тесты- пофиксил, там странная какая-то микробага с особенностями open jdk связанная. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 14:05 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
Alexey TominМожно просто зайти туда и сделать mvn install Т.е. Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 14:06 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
Андрей Панфиловrabiterк сожалению, у нас не спринг..ну вот открыл другой проект ~2011 года, там тоже самое, только в профиль: на AspectJ чет написано. Да это все понятно Надо только убедиться, что вызов аспектов в итоге не тратит больше времени чем польза от кеширования) Это я не про AspectJ, а про интерсепторы спринговые и CDI. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 15:05 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
Alexey Tomin, mxcache был изначально только частью вашего проекта, а потом вы вынесли его на гитхаб, правильно я понимаю? Я глянул, там довольно много всего) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 15:07 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
rabiterAlexey Tomin, mxcache был изначально только частью вашего проекта, а потом вы вынесли его на гитхаб, правильно я понимаю? Я глянул, там довольно много всего) Там собственно кэш, плюс интеграции- с джусом, с мавен/грэдл/идеей. Никаких "кишков" основных проектов не попало. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 17:13 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
Alexey TominrabiterAlexey Tomin, mxcache был изначально только частью вашего проекта, а потом вы вынесли его на гитхаб, правильно я понимаю? Я глянул, там довольно много всего) Там собственно кэш, плюс интеграции- с джусом, с мавен/грэдл/идеей. Никаких "кишков" основных проектов не попало. Да это понятно, что от основных проектов там ничего нет. Просто интересно, что послужило толчком вынести кеш как отдельный проект в гитхаб? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2019, 17:18 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
rabiterПросто интересно, что послужило толчком вынести кеш как отдельный проект в гитхаб? Изначально надо было выделить этот код в библиотеку, чтобы использовать в нескольких проектах. А дальше, насколько я понимаю, результат показался достаточно хорошим, чтобы можно было показать всем. Ну и прикольно же ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 07:19 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
Alexey TominrabiterПросто интересно, что послужило толчком вынести кеш как отдельный проект в гитхаб? Изначально надо было выделить этот код в библиотеку, чтобы использовать в нескольких проектах. А дальше, насколько я понимаю, результат показался достаточно хорошим, чтобы можно было показать всем. Ну и прикольно же Да, согласен, прикольно! Похожая ситуация, подумывал вынести кое-что в public, но потом как понял сколько там еще надо доделывать для паблика и плюнул) Извиняюсь за флуд. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 13:52 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
Alexey TominAlexey TominМожно просто зайти туда и сделать mvn install Т.е. Код: sql 1. 2.
На другом окружении Код: java 1. 2. 3. 4. 5. 6.
Код: java 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 14:52 |
|
Четверговая инвалидация кешей.
|
|||
---|---|---|---|
#18+
mayton Код: java 1. 2. 3. 4. 5.
Я ж говорю- GPG надо иметь с ключом. Мавен централ пока не пропихнул либу :( PS: но вот собирать на винде я даже никогда не пробовал. У нас винда только у PM'а, у которой и java-то не установлена ... |
|||
:
Нравится:
Не нравится:
|
|||
15.10.2019, 16:10 |
|
|
start [/forum/topic.php?fid=59&msg=39876580&tid=2120963]: |
0ms |
get settings: |
25ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
46ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
438ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 558ms |
0 / 0 |