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

Очень часто при разработке распределённых систем программисты сталкиваются с выбором требований, которым данные системы должны удовлетворять. В такие моменты следует ориентироваться на те ограничения, которые накладывает CAP-теорема. Partition tolerance - та характеристика которая не может быть проигнорирована и по факту должна быть выбрана по умолчанию (задержки в передаче сообщений по сетям, пусть на короткое время, но создают ситуации split brains). Выбор между Availability и Consistency для высоконагруженных систем как правило падает в сторону Availability, так как это позволяет обслуживать больше клиентов. В таких условиях Consistency становиться eventual consistency, что в свою очередь может приводить к конфликтам репликации данных. Как способ избежать подобных проблем, были разработаны CRDT(Conflict-free replicated data type) - структуры данных которые могут изменяться не зависимо друг от друга, но в конечном итоге синхронизироваться без каких-либо конфликтов слияния. Dmitry Porozhnyakov Senior Software Engineer
Back to Top