Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: 1 2      [все]
 Четверговая инвалидация кешей.  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Привет друзья!

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

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

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

Спасибо.
10 окт 19, 14:56    [21991349]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Хеш-теги по теме (пишу навскидку по памяти могу что-то забыть поэтому прошу дополнять):

Java: EhCache, InfiniSpan, @EnableCaching (Spring)

General: Memcached, Redis

Servers: nginx

HTTP: Expires, Cache-Control, Age

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

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

Теория: ? Х.З
10 окт 19, 16:23    [21991448]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1786
mayton
Привет друзья!

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


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

Можно пользоваться. Заодно проверьте на JDK11 - всё никак не доберусь...
11 окт 19, 11:22    [21991953]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Alexey Tomin
mayton
Привет друзья!

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


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

Можно пользоваться. Заодно проверьте на JDK11 - всё никак не доберусь...

Круто вам. А сколько времени (мс) прибл. занимала чистка кеша?
11 окт 19, 11:40    [21991975]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
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 окт 19, 11:48    [21991986]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1786
mayton
Alexey Tomin
пропущено...


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

Можно пользоваться. Заодно проверьте на JDK11 - всё никак не доберусь...

Круто вам. А сколько времени (мс) прибл. занимала чистка кеша?


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

PS: сейчас я думаю, как бы обойтись без кодогенерации. А если на kotlin перейти? Но пока не придумал решение.
11 окт 19, 12:15    [21992024]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Пока вот такой статус.

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"


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
12 окт 19, 15:22    [21992760]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Менял профили. Пока не помогает.

mvn clean package -DskipTests -P jdk9
mvn clean package -DskipTests -P release
12 окт 19, 15:49    [21992764]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
У меня та же ошибка при сборке. А интересно было бы посмотреть. У меня в мыслях уже давно (только что проверил, аж в 2016 году таску заводил) прикрутить какой-нибудь централизованный кеш на JCache API (JSR 107). С имплементаторами пока не определился, но вроде EHCache имплементируют JSR 107. Вообще не пролема и допилить под свои нужды. Тоже та же идея, вешать аннотацию на метод типа @CachedResults
Или по скоупам: @RequestScopedCachedResults
@SessionScopedCachedResults
и т.д.
т.е. инвалидация этих кешей будет происходить в момент дестроя скоупа.

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

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

Но это просто задумки... Нет нет да вернусь к этому вопросу, когда-нибудь прикручу. Сейчас же в большей массе весь кеш это просто какие-то локальные решения, HashMaps, SessionScoped / ApplicationScoped бины и т.д.
12 окт 19, 18:28    [21992808]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3355
rabiter
Но это просто задумки...
Я уж даже боюсь сказать сколько времени оно в спринге уже есть... в 3.1 точно все было
12 окт 19, 18:46    [21992816]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Если закомментарить плагины

maven-javadoc-plugin
maven-gpg-plugin

И инсталлировать по-модулям отдельно то компилляция проходит чуть дальше но всё равно есть
failed tests.
12 окт 19, 19:34    [21992838]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Меня в топике больше-бы интересовали более общие вопросы. А имено. Какие бывают кеши?

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

Связи между кешированием и шаблонами (CQRS например). Прочие свойства (идемпотентность данных). А также
теорема Брювера.
12 окт 19, 20:22    [21992854]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
Андрей Панфилов
rabiter
Но это просто задумки...
Я уж даже боюсь сказать сколько времени оно в спринге уже есть... в 3.1 точно все было


к сожалению, у нас не спринг..
14 окт 19, 02:59    [21993344]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1786
И вправду- был сломан пуш в mvn-central (сделали не очень хорошими костылями). Пофикшу.
14 окт 19, 07:54    [21993365]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3355
rabiter
к сожалению, у нас не спринг..
ну вот открыл другой проект ~2011 года, там тоже самое, только в профиль: на AspectJ чет написано.
14 окт 19, 12:14    [21993575]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1786
mayton
Пока вот такой статус.


Ага. mxcache-asm собирается и пушится отдельно. Он уже на oss.sonatype.com но ещё не доехал до мавен-централа.
Можно просто зайти туда и сделать mvn install (главное, чтобы был любой ключ gnupg локально- он сразу подписывает сборку).
Ну и тесты- пофиксил, там странная какая-то микробага с особенностями open jdk связанная.
14 окт 19, 14:05    [21993719]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1786
Alexey Tomin
Можно просто зайти туда и сделать mvn install


Т.е.
cd mxcache-asm
mvn install
14 окт 19, 14:06    [21993723]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
Андрей Панфилов
rabiter
к сожалению, у нас не спринг..
ну вот открыл другой проект ~2011 года, там тоже самое, только в профиль: на AspectJ чет написано.


Да это все понятно
Надо только убедиться, что вызов аспектов в итоге не тратит больше времени чем польза от кеширования) Это я не про AspectJ, а про интерсепторы спринговые и CDI.
14 окт 19, 15:05    [21993800]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
Alexey Tomin,

mxcache был изначально только частью вашего проекта, а потом вы вынесли его на гитхаб, правильно я понимаю? Я глянул, там довольно много всего)
14 окт 19, 15:07    [21993807]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1786
rabiter
Alexey Tomin,

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


Там собственно кэш, плюс интеграции- с джусом, с мавен/грэдл/идеей.
Никаких "кишков" основных проектов не попало.
14 окт 19, 17:13    [21993954]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
Alexey Tomin
rabiter
Alexey Tomin,

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


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


