Уважаемые хабрчане, здравствуйте!
Нужен ваш совет.
Очень нужно сделать тестовое задание.
Уровень знаний: +- основы JDBC и сервлетов без Spring.
Задание в спойлере. В какую сторону копать, пожалуйста, подскажите?
Вытесняющий кэш для высоконагруженной системыЗадача 1.
Вытесняющий кэш для высоконагруженной системы
Введение:
Бэкенд приложение с сравнительно большой нагрузкой должно иметь доступ к горячим данным для отображения и произведения несложных вычислений, перзистивное хранение осуществляется в СУБД. Любой доступ к горячим данным потенциально влечет за собой вызов запроса из СУБД, что является узким местом производительности. Для решения этой проблемы приложение должно иметь механизм хранения горячих данных, призванное сократить количество запросов к БД.
Что нужно сделать:
Спроектировать и реализовать модуль реализующий вытесняющий кэш.
Модуль должен предоставлять публичное апи. Внутренняя реализация должна быть скрыта от других модулей.
Вариации:
Структуры данных должны быть оптимизированы для массового паралельного доступа (память можно не экономить).
Структуры данных должны быть оптимизированы по памяти (скорость обращения, оптимизация работы сборщика мусора).
Структуры данных должны быть оптимизированы для хранения разных POJO типов.
Структуры данных должны быть оптимизированы для быстрой инвалидации. (скорость обновления по запросу).
Структуры данных должны быть спроектированы для быстрого поиска и вычислений.
(Повышенной сложности) Структуры данных должны иметь возможность быть разделены между двумя Java процессами.
Критерии оценки:
Код должен быть написан согласно какому либо стандарту (ссылку можно прикрепить).
АПИ должно быть документировано в Java DOC.
Код должен быть покрыт юнит тестами.
Код должен быть покрыт нагрузочными тестами.