powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Четверговая инвалидация кешей.
40 сообщений из 40, показаны все 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
Четверговая инвалидация кешей.
    #39877458
Alexey Tomin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey TominЯ ж говорю- GPG надо иметь с ключом.
Мавен централ пока не пропихнул либу

Разобрался я с централом- в oss.sonatype.com есть, скоро на https://mvnrepository.com/artifact/com.maxifier.mxcache/mxcache-asm
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39877472
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По теме топика.

Расматриваю конфигурацию.

1. Amazon EC2/ WebApp/GraphQL (endpoint)
2. 2x EC2 / Apache Ignite Caches (caches)
3. Шаровый Amazon S3 как общая точка персистенса для двух Ignite.
4. Конфигурация кешей. Стандартная механика с WAL отключена (
5. Работаем как In-Memory. По прохождении 2 минут каждая запись делает выталкивается из кеша и сохраняется
в S3.

В чем вопрос.

На каждом Ignite есть быстрый локальный диск класса SSD. Он небольшой но больше чем оператива.
Хочу попробовать кеш с 2 уровнями когда запись выталкивается сначала на SSD. А после этого
на S3. Выталкивание на S3 - не срочное. Фактически оно актуально только когда идет перебалансировка
узлов. Тоесть падают и однимаются узлы и меняются маппинг партишенов для ключей. Грубо говоря
когда падает caches-01 то его локальные данные должны заехать в caches-02.

Схема предполагает бесконечно болшой рост узлов кешей. Так заявляет бизнес. Сейчас их 2 но может быть и 20 и 200.

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

Видимо не весь солюшен описан.
Если это кэш, то где мастер данные?
Или in-memory database, то где констистентность?
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39877762
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Консистентность между нодами у него - из коробки.
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39877797
kolchanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Видимо, неправильно выразился.
Упала нода, на S3 часть данных не выгрузилась.
Данные пропали?
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39879091
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Система - для аналитики. Данные - write-only. +декларировано своство идемпотентности для всех ее частей.
БД. S3. И Ignite caches. Тоесть если какие-то данные недозагрузились - мы просто повторно повторяем
загрузку того дата-сета на котором было падение. И данные обновляются до последнего актуального состояния.
Если их нет - загружаются. Если уже были - сверяются и обновляются.
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39884139
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уже несколько лет рассеяно думаю над идей. Вот сегодня сеть Bittorrent хранит пета-байты музла и видосов.
А можно ли эту сеть представить как распределённую файлову систему. Где ключ (директория или файл)
это в общем человекочитабельное название а значение - магнитная ссылка. Которая может быть
либо загружена по заказу пользователем на его локальный диск. Или вытеснена по eviction policy.

Разумеется доступ к просмотру содержимого таких файлов будет затруднен. Но обозревать каталог
можно будет всегда.
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39884151
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39888754
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вернусь обратно к кешам. Почитал еще раз статью на хабре.

https://habr.com/en/company/surfingbird/blog/306252/

Заинтересовал меня этот 2Q.
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39888764
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще поинт. В тему Redis/Memcached.

Представим что у нас есть некий толстый диск старого типа. Магнитный на 16 терабайт.
Типа такого Seagate Exos X16 HDD 16TB 7200rpm 256MB ST16000NM002G 3.5

Смонтирован как /tmp со своей хитрой файловой системой.

И мы храним на нём фильмы. Музло. Вобщем всё что скачано для просмотра. Но храним
тоже по принципу кеша. Только очень большого и долгоиграющего.

Вычисляем для каждого файла его рейтинг полезности. Например если это сериал типа Game Of Thrones,
который мы с женой посмотрели уже раза 3. То соотв каждый файл этого сериала получает +3 балла.

А те файлы которые были просмотрены 0 раз - соотв внизу списка. И когда допустим я качаю
на этот диск новый сериал и при нехватке места (осталось 0.001 %) срабатывает логика
автоматического удаления старых файлов у которых этих баллов - меньше.

Чуть дальше. Я думаю несправедливо сразу грохать файлы не разу ни просмотренные.
Пускай будет некая вещественая метрика. Которая изначально - максимальна для файла
а потом - затухает со временем. Типа рейтинг свежести.

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

Если вдруг (внезапно понадобился) файл который был удалён - он снова скачивается по magnet-link.
Линк в свою очередь хранится всегда и не удаляется.

Вобщем - дисковая система которая имеет в теории - бесконечный размер. В практике она будет
хостить только полезные к просмотру сериалы.
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39888806
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Уже несколько лет рассеяно думаю над идей. Вот сегодня сеть Bittorrent хранит пета-байты музла и видосов.
А можно ли эту сеть представить как распределённую файлову систему. Где ключ (директория или файл)
это в общем человекочитабельное название а значение - магнитная ссылка. Которая может быть
либо загружена по заказу пользователем на его локальный диск. Или вытеснена по eviction policy.

Разумеется доступ к просмотру содержимого таких файлов будет затруднен. Но обозревать каталог
можно будет всегда.

майтон это уже давно реализовано
в том же эпл music
ты покупаешь музло оно хранится в дата центрах эпл и по подписке дается юзерам
тоже саме есть у нетфликс
и у эпл тв
отстал ты от жизни брат)

