powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Четверговая инвалидация кешей.
25 сообщений из 40, страница 1 из 2
Четверговая инвалидация кешей.
    #39874638
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет друзья!

Все пользуются кешами. Сегодня топик не о том как прогреть кеш. А наоборот. Как удалить из него
устаревшие или изменённые записи.

Вопрос - сложный. И в общем случае еще нерешённый для 90% юзкейсов что я видел. Особенно
для реляционных БД.

Вобщем - отпишите ваш опыт (позитивный и негативный)

Спасибо.
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39874723
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хеш-теги по теме (пишу навскидку по памяти могу что-то забыть поэтому прошу дополнять):

Java: EhCache, InfiniSpan, @EnableCaching (Spring)

General: Memcached, Redis

Servers: nginx

HTTP: Expires, Cache-Control, Age

Из Оракловых технологий: OCI Client Caching

Алгоритмы: LRU, 2Q, ARC

Теория: ? Х.З
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39875050
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПривет друзья!

Все пользуются кешами. Сегодня топик не о том как прогреть кеш. А наоборот. Как удалить из него
устаревшие или изменённые записи.

У нас в итоге свой костылище написали :)
1. На метод с кэшированием можно поставить тэг. Потом сказать "почистить все кэши с таким тэгом". Есть и другие способы сбрасывать конкретный кэш.
2. Когда случился кэшмисс- в стеке ищутся другие методы, создающие сейчас кэш и выставляются зависимости. Поэтому когда чистятся кэши (строки кжшей) из пункта 1 - то чистятся и те строки кэши, заполнение которых было в стеке в момент создания кэша


Можно пользоваться . Заодно проверьте на JDK11 - всё никак не доберусь...
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39875066
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TominmaytonПривет друзья!

Все пользуются кешами. Сегодня топик не о том как прогреть кеш. А наоборот. Как удалить из него
устаревшие или изменённые записи.

У нас в итоге свой костылище написали :)
1. На метод с кэшированием можно поставить тэг. Потом сказать "почистить все кэши с таким тэгом". Есть и другие способы сбрасывать конкретный кэш.
2. Когда случился кэшмисс- в стеке ищутся другие методы, создающие сейчас кэш и выставляются зависимости. Поэтому когда чистятся кэши (строки кжшей) из пункта 1 - то чистятся и те строки кэши, заполнение которых было в стеке в момент создания кэша


Можно пользоваться . Заодно проверьте на JDK11 - всё никак не доберусь...
Круто вам. А сколько времени (мс) прибл. занимала чистка кеша?
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39875072
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39875099
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonAlexey Tominпропущено...


У нас в итоге свой костылище написали :)
1. На метод с кэшированием можно поставить тэг. Потом сказать "почистить все кэши с таким тэгом". Есть и другие способы сбрасывать конкретный кэш.
2. Когда случился кэшмисс- в стеке ищутся другие методы, создающие сейчас кэш и выставляются зависимости. Поэтому когда чистятся кэши (строки кжшей) из пункта 1 - то чистятся и те строки кэши, заполнение которых было в стеке в момент создания кэша


Можно пользоваться . Заодно проверьте на JDK11 - всё никак не доберусь...
Круто вам. А сколько времени (мс) прибл. занимала чистка кеша?

Вот не считал никогда. Да и зачем? Если кэш почистился- то потом он будет заполнятся- и это важнее по времени. Да и чистка приводит к сборке мусора, а насколько она замедлится- никто не знает.

PS: сейчас я думаю, как бы обойтись без кодогенерации. А если на kotlin перейти? Но пока не придумал решение.
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39875535
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока вот такой статус.

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
mayton@ryzen-ssd:~/git/mxcache$ uname -a
Linux ryzen-ssd 5.0.0-31-generic #33~18.04.1-Ubuntu SMP Tue Oct 1 10:20:39 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
mayton@ryzen-ssd:~/git/mxcache$ 
mayton@ryzen-ssd:~/git/mxcache$ javac -version
javac 11.0.4
mayton@ryzen-ssd:~/git/mxcache$ mvn -version
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T21:41:47+03:00)
Maven home: /maven/3.6.0
Java version: 11.0.4, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd64
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "5.0.0-31-generic", arch: "amd64", family: "unix"



