«Ситилинк» — один из крупнейших электронных дискаунтеров с широким ассортиментом и большой сетью магазинов и складов. На 2020 год оборот онлайн-продаж у компании составил 132,7 млрд рублей, что делает ее третьей по величине в России.
В 2010 году все данные «Ситилинка» о товарных позициях, включая их наличие на складе и цену, хранили в реляционной базе данных. Для доступа к ней использовали монолитный сервис на PHP-фреймворке Symfony. Год от года нагрузка росла, и реляционная база данных перестала справляться с нагрузкой.
Долгое время в «Ситилинке» использовали систему кэширования. Она снижала нагрузку на базу данных при чтении и записи. Однако система постоянно усложнялась, нужно было инвалидировать кэш и гарантировать целостность данных на случай перегрузки. В определенный момент размер кэша достиг 100 ГБ, и стало выгоднее не кэшировать данные, а хранить их в in-memory базе данных.
Объяснить такой рост данных и всю сложность в планировании архитектуры могут четыре основных фактора:
Время полного обновления каталога 3 секунды вместо 10-30 минут.
Менее 30 мс. задержка предоставления данных
70 экземпляров баз данных. Под самые высоконагруженные сервисы
Без кэширования, проще код, актуальнее данные
Одна минута вместо двух недель. Time-to-market с переходом на DBaaS
Рост доступности
Оставьте нам сообщение, и мы обязательно с вами
свяжемся!