|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Уважаемые форумчане, здравствуйте! С рождеством! Нужен ваш совет. Очень нужно сделать тестовое задание. Уровень знаний: +- основы JDBC и сервлетов без Spring. Задание по ссылке. В какую сторону копать, пожалуйста, подскажите? https://drive.google.com/open?id=1kcLCYtCkzDwNs0cFpDIZ-VpyOiX_Y3ed ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 14:48 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
А что именно не понятно? Если всё, то это не ваш уровень. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 15:32 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
GrossmasteR, 1) Тут я бы посмотрел стандарт javax.cache и много ли там надо реализовывать интерфейсов. Возможно есть какие-то простые примеры имплементаций. А дальше фантазия: как это сделать хорошо, в отдельном ли процессе и т.п. Возможно какой-то стандарт попроще поискать, если совсем плохо будет) 2) Тут посмотрел в сторону aspectj (или каких-нибудь других реализация аспектов) или триггеров на уровне субд ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 15:45 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Hett А что именно не понятно? Если всё, то это не ваш уровень.
... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 15:59 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Андрей Панфилов, первое, что приходит на ум - это декоратор над репозиторием реализовать: один, что кэширует в памяти, другой, что к примеру в Redis их сочетание и покроет все пункты ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 16:07 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Дмитрий Мух первое, что приходит на ум - это декоратор над репозиторием реализовать: один, что кэширует в памяти, другой, что к примеру в Redis их сочетание и покроет все пункты ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 16:19 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Не понял. Это ТЗ с ОРМ как соотносится? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 16:41 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Андрей Панфилов Дмитрий Мух первое, что приходит на ум - это декоратор над репозиторием реализовать: один, что кэширует в памяти, другой, что к примеру в Redis их сочетание и покроет все пункты не универсальный декоратор, а две реализации интерфейса Repository одна над кэшем в памяти, другая над Redis и что значит не делают, когда Декторатор - это широко известный и применяемый шаблон проектирования? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 16:50 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Дмитрий Мух Декторатор - это широко известный и применяемый шаблон проектирования? Код: 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. 38. 39. 40. 41. 42. 43. 44. 45. 46.
Попробуйте для него реализовать свою гениальную идею ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 17:16 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Андрей Панфилов, первый попавшийся пример: https://riptutorial.com/design-patterns/example/12135/caching-decorator ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 17:19 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Дмитрий Мух Андрей Панфилов, первый попавшийся пример: https://riptutorial.com/design-patterns/example/12135/caching-decorator А вы разве не видите, что код: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
и: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
суть одно и то же, причем оба говно (в вашем примере еще почему-то считается что отсутсвие данных - это не результат ) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 17:26 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 18:40 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
GrossmasteR Уважаемые форумчане, здравствуйте! С рождеством! Нужен ваш совет. Очень нужно сделать тестовое задание. Уровень знаний: +- основы JDBC и сервлетов без Spring. Задание по ссылке. В какую сторону копать, пожалуйста, подскажите? https://drive.google.com/open?id=1kcLCYtCkzDwNs0cFpDIZ-VpyOiX_Y3ed Код для вытесняющий кэш для высоконагруженной системы. Код: 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.
Хорошего вам дня! ... |
|||
:
Нравится:
Не нравится:
|
|||
07.01.2020, 18:47 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Valentin Kolesnikov, а где API-то? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 07:51 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Андрей Панфилов Valentin Kolesnikov, а где API-то? Методы get и put. Хорошего вам дня! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 08:55 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
GrossmasteR, как бы так и хочется сказать redis or memcached но запилить свой фреймворк имхо не тестовый контекст, хотя можно взять и готовые ... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 20:31 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
В первом посте приаттачено абсолютно "сферическое" задание. В нем нет цифр. Нет количества активных пользователей. Транзакций в секунду. Или сетевых сокетов. Тоесть читающий должен интерпретировать поэтические метафоры вроде "с сравнительно большой нагрузкой". "крупной системе", "горячих данных". Вобщем мне вспоминается сказка Буратино где "Сова" и "Жаба" решали что поциент Буратино скорее жив чем мёртв или наоборот. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 20:44 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Магазин цветов для новичка как ТЗ выглядит лучше. Ставлю на то что ТС здесь не появится. Если я прав то ТЗ не для новичков. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.01.2020, 20:49 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Магазин цветов для новичка как ТЗ выглядит лучше. Ставлю на то что ТС здесь не появится. Если я прав то ТЗ не для новичков. однозначно не для новичков но вот мне чо то захотелось это сделать) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 10:09 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
gycb, Сабж захотел? Не сделаешь. Да и ТЗ дурное. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 11:22 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Андрей Панфилов Дмитрий Мух Андрей Панфилов, первый попавшийся пример: https://riptutorial.com/design-patterns/example/12135/caching-decorator PoC? Proof of concept? Вы ожидаете доказательства факта, что декораторы работают? Серъёзно? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 12:29 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Дмитрий Мух, Не надо думать что подходы шарп работают в java. Или подходы java работают в плюсах. А вести переписку с заблокированным мембером это верх цинизма. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 12:39 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Дмитрий Мух, Не надо думать что подходы шарп работают в java. Или подходы java работают в плюсах. А вести переписку с заблокированным мембером это верх цинизма. К конкретному языку и платформе он не привязан. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 14:02 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
skyANA, К топику шаблон привязать не получится. Тем более не программисту. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 14:27 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp skyANA, К топику шаблон привязать не получится. Тем более не программисту. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 14:34 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Начнём с простого: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Как зарегистрировать это в IoC-контейнере показывать, или сами догадаетесь? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 14:42 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
skyANA, Теперь тестами покажи что ТЗ выполнил. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 15:00 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
skyANA Начнём с простого: Тут скорее вопрос не в том, можно ли это сделать через декораторы, а можно ли сделать "хорошее кэш апи" через декораторы. Для каждого сервиса/репозитория писать свой декоратор? Через АОП это решается гораздо удобнее. Тот же spring cache как неплохой пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 15:24 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
SpringMan skyANA Начнём с простого: Тут скорее вопрос не в том, можно ли это сделать через декораторы, а можно ли сделать "хорошее кэш апи" через декораторы. Для каждого сервиса/репозитория писать свой декоратор? Через АОП это решается гораздо удобнее. Тот же spring cache как неплохой пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 15:26 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
SpringMan, Ну и в хибере есть два кеша. Второй выключен. Выше писал, что про ОРМ в тз непонятно. Написана фраза "структуры данных"))))) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 15:28 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
SpringMan, То есть с ОРМ есть кеш в спринге, хибере два штуки. Без ОРМ есть кеш на клиенте от драйвера. То есть он будет на АппСервере реально. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 15:32 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
skyANA, к примеру: https://spring.io/guides/gs/caching/ Код: java 1. 2. 3. 4. 5. 6.
Все в итоге сводится к аннотации над методом. Есть аналогичные @CacheEvict для инвалидации кешей и прочие мелкие радости ) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 15:34 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp SpringMan, То есть с ОРМ есть кеш в спринге, хибере два штуки. Без ОРМ есть кеш на клиенте от драйвера. То есть он будет на АппСервере реально. В моей жизни, в хибере обычно без второго уровня. Просто если надо, то кэшируют через спринг на уровне серисов. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 15:36 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
SpringMan, Да. Там JPA рулит ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 15:45 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
skyANA PetroNotC Sharp skyANA, К топику шаблон привязать не получится. Тем более не программисту. Уже говорил, но вы забыли. Весь ваш опыт в шарп идет лесом в java. Так как вместо JPA у вас NPA который не применяют. Вместо спринга у вас EF, который совсем не спринг. И так далее. Пишите цветочный магазин. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 15:51 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
SpringMan skyANA, к примеру: https://spring.io/guides/gs/caching/ Код: java 1. 2. 3. 4. 5. 6.
Все в итоге сводится к аннотации над методом. Есть аналогичные @CacheEvict для инвалидации кешей и прочие мелкие радости ) тоесть если я правильно понял - то эта анотация делает следущее при образщении к этому методу создает кеш- и если при следущем обращении пользователь попросит ту же самую книгу -она достанется из кэша? и еще вопрос для каких систем это акутально - например для систем с ожидаемым количеством юзеров от 20 до 50 единомоментно есть смысл анотировать особо горячие методы? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 15:58 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
gycb, Нет смысла и даже вредно. У тебя база ненормализована и этот факт съедает все разговоры об эффективности кеша. Тормозит база, а ты снаружи пришлепку кеша)) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 16:05 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
gycb тоесть если я правильно понял - то эта анотация делает следущее при образщении к этому методу создает кеш- и если при следущем обращении пользователь попросит ту же самую книгу -она достанется из кэша? и еще вопрос для каких систем это акутально - например для систем с ожидаемым количеством юзеров от 20 до 50 единомоментно есть смысл анотировать особо горячие методы? Концептуально, да. По сути она должна использовать javax.cache api (тут на 100% не уверен, всегда ли так - надо смотреть отдельно). Что и когда надо кэшировать это индивидуально: иногда помогает сильно, иногда больше проблем из-за инвалидации кэша и т.п. Тяжелые запросы, которые часто вызываются и редко меняют результат, - потенциально хорошее место для кеширования ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 16:08 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp skyANA пропущено... Не понял мысль. Уже говорил, но вы забыли. Весь ваш опыт в шарп идет лесом в java. Так как вместо JPA у вас NPA который не применяют. Вместо спринга у вас EF, который совсем не спринг. И так далее. Пишите цветочный магазин. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 17:03 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
skyANA, Вы съехали с темы. Передложили паттерн, покажите что решает задачу. Просили код? Вам пример кода спринга дали. Дальше никто ничего не обязан разжёвывать. Все работают. Некогда. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 17:09 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Петя в своём репертуаре: флудит. В игнор. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 17:33 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
SpringMan skyANA, к примеру: https://spring.io/guides/gs/caching/ Код: java 1. 2. 3. 4. 5. 6.
Все в итоге сводится к аннотации над методом. Есть аналогичные @CacheEvict для инвалидации кешей и прочие мелкие радости )А на Save своя аннотация? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 17:35 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
skyANA Петя в своём репертуаре: флудит. В игнор. Уже и на майке писал, и скрипты всем раздавал. Игнорируй! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 17:40 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp skyANA Петя в своём репертуаре: флудит. В игнор. Уже и на майке писал, и скрипты всем раздавал. Игнорируй! Переключаюсь обратно на стандартный дизайн. Пока, Петя :) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 17:43 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
skyANA, Еще раз попрощайся)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 17:49 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
skyANA А на Save своя аннотация? По сути с кешом что можно делать: положить значение для какого-то уникального ключа и сказать удалить его. Аннотации это и делают. @Cacheable - кладет в кэш (или берет, если уже есть), @CacheEvict - удаляет из кэша. Вот на save и надо @CacheEvict. Есть еще @CachePut, который всегда обновляет кэш - я им не пользовался, но по идее его над save-ом тоже можно/нужно использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 18:54 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Ну дай бох. Spring для нас всегда создавал иллюзию полного контроля. Только вот где та самая золотая "середина"? С одной стороны можешь всю БД в себя втянуть. И с другой стороны сделать этот механизм бесполезным передаточным звеном. P.S. There are only two hard things in Computer Science: cache invalidation and naming things. -- Phil Karlton ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 19:42 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
mayton С одной стороны можешь всю БД в себя втянуть ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 19:53 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
mayton P.S. There are only two hard things in Computer Science: cache invalidation and naming things. -- Phil Karlton "Сложнее всего в мире достигнуть простоты — это крайняя граница опыта и последнее усилие гения". © George Sand. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 20:01 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Valentin Kolesnikov GrossmasteR Уважаемые форумчане, здравствуйте! С рождеством! Нужен ваш совет. Очень нужно сделать тестовое задание. Уровень знаний: +- основы JDBC и сервлетов без Spring. Задание по ссылке. В какую сторону копать, пожалуйста, подскажите? https://drive.google.com/open?id=1kcLCYtCkzDwNs0cFpDIZ-VpyOiX_Y3ed Код для вытесняющий кэш для высоконагруженной системы. Код: 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.
Хорошего вам дня! Здравствуйте. Может быть у вас есть возможность объяснить, как это работает? Или что нужно читать/смотреть/изучать, чтобы в этом разобраться? Признаться, я когда получил это задание, первая мысль была, это что, на древнеегипетском? Это были небольшие оффлайн-курсы, после которых одна организация, в случае успешной защиты итогового проекта, обещалась позвать на собеседование. Итоговый проект был веб-сервис без использования Spring поисковая система: загружаешь текстовые файлы, вводишь поисковый запрос, получаешь файл со строчками в которых содержится поисковый запрос, желательно с многопоточностью. После итогового, они сказали, мол, ну будем считать, что на ваш код мы посмотрели, теперь дадим вам задание, чтобы посмотреть, как выдумаете. Серьезно? Это вот это вот посмотреть, как мы думаем? Над чем? Это что, новогодний розыгрыш был? Ну типа люди знали наш уровень, что мы худо бедно что-то понимаем в Java Syntax, Core, Collections, имеем какое-то отдаленное представление о Multithreading, SQL, JAVA EE. И дают вот такое задание, которое не похоже на задание для предJunior/Junior. Я до сих пор допускаю мысль, что они либо перепутали ТЗ, либо сделали это специально, чтобы нас слить по какой-то причине. Ладно с лирическим отступлением все. Как это изучить? Может быть какие-то книги/курсы есть? P.S. "...По времени жёсткой привязки нет, главное что бы соискатели озвучили срок и уложились в него..." А препод по курсам нам сказал: "По задачкам : они на самом деле не сложные, вам нужно просто: 1. Загуглить все умные слова и понять, что они значат 2. Упростить задачу (не переусложнять решение) - на самом деле оно на поверхности и достаточно просто гуглится (нужно будет изучить штук 5-6 ссылок в результатах Google)" ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 20:09 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
GrossmasteR, Что вам мешает прямо сейчас начать демку проект? Именно так тут один мембер разобрался со spring MVC). Либо через пару дней будет ясно что вы не тянете. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 20:19 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Нельзя изучать кеш, если под ним нет работающего проекта. Так как сабж это тюнинг. Пригоняют машину и вы ее тюните. А тут и машины то нет. Только бла бла бла. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 20:23 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Господин который писал статью на Хабре про 2Q, хотя-бы гнал тесты на своем Андроидном приложении. Это кстати очень сильный поинт. Кеш - тюнится под конкретную специфику потока данных: 1) Гистограмму 2) Авто-корреляцию данных В случае с 2Q сыграло свойство оконных приложений и UI. Если пользователь смотрел картинку и через пару интеракций еще раз эту картинку - следовательно она - hot с точки зрения приложения. Это как раз и есть авто-корреляция. Или некое специфичное поведение API. Если-бы он просто искал идеальный кеш без привязки к чему либо - ну использовал бы LRU до сих пор. LRU хорошо закрывает глобальную гистограмму но плохо реагируют на изменения в динамике. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 20:33 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
GrossmasteR, тебе ж сказали созадай базу ,пиши репу в сервисах вешай на методы Кеш анотации дел на час а вообще конечно задание не на джуна это 100% хоть оно и легкое - но как тут верно заметили -это тюнинг,а прежде чем тюнить ,нужно научиться строить фундамент ,стены ,окна и двери) что за контора то не ЕПУМ случаем ? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.01.2020, 22:58 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
GrossmasteR Уважаемые форумчане, здравствуйте! С рождеством! Нужен ваш совет. Очень нужно сделать тестовое задание. Уровень знаний: +- основы JDBC и сервлетов без Spring. Задание по ссылке. В какую сторону копать, пожалуйста, подскажите? https://drive.google.com/open?id=1kcLCYtCkzDwNs0cFpDIZ-VpyOiX_Y3ed По первому заданию - изучить guava cache , отрезать от него лишнее. По второму заданию - я бы не сказал, что оно сложнее, но человек, который его формулировал путается в показаниях. В начале им нужен алгоритм контроля изменения схемы данных, потом они хотят (вроде бы) контролировать изменения самих данных. Один из вариантов решения - только код на Java, тогда какие могут быть оценки планов исполнения запросов? Создается впечатление, что человек, который писал задание, не понимает, что он хочет. Я вот перечитал задание несколько раз, и так и не понял, какую проблему пытаются решить. Не знаю, хотят ли вас "слить" после курсов (я так понимаю, что лучших обещали трудоустроить), но работать с такими чудаками - себе дороже. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 00:07 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
gycb GrossmasteR, тебе ж сказали созадай базу ,пиши репу в сервисах вешай на методы Кеш анотации дел на час А если сперва задание прочитать? Ему нужно написать свой собственный кэш. База для этого ему не нужна от слова совсем. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 00:12 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Локшин Марк gycb GrossmasteR, тебе ж сказали созадай базу ,пиши репу в сервисах вешай на методы Кеш анотации дел на час А если сперва задание прочитать? Ему нужно написать свой собственный кэш. База для этого ему не нужна от слова совсем. а если сперва автора почитать? на джуна писать свой кэш?)) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 00:57 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
gycb Локшин Марк пропущено... А если сперва задание прочитать? Ему нужно написать свой собственный кэш. База для этого ему не нужна от слова совсем. а если сперва автора почитать? на джуна писать свой кэш?)) Я прочитал GrossmasteRЯ до сих пор допускаю мысль, что они либо перепутали ТЗ, либо сделали это специально, чтобы нас слить по какой-то причине. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 01:29 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
gycb что за контора то не ЕПУМ случаем ? Автор топика своеобразный. Заходи раз в страницу, топик не сопровождает, на вопросы не отвечает. Только выкладывает много букв не по теме, а о жизни. Думаю проект не начнёт.)) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 08:23 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Локшин Марк,ну и у тебя еще есть вопросы? ТЗ не адекватное для джуна-джун не должен знать и уметь тюнить приложение,он должен уметь его для начала построить Посему либо перепутали ТЗ,либо культурно нах послали ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 10:11 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
gycb, Если это Java джун, а в программировании опыт есть, то задания +- нормальные. Если человек начал изучать программирование с Java пойдя на эти курсы, то он такое не потянет. Может они таланты таким образом ищут, а может и нах. послали, кто их знает. Но. Если прочитать 2 задание, то для меня вполне очевидно, что не следует с ними связываться. Т.к. если у них такого уровня ТЗ, то потом по-любому будешь кругом в дураках. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 10:28 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
GrossmasteR А препод по курсам нам сказал: "По задачкам : они на самом деле не сложные, вам нужно просто: 1. Загуглить все умные слова и понять, что они значат 2. Упростить задачу (не переусложнять решение) - на самом деле оно на поверхности и достаточно просто гуглится (нужно будет изучить штук 5-6 ссылок в результатах Google)" http://www.javaspecialist.ru/2012/02/java-lru-cache.html ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 12:43 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
сладкий бубалех GrossmasteR А препод по курсам нам сказал: "По задачкам : они на самом деле не сложные, вам нужно просто: 1. Загуглить все умные слова и понять, что они значат 2. Упростить задачу (не переусложнять решение) - на самом деле оно на поверхности и достаточно просто гуглится (нужно будет изучить штук 5-6 ссылок в результатах Google)" http://www.javaspecialist.ru/2012/02/java-lru-cache.html Походу ТЗ на поиски архитектора а не программиста. Так широко его можно толковать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 13:09 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Локшин Марк gycb, Если это Java джун, а в программировании опыт есть, то задания +- нормальные. Если человек начал изучать программирование с Java пойдя на эти курсы, то он такое не потянет. Может они таланты таким образом ищут, а может и нах. послали, кто их знает. Но. Если прочитать 2 задание, то для меня вполне очевидно, что не следует с ними связываться. Т.к. если у них такого уровня ТЗ, то потом по-любому будешь кругом в дураках. скорей всего епум это,у них судя по всему сейчас финансовые проблемы,тотальное сокращение- видимо просто избавляются таким образом от баласта. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 13:45 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp gycb что за контора то не ЕПУМ случаем ? Автор топика своеобразный. Заходи раз в страницу, топик не сопровождает, на вопросы не отвечает. Только выкладывает много букв не по теме, а о жизни. Думаю проект не начнёт.)) У него - 4 поста в статистике. Я таких называю - "рыболовами". Постят один и тот-же пост в много сайтов-форумов. Потом сидят и ждут когда какой-то наивный лопух им все распишет и сделает их курсовую. Убежден что если вы погуглите - найдете дубли его постов в rsdn/cyberforum e.t.c. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 14:14 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
mayton PetroNotC Sharp пропущено... Автор топика своеобразный. Заходи раз в страницу, топик не сопровождает, на вопросы не отвечает. Только выкладывает много букв не по теме, а о жизни. Думаю проект не начнёт.)) У него - 4 поста в статистике. Я таких называю - "рыболовами". Постят один и тот-же пост в много сайтов-форумов. Потом сидят и ждут когда какой-то наивный лопух им все распишет и сделает их курсовую. Убежден что если вы погуглите - найдете дубли его постов в rsdn/cyberforum e.t.c. Кстати, да. Хорошего вам вечера! ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 20:38 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Тема кешей - вялая получилась. Надо - закрывать как в Stackoverflow. С резолюцией - нечего обсуждать. Напишу модератору. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 20:50 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
mayton Надо - закрывать как в Stackoverflow. С резолюцией - нечего обсуждать. всё-таки здесь намного лучше чем на ruSO и хабре ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 21:04 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
gycb Локшин Марк,ну и у тебя еще есть вопросы? ТЗ не адекватное для джуна-джун не должен знать и уметь тюнить приложение,он должен уметь его для начала построить Посему либо перепутали ТЗ,либо культурно нах послали либо хотят не джуна но будут обзывать его джуном. я помню много лет назад тоже получил тз от каких то пудаков. кажется wiley напсать двухуровневый кэш )) т.е. это и было всё тз. на вопрос можно больше деталей сказали что типа это все детали дальше пишите сами. я сказал ок. я потрачу 2 часа и все упрщения. в итоге сделал - эти падальщики даже комментарии не дали на предмет что конкретно в коде не нравится. ))) еще раз - не делайте тз. это всё шлак и мусор и неуважение ко времени нанимаемого потенциального сотрудника. ну или если типовое тз как у тех вилей (гуглится на раз-два в инете тз) - берем копипастим чутка обфусцируем и пусть втыкают. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.01.2020, 22:43 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
skyANA Начнём с простого: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Как зарегистрировать это в IoC-контейнере показывать, или сами догадаетесь? Ну давайте отрезюмируем:
... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 07:42 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Андрей Панфилов skyANA Начнём с простого: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 09:06 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Андрей Панфилов, у нас на проекте используются и аннотации, и декораторы метрики показывают, что все очень стабильно, и очень быстро можешь продолжать дальше злорадствовать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 09:14 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
skyANA, Твой опыт в шарпе нельзя проецировать на Java. И метрики ваши тоже. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 09:26 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
skyANA Критикуешь - покажи как надо. Давай, раскрой полностью свою идею с примерами кода, отражающими то, что ты ожидаешь от других. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 09:41 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Дмитрий Мух, Самоутвержайся кодом, раз в гостях. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 10:17 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Твой опыт в шарпе нельзя проецировать на Java. Код: java 1. 2. 3.
разве вернет что-то отличное от мусора? как-то не верится. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 12:10 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Андрей Панфилов PetroNotC Sharp Твой опыт в шарпе нельзя проецировать на Java. Код: java 1. 2. 3.
разве вернет что-то отличное от мусора? как-то не верится. Хорошо, давай пойдём дальше: Код: java 1. 2. 3.
Так устраивает? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 12:13 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Андрей Панфилов, Вы правы конечно про кусок кода. Я про его остальные "доказательства" типа: "у меня в шарпе всё работает и машина у меня самая крутая"). Сразу перешел на терминологию "сам ты такой и слив защитан и т.д. Разговаривать предметно с шарпистами очень тяжело так как ЯП проще чем java. Наши трудятся в свободное время, а они отдыхают) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 12:32 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
skyANA Хорошо, давай пойдём дальше: Код: java 1. 2. 3.
Так устраивает? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 12:43 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Андрей Панфилов skyANA Хорошо, давай пойдём дальше: Код: java 1. 2. 3.
Так устраивает? Получили для сущности ключ кэширования, что будет другим, если что-то изменится. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 12:51 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
skyANA Получили для сущности ключ кэширования, что будет другим, если что-то изменится. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 12:58 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Андрей Панфилов Хорошо, буду возвращать некий OperationResult, имеющий статус успешно всё прошло, или ключ не найден, или таймаут, или... Куча других статусов. Для вызывающего сервиса-то какая разница? У него как был интерфейс Repository, что возвращает сущности, так и остался. О том, что есть некий декоратор, знает только IoC-контейнер. С другой стороны Cache - это тоже просто интерфейс. Реализацией может быть кэш в памяти, кэш в Redis, Couchbase, Memcached. Многоуровневый кэш, являющийся их комбинацией. И вся ботва с обработкой OperationResult и отображением на сущности будет скрыта внутри реализаций. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 13:32 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
skyANA О, наконец-то я понял суть придирки. .. И вся ботва с обработкой OperationResult и отображением на сущности будет скрыта внутри реализаций. Код: java 1. 2. 3.
Андрей Панфилов Сколько спринтов нужно чтобы увидеть ошибку? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 13:40 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Андрей Панфилов skyANA О, наконец-то я понял суть придирки. .. И вся ботва с обработкой OperationResult и отображением на сущности будет скрыта внутри реализаций. Код: java 1. 2. 3.
Андрей Панфилов Сколько спринтов нужно чтобы увидеть ошибку? И зачем быть таким мудаком, интересно ))) Хорошо, пример не кошерный вышел, он был просто иллюстрацией того, что есть декоратор. Так устроит? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 13:47 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
За исключением нескольких дополнительных проверок у нас работает по сути именно такой код. За более чем 6 лет его эксплуатации не было ни одного случая "оно иногда работает как-то не так". Системой пользуется более 26000 организаций на данный момент. Десятки миллионов пользователей ежедневно. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 13:51 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
skyANA И зачем быть таким мудаком, интересно ))) skyANA Так устроит? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 13:55 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Андрей Панфилов skyANA И зачем быть таким мудаком, интересно ))) Код был просто иллюстрацией. Я же не знал, что вы его за продакшн реди сочтёте. Теперь буду знать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 13:57 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Андрей Панфилов skyANA Так устроит? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Тыкайте, не стесняйтесь. Это конструктивнее, чем какую-то ахинею про "аджайл во все дыры" нести :) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 13:59 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Андрей Панфилов, почитал на сайте у вас про вашу методологию, тоже итеративная с элементами SCRUM любопытно, что не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 14:00 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
skyANA За исключением нескольких дополнительных проверок у нас работает по сути именно такой код. За более чем 6 лет его эксплуатации не было ни одного случая "оно иногда работает как-то не так". Системой пользуется более 26000 организаций на данный момент. Десятки миллионов пользователей ежедневно. В среднем 750 op. per second (500-1000), 99.8% hit ratio ... |
|||
:
Нравится:
Не нравится:
|
|||
20.01.2020, 14:01 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Уважаемые форумчане, здравствуйте. Нужен ваш совет. Я взял реализацию уважаемого Валентина Колесникова, 22054598 Изучил статью, которую посоветовал уважаемый сладкий бубалех 22056341 И добавил в конструктор Код: java 1. 2. 3.
а также завернул в Код: java 1.
Получилась вот такая простая реализация Java LRU cache: Код: 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. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76.
Вопрос, а как мне написать юнит тесты? На что тестировать? Пробую как-то так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
и как сделать нагрузочные тесты. с этим я вообще не сталкивался. пожалуйста, подскажите P.S. И кстати, вопрос, а если я делаю так Код: java 1. 2. 3. 4. 5.
то нужна ли мне вообще логика в методе put? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 19:21 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
GrossmasteR, если ты дошел до того что начал делать LRU-кеши - то у тебя видимо есть какая-то перформансная проблема. Иначе тебе-б LRU был-бы не нужен. Верно? В этом случае ты делаешь 2 имплементации твоей бизнес-логики. Без LRU. И с использованием LRU. И в конце просто делаешь некое общее утверждение что время работы стало на 200% быстрее (к примеру). На этом пожалуй всё. Придумать какие-то синтетические тесты на LRU очень сложно. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 19:27 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
mayton начал делать LRU-кеши - то у тебя.... нехватает памяти ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 19:53 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
mayton Придумать какие-то синтетические тесты на LRU очень сложно. банальное: кол-во put и get из разных потоков в секунду как меряют всякие message queue, получая сотни миллионов сферических мессаджей в секунду ))) ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 19:55 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev mayton начал делать LRU-кеши - то у тебя.... нехватает памяти Это две стороны одной медали. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 20:03 |
|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsev mayton Придумать какие-то синтетические тесты на LRU очень сложно. банальное: кол-во put и get из разных потоков в секунду как меряют всякие message queue, получая сотни миллионов сферических мессаджей в секунду ))) А с чем сравнивать? Должен быть какой-то baseline. Или какая-то мера. Иначе как ты примешь решение о том что кеш реализован эффективно? Просто работает? Correctness - это не наш вопрос. У нас вопрос эффективности. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2020, 20:10 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2120923]: |
0ms |
get settings: |
26ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
110ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
1619ms |
get tp. blocked users: |
2ms |
others: | 293ms |
total: | 2086ms |
0 / 0 |