Код: 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.
mayton@ryzen-ssd:~/git/mxcache$ mvn clean package -DskipTests
............
[WARNING] The POM for com.maxifier.mxcache:mxcache-asm:jar:7.1 is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for MxCache 2.6.9-SNAPSHOT:
[INFO] 
[INFO] MxCache ............................................ SUCCESS [  0.849 s]
[INFO] MxCache runtime .................................... FAILURE [  0.062 s]
[INFO] MxCache instrumentator ............................. SKIPPED
[INFO] Generator of MxCache cache classes ................. SKIPPED
[INFO] MxCache IDEA API stubs ............................. SKIPPED
[INFO] MxCache Idea plugin ................................ SKIPPED
[INFO] MxCache maven plugin ............................... SKIPPED
[INFO] MxCache gradle plugin .............................. SKIPPED
[INFO] MxCache guice integration .......................... SKIPPED
[INFO] MxCache Guava integration .......................... SKIPPED
[INFO] MxCache tests ...................................... SKIPPED
[INFO] JConsole plugin stub ............................... SKIPPED
[INFO] MxCache JMX ........................................ SKIPPED
[INFO] MxCache EhCache strategies ......................... SKIPPED
[INFO] MxCache API stub generator ......................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.125 s
[INFO] Finished at: 2019-10-12T15:09:53+03:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project mxcache-runtime: Could not resolve dependencies for project com.maxifier.mxcache:mxcache-runtime:jar:2.6.9-SNAPSHOT: Failure to find com.maxifier.mxcache:mxcache-asm:jar:7.1 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
[ERROR] 
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR]   mvn <goals> -rf :mxcache-runtime
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39875538
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Менял профили. Пока не помогает.

Код: java
1.
2.
mvn clean package -DskipTests -P jdk9
mvn clean package -DskipTests -P release
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39875548
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня та же ошибка при сборке. А интересно было бы посмотреть. У меня в мыслях уже давно (только что проверил, аж в 2016 году таску заводил) прикрутить какой-нибудь централизованный кеш на JCache API (JSR 107). С имплементаторами пока не определился, но вроде EHCache имплементируют JSR 107. Вообще не пролема и допилить под свои нужды. Тоже та же идея, вешать аннотацию на метод типа @CachedResults
Или по скоупам: @RequestScopedCachedResults
@SessionScopedCachedResults
и т.д.
т.е. инвалидация этих кешей будет происходить в момент дестроя скоупа.

Или @CachedResults(Type=Type.SYSTEM_CONFIGURATION)

Ну и если выясняется, что SYSTEM_CONFIGURATION меняется, бросаем событие, и все кеши типа SYSTEM_CONFIGURATION чистятся.

Но это просто задумки... Нет нет да вернусь к этому вопросу, когда-нибудь прикручу. Сейчас же в большей массе весь кеш это просто какие-то локальные решения, HashMaps, SessionScoped / ApplicationScoped бины и т.д.
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39875551
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiterНо это просто задумки...Я уж даже боюсь сказать сколько времени оно в спринге уже есть... в 3.1 точно все было
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39875558
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если закомментарить плагины

maven-javadoc-plugin
maven-gpg-plugin

И инсталлировать по-модулям отдельно то компилляция проходит чуть дальше но всё равно есть
failed tests.
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39875562
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Меня в топике больше-бы интересовали более общие вопросы. А имено. Какие бывают кеши?

Вот статья на хабре https://habr.com/en/post/38771/ различает
- Независимый или статичный
- Явно-зависимый
- Неявно-зависимый
- Условно-зависимый

Связи между кешированием и шаблонами (CQRS например). Прочие свойства (идемпотентность данных). А также
теорема Брювера.
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39875752
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей ПанфиловrabiterНо это просто задумки...Я уж даже боюсь сказать сколько времени оно в спринге уже есть... в 3.1 точно все было

