|
Вытесняющий кэш для высоконагруженной системы?
|
|||
---|---|---|---|
#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?fid=59&msg=39916297&tid=2120923]: |
0ms |
get settings: |
25ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
400ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 534ms |
0 / 0 |