Тут есть одна проблема. Когда в таблице около сотни миллионов записей, любое добавление поля в нее занимает часы. Поскольку проливка DDL скриптов требует отключения базы, происходит это ночью и похоже на запуск ракеты в космос. В этом участвует много людей, и требуется соблюдение некоторых формальных процедур. К тому же, если проливка хотя бы одного скрипта длится более 5-ти часов, все развертывание переносят на выходные, а то, как нетрудно догадаться, был понедельник (понедельник после развертывания — день веселый). В общем, решили переразвернуть приложение, а потом в приключения с базой никто ввязываться не захотел (проблема-то как бы решена).
Вот Вы говорите, что «Количество поврежденных квот росло со скоростью более тысячи в час» и «Новая версия фронт-офисной системы была развернута в кротчайшие сроки, и это остановило эпидемию.»
И сколько же заняли кратчайшие сроки? От момента обнаружения до лечения, если возможно. Спасибо.
Однозначный фейл проектировщиков, ибо если в БД есть структура, которая отвечает за реальные бабки за ней нужно следить в десять глаз, и очень желательно создавать эти структуры только в одном месте с обязательным контролем целостности данных (т.е., очень желательно, сравнивать количество созданных квот с перечисленными деньгами на счёт компании от клиентов, и при несхождении бить очень большую тревогу, ибо баг в коде влияет на реальные дензнаки).
Однажды было посчитано, что себестоимость разработки полноценных юнит-тестов для системы такого масштаба будет превышать любой потенциальный ущерб от любых ошибок. Поэтому юнит-тесты покрывают только базовые вещи. Упор делается на интеграционные и бета-тесты. В конце концов, если учесть, что за 11 лет это был единственный случай, то ущерб ни такой уж и большой. Чаще система лежит из-за сетевых и аппаратных проблем, из-за ошибок в конфигурационных файлах и прочих вещей не относящихся к коду.
А можно подробнее про систему, построенную на таких вот «квотах» и их клонировании?
Уж очень странное, на первый взгляд, решение — похоже на какой-то выкидыш изощренного мозга ООПшника…
Эпидемия в данных