Доставка оновлень з БД MySQL в додаток за допомогою клієнта реплікації libslave

  
 
При написанні будь-якого досить великого проекту завжди встають більш-менш схожі проблеми. Одна з них — проблема швидкості отримання оновлень системи. Відносно легко можна налагодити швидке отримання невеликих оновлень. Досить просто зрідка отримувати оновлення великого обсягу. Але що якщо треба швидко оновлювати великий масив даних?
 
Для Таргету Mail.Ru, як і для всякої рекламної системи, швидкий облік змін важливий з наступних причин:
• можливість швидкого відключення показу кампанії, якщо рекламодавець зупинив її в інтерфейсі або якщо у нього скінчилися гроші, а значить, ми не будемо показувати її безплатно;
• зручність для рекламодавця: він може поміняти ціну банера в інтерфейсі, і вже через кілька секунд його банери почнуть показуватися за новою вартістю;
• швидке реагування на зміну ситуації: зміна CTR, надходження нових даних для навчання математичних моделей. Все це дозволяє коригувати стратегію показу реклами, чуйно реагуючи на зовнішні чинники.
 
У цій статті я розповім про оновлення даних, що лежать у великих таблицях в БД MySQL, фокусуючись на швидкості і консистентності — адже не хотілося б вже отримати новий заведений банер, але при цьому не отримати дану рекламну кампанію.
 
Читати далі →