к сожалению, у нас не спринг..
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39875766
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вправду- был сломан пуш в mvn-central (сделали не очень хорошими костылями). Пофикшу.
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39875895
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiterк сожалению, у нас не спринг..ну вот открыл другой проект ~2011 года, там тоже самое, только в профиль: на AspectJ чет написано.
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39875976
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПока вот такой статус.


Ага. mxcache-asm собирается и пушится отдельно. Он уже на oss.sonatype.com но ещё не доехал до мавен-централа.
Можно просто зайти туда и сделать mvn install (главное, чтобы был любой ключ gnupg локально- он сразу подписывает сборку).
Ну и тесты- пофиксил, там странная какая-то микробага с особенностями open jdk связанная.
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39875980
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TominМожно просто зайти туда и сделать mvn install

Т.е.
Код: sql
1.
2.
cd mxcache-asm
mvn install
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39876036
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфиловrabiterк сожалению, у нас не спринг..ну вот открыл другой проект ~2011 года, там тоже самое, только в профиль: на AspectJ чет написано.

Да это все понятно
Надо только убедиться, что вызов аспектов в итоге не тратит больше времени чем польза от кеширования) Это я не про AspectJ, а про интерсепторы спринговые и CDI.
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39876039
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey Tomin,

mxcache был изначально только частью вашего проекта, а потом вы вынесли его на гитхаб, правильно я понимаю? Я глянул, там довольно много всего)
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39876123
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiterAlexey Tomin,

mxcache был изначально только частью вашего проекта, а потом вы вынесли его на гитхаб, правильно я понимаю? Я глянул, там довольно много всего)

Там собственно кэш, плюс интеграции- с джусом, с мавен/грэдл/идеей.
Никаких "кишков" основных проектов не попало.
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39876131
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TominrabiterAlexey Tomin,

mxcache был изначально только частью вашего проекта, а потом вы вынесли его на гитхаб, правильно я понимаю? Я глянул, там довольно много всего)

Там собственно кэш, плюс интеграции- с джусом, с мавен/грэдл/идеей.
Никаких "кишков" основных проектов не попало.

Да это понятно, что от основных проектов там ничего нет. Просто интересно, что послужило толчком вынести кеш как отдельный проект в гитхаб?
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39876314
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rabiterПросто интересно, что послужило толчком вынести кеш как отдельный проект в гитхаб?

Изначально надо было выделить этот код в библиотеку, чтобы использовать в нескольких проектах.
А дальше, насколько я понимаю, результат показался достаточно хорошим, чтобы можно было показать всем.
Ну и прикольно же
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39876580
rabiter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TominrabiterПросто интересно, что послужило толчком вынести кеш как отдельный проект в гитхаб?

Изначально надо было выделить этот код в библиотеку, чтобы использовать в нескольких проектах.
А дальше, насколько я понимаю, результат показался достаточно хорошим, чтобы можно было показать всем.
Ну и прикольно же


Да, согласен, прикольно! Похожая ситуация, подумывал вынести кое-что в public, но потом как понял сколько там еще надо доделывать для паблика и плюнул)
Извиняюсь за флуд.
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39876602
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TominAlexey TominМожно просто зайти туда и сделать mvn install

Т.е.
Код: sql
1.
2.
cd mxcache-asm
mvn install



На другом окружении

Код: java
1.
2.
3.
4.
5.
6.
ver
Microsoft Windows [Version 10.0.17763.678]
java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)


Код: java
1.
2.
3.
4.
5.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.5:sign (default) on project mxcache-asm: Exit code: 1 -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.5:sign (default) on project mxcache-asm: Exit code: 1
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39876643
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Код: java
1.
2.
3.
4.
5.
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.5:sign (default) on project mxcache-asm: Exit code: 1 -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-gpg-plugin:1.5:sign (default) on project mxcache-asm: Exit code: 1
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:215)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)



Я ж говорю- GPG надо иметь с ключом.
Мавен централ пока не пропихнул либу :(

PS: но вот собирать на винде я даже никогда не пробовал. У нас винда только у PM'а, у которой и java-то не установлена
...
Рейтинг: 0 / 0
25 сообщений из 40, страница 1 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Четверговая инвалидация кешей.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]