# Синхронизация данных между двумя хранилищами

**URL:** <https://discuss.elastic.co/t/topic/226198>\
**Category:** Вопросы на русском языке\
**Created:** [April 2, 2020, 11:01am UTC](https://discuss.elastic.co/t/topic/226198 "2020-04-02T11:01:00Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![111310](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/111310/32/65558_2.png) [@111310](https://discuss.elastic.co/u/111310)\
**Post date:** [April 2, 2020, 11:01am UTC](https://discuss.elastic.co/t/topic/226198/1 "2020-04-02T11:01:01Z")

</div>

Есть сайт, основная БД - MYSQL, прикручиваю поиск по сущностям, которые часто обновляются и добавляются новые. Elastic получается как второе хранилище данных. Вопрос. как избежать неконсистентности данных? то есть, в mysql одни значения в elastic другие, такое происходит из за гонки, когда приходят два конкурирующих запроса на обновление 1 сущности, в первом хранилище запрос оказался первым, втором второй запрос стал первым и данные побились. Можно строить очереди запросов, но это сильно скажется на производительности, и тогда появится задержка, что добавлено в mysql, еще нет в elastic, что по сути тоже рассинхрон данных. Кто как решал? Есть ли какие то мысли?

---

<div class="post-metadata">

**Author:** ![Igor\_Motov](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/igor_motov/32/45193_2.png) [@Igor\_Motov](https://discuss.elastic.co/u/Igor_Motov)\
**Post date:** [April 2, 2020, 2:20pm UTC](https://discuss.elastic.co/t/topic/226198/2 "2020-04-02T14:20:26Z")

</div>

Теоретически, решить эту задачу не возможно так как elasticsearch не поддерживает транзакции. Поэтому всегда есть возможность, что в какой-то момент, что-то сработает в MySQL, но не сработает в elasticsearch или наоборот.

На практике, я бы начал с чтения этих блог постов. Если будут дополнительные вопросы - спрaшивайте.

- Общие мысли - [https://www.elastic.co/blog/found-keeping-elasticsearch-in-sync](https://www.elastic.co/blog/found-keeping-elasticsearch-in-sync)
- Конкретные решения - [https://www.elastic.co/blog/how-to-keep-elasticsearch-synchronized-with-a-relational-database-using-logstash](https://www.elastic.co/blog/how-to-keep-elasticsearch-synchronized-with-a-relational-database-using-logstash)

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [April 30, 2020, 2:20pm UTC](https://discuss.elastic.co/t/topic/226198/3 "2020-04-30T14:20:29Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
