CRDT / Структуры данных

3 824
11.1
LoftBlog382 тыс
Опубликовано 21 июля 2022, 5:36
Очень часто при разработке распределённых систем программисты сталкиваются с выбором требований, которым данные системы должны удовлетворять. В такие моменты следует ориентироваться на те ограничения, которые накладывает CAP-теорема. Partition tolerance - та характеристика которая не может быть проигнорирована и по факту должна быть выбрана по умолчанию (задержки в передаче сообщений по сетям, пусть на короткое время, но создают ситуации split brains). Выбор между Availability и Consistency для высоконагруженных систем как правило падает в сторону Availability, так как это позволяет обслуживать больше клиентов. В таких условиях Consistency становиться eventual consistency, что в свою очередь может приводить к конфликтам репликации данных. Как способ избежать подобных проблем, были разработаны CRDT(Conflict-free replicated data type) - структуры данных которые могут изменяться не зависимо друг от друга, но в конечном итоге синхронизироваться без каких-либо конфликтов слияния.

Dmitry Porozhnyakov
Senior Software Engineer
жизньигрыфильмывесельеавтотехномузыкаспортедаденьгистройкаохотаогородзнанияздоровьекреативдетское