Да это понятно, что от основных проектов там ничего нет. Просто интересно, что послужило толчком вынести кеш как отдельный проект в гитхаб?
14 окт 19, 17:18    [21993964]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1786
rabiter
Просто интересно, что послужило толчком вынести кеш как отдельный проект в гитхаб?


Изначально надо было выделить этот код в библиотеку, чтобы использовать в нескольких проектах.
А дальше, насколько я понимаю, результат показался достаточно хорошим, чтобы можно было показать всем.
Ну и прикольно же Картинка с другого сайта.
15 окт 19, 07:19    [21994245]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
rabiter
Member

Откуда: SPb
Сообщений: 632
Alexey Tomin
rabiter
Просто интересно, что послужило толчком вынести кеш как отдельный проект в гитхаб?


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


Да, согласен, прикольно! Похожая ситуация, подумывал вынести кое-что в public, но потом как понял сколько там еще надо доделывать для паблика и плюнул)
Извиняюсь за флуд.
15 окт 19, 13:52    [21994631]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Alexey Tomin
Alexey Tomin
Можно просто зайти туда и сделать mvn install


Т.е.
cd mxcache-asm
mvn install


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

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)

[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)
15 окт 19, 14:52    [21994684]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1786
mayton

[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-то не установлена Картинка с другого сайта.
15 окт 19, 16:10    [21994772]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1786
Alexey Tomin
Я ж говорю- GPG надо иметь с ключом.
Мавен централ пока не пропихнул либу


Разобрался я с централом- в oss.sonatype.com есть, скоро на https://mvnrepository.com/artifact/com.maxifier.mxcache/mxcache-asm
17 окт 19, 10:17    [21996130]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
По теме топика.

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

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.

Вопрос - концептуальный. Взлетит?
17 окт 19, 10:34    [21996155]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
kolchanov
Member

Откуда: Питер
Сообщений: 181
mayton,

Видимо не весь солюшен описан.
Если это кэш, то где мастер данные?
Или in-memory database, то где констистентность?
17 окт 19, 15:27    [21996649]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Консистентность между нодами у него - из коробки.
17 окт 19, 15:29    [21996652]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
kolchanov
Member

Откуда: Питер
Сообщений: 181
mayton,
Видимо, неправильно выразился.
Упала нода, на S3 часть данных не выгрузилась.
Данные пропали?
17 окт 19, 16:32    [21996735]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Система - для аналитики. Данные - write-only. +декларировано своство идемпотентности для всех ее частей.
БД. S3. И Ignite caches. Тоесть если какие-то данные недозагрузились - мы просто повторно повторяем
загрузку того дата-сета на котором было падение. И данные обновляются до последнего актуального состояния.
Если их нет - загружаются. Если уже были - сверяются и обновляются.
21 окт 19, 10:07    [21998650]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Уже несколько лет рассеяно думаю над идей. Вот сегодня сеть Bittorrent хранит пета-байты музла и видосов.
А можно ли эту сеть представить как распределённую файлову систему. Где ключ (директория или файл)
это в общем человекочитабельное название а значение - магнитная ссылка. Которая может быть
либо загружена по заказу пользователем на его локальный диск. Или вытеснена по eviction policy.

Разумеется доступ к просмотру содержимого таких файлов будет затруднен. Но обозревать каталог
можно будет всегда.
1 ноя 19, 11:50    [22007941]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
И различные points к реализации
- https://www.javadoc.io/doc/javax.cache/cache-api/1.1.1/index.html
- https://commons.apache.org/proper/commons-vfs/
1 ноя 19, 12:01    [22007957]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Вернусь обратно к кешам. Почитал еще раз статью на хабре.

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

Заинтересовал меня этот 2Q.
13 ноя 19, 17:54    [22015647]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Еще поинт. В тему Redis/Memcached.

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

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

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

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

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

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

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

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

Вобщем - дисковая система которая имеет в теории - бесконечный размер. В практике она будет
хостить только полезные к просмотру сериалы.
13 ноя 19, 18:37    [22015666]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
asv79
Member

Откуда: Тверь
Сообщений: 2732
mayton
Уже несколько лет рассеяно думаю над идей. Вот сегодня сеть Bittorrent хранит пета-байты музла и видосов.
А можно ли эту сеть представить как распределённую файлову систему. Где ключ (директория или файл)
это в общем человекочитабельное название а значение - магнитная ссылка. Которая может быть
либо загружена по заказу пользователем на его локальный диск. Или вытеснена по eviction policy.

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

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

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

я уже начал изучать книжонку их главного разраба - забыл как называется -
13 ноя 19, 20:53    [22015717]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
Я качаю авторские фильмы с торрентов про которые эпл и нетфликс слыхом не слыхали.

Кроме того я пишу о дисковом кеше который сэкономит тебе трафик и бабки.
14 ноя 19, 00:01    [22015779]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
mayton
Member

Откуда: loopback
Сообщений: 42941
asv79

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

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

По поводу AWS.

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

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

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

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

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

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

Смотрите самую дорогую позицию в биллинге и оптимизируйте ее. Как - вот это уже тема отдельных
курсов обучения. Благо в youtube есть миллион индусов котовых вам бесплатно хотя и не качественно
об этом расскзать.
14 ноя 19, 11:47    [22016032]     Ответить | Цитировать Сообщить модератору
 Re: Четверговая инвалидация кешей.  [new]
lleming
Member

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


Один говорит будет, другой говорит нет. Поинтересуйся у него он вложил все деньги в акции Amazon если так уверен.
14 ноя 19, 11:52    [22016040]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: 1 2      [все]
Все форумы / Java Ответить