пс.я тут общался с джавистом из pivotal в живую и он сказал дядь забудь нах все что ты знал)
вся эта этерпрайз шляпа через пару лет будет 90% на aws

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

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

пс.я тут общался с джавистом из pivotal в живую и он сказал дядь забудь нах все что ты знал)
вся эта этерпрайз шляпа через пару лет будет 90% на aws

я уже начал изучать книжонку их главного разраба - забыл как называется -

По поводу AWS.

Ты общался с джавистом? Теперь пообщайся со мной. AWS-lambda это говно еще то. И наша к примеру
попытка полносьтю выйти в server-less провалилась. Приложение не декомпозировалось на лямбды.

Возможно удел лямбд это например написание конвертеров картинок которые делают thumbnails
для крупного хостинга изображений. Но написание сколь-либо сложной и вменяемой логики - почти
невозможно. Есть ограничения на память и на время сеанса.

По поводу AWS-S3. Кроме того что он толстый (это правда). Он еще и обладает некоторыми свойствами
которые выводят его из области обычного использования файловой системы. И подводят тебя к другим
принципам. Типа асинхронизма и идемпотентности. Грубо говоря S3 - это НЕ ФАЙЛОВАЯ система.
В ней нет директорий как таковых. Грубо говоря навигация по каталогам - это фейк. И если кто-то завязался
на таймингах которые критичны к тому как вы навигируетесь по каталогам - поздравляю вас - вы проиграли.
Любой жлобский магнитый диск навигацию сделает быстрее.

Этот месседж надо выжечь калёным железом на руке каждого кто хочет заниматься с AWS в будущем.
Я видел уже 2 проекта которые облажались думая что их логика которая персистит и читает документы
с локальной ФС вдруг (!) внезапно взлетит и также будет работать с S3.

По поводу всех остальных сервисов я пока не готов говорить. Кстати в тостере есть много вопросов
по биллингу.

Ответ один - делайте макет - и замеряйте траты своих денег. Никто и никогда не может наперед угадать
сколько вы заплптите за EC2+Dynamo+S3+SQS+Lambda+Gate после того как вы задеплоите ваше
сферическое приложение в вакууме.

Смотрите самую дорогую позицию в биллинге и оптимизируйте ее. Как - вот это уже тема отдельных
курсов обучения. Благо в youtube есть миллион индусов котовых вам бесплатно хотя и не качественно
об этом расскзать.
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39888975
lleming
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
пс.я тут общался с джавистом из pivotal в живую и он сказал дядь забудь нах все что ты знал)
вся эта этерпрайз шляпа через пару лет будет 90% на aws


Один говорит будет, другой говорит нет. Поинтересуйся у него он вложил все деньги в акции Amazon если так уверен.
...
Рейтинг: 0 / 0
Четверговая инвалидация кешей.
    #39910797
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Апну тему по поводу алгоритма 2Q.

Основная суть изложена в документе
2Q: A Low Overhead High Performance Buffer Management Replacement Algorithm
(авторов много)
https://pdfs.semanticscholar.org/d62d/e5f995164fff50f5ce61c0113f6bc9f04225.pdf

Есть также очень корявая и бестолковая статья на хабре где автор пытается это использовать.

Расскажу своё понимание.

2Q основана на более агрессивной политике выталкивания слотов (slots) из LRU.
Предполагается что горячие данные - это те которые будут востребованы через несколько
шагов работы 2Q сразу же как только были туда положены. В отличие от классического
LRU который награждает поднятием вверх всех подряд участников кеша независимо
от эвристики.

Теоретический документ (приаттачено) оперирует двумя очередями A1, Am. Это очередь
потенциальных горячих слотов и очередь лузеров. Очереди в обычном режиме просто
проталкивают элементы из одной в другую (паровозиком). Если подать в них sequence
уникальных чисет то так это и будет. Но если элемент был запрошен в момент когда
находился в A1. То происходит его защелкивание в отдельной структуре LRU тех
самых горячих блоков. Повторное чтение-же лузеров из Am не вызывает никакой реакции.
Авторы считают (в конце статьи) что это дает +5-10% перформанса к реалистичным
данным по отношению к простому LRU.

Вот вобщем-то и весь алгоритм. Длины очередей - это экспертные настроечные параметры.

Статья не говорит но насколько я понял очереди это метафора. Там на самом деле нужны
гибриды очередей и хешей (тоесть те-же самые 2хLRU но с разной политикой выталкивания).

Для оптимизации очереди должны трекать линки на данные чтоб избежать копирования объектов.

Вот пока всё.

Кому интересно - читайте. Пишите свои (ценные) каменты.

Я пока почитал про
JDK LinkedHashMap
https://docs.oracle.com/javase/9/docs/api/java/util/LinkedHashMap.html
(там есть возможность переопределить removeEldestEntry())

Apache Commons LRUMap
https://commons.apache.org/proper/commons-collections/apidocs/org/apache/commons/collections4/map/LRUMap.html
(фиг знает что никогда не юзал)

EhCache (пока непонятно) Есть оно там или нет? Какие алгоритмы и какие политики вытеснения.
https://www.ehcache.org/documentation/3.8/
...
Рейтинг: 0 / 0
40 сообщений из 40, показаны все 2 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Четверговая инвалидация кешей.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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