Встречается на собеседованиях • сегодня

Какая интересная история с благополучным концом была на рабочем проекте

Однажды на проекте с высоконагруженным микросервисом возникла проблема: при нагрузке >1000 RPS сервис начинал "глотать" CPU и падал. Логи не помогали, метрики показывали лишь высокую загрузку.

После недели дебага нашли корень проблемы: в кэширующем декораторе был баг с неатомарным обновлением ConcurrentHashMap. При конкурентном доступе возникала race condition, приводящая к бесконечному пересозданию кэшируемых объектов.

Фикс занял 3 строки:

java
// Было
cache.put(key, createExpensiveObject());

// Стало
cache.computeIfAbsent(key, k -> createExpensiveObject());

После релиза фикса CPU упал на 70%, а сервис стабильно держал 5000 RPS. Главный урок - даже в "простом" коде с конкурентными коллекциями могут скрываться коварные баги.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы