☠️Однажды мне пришлось проектировать и разрабатывать... Могильные камни.☠️
И нет, я не подрабатывала проектировщиком в похоронном бюро. Хотя...
В своей практике я сталкивалась с двумя видами «могильных камней». В обоих случаях дело касалось данных.
1️⃣ В первом случае, нужно было не удалять данные физически полностью, а сохранить возможность их восстановления. При этом данные должны были стать недоступны в системе для пользователей и не восстанавливаться при следующей репликации. Стандартных механизмов в нашей БД не было. С одной стороны, задача оказалась не слишком сложной, всё было решено с помощью «перемещения» данных в специальную область на заданное время. Но с другой, это начинало влиять на репликацию, особенно если пользователи каким-то образом добирались в эту особую область и начинали использовать её как корзину.
2️⃣ Во втором случае, уже в некоторых БД, преимущественно NoSQL, подобная фишка была встроена либо в саму БД, либо через плагины. Там данные действительно удалялись физически, но на узле сохранялась специальная метка о том, что данные были удалены. Уcловно key:{Ключ данных} deleted_at: <timestamp> Это помогало предотвратить их восстановление при репликации и сохраняло целостность системы.
К несчастью, я узнала о могильных камнях не в начале пути, а когда успела реализовать несколько решений, связанных с удалением. Жила себе в счастливом неведении, почему удаление одна из самых сложных CRUD операций. А потом столкнулась со вторым кейсом. Пользователи не могли удалить данные: на одной реплике данные удалялясь, но один из серверов игнорировал метки об удалении и восстанавливал их при репликации. В результате получалась прекрасная картина: данные есть, метка об их удалении тоже есть. Особое веселье начиналось при массовых операциях удаления. Всё это, конечно, привело к рассогласованию узлов и понижению моей самооценки🙈😂
С тех пор «могильные камни» в работе напоминание, что прошлое может внезапно вернуться…
Если не похоронено правильно.
А с какой "чернухой" приходилось столкнуться в работе вам?
#системныйанализ #базыданных #удалениеданных #репликация #itюмор
Post #414
393
- 😁 11
- ❤ 2
- 👍 2