May 24, 2013 00:15
это очень вредная теорема, потому что на самом деле утверджает тривиальное, а вовсе не "выбери 2 из 3: C, A, или P". но то тривиальное, которое она утверждает, не так flashy, как "2 из 3", поэтому популяризуется везде неправильное понимание, которое заставляет людей думать в неправильную сторону, например - громоздить жуткие алгоритмические сложности, чтобы добиться коммутирующих алгоритмов чтения/записи.
между тем, теорема на самом деле утверждает дословно следующее: если хочется добиться [write] availability с помощью multiple [write] partitions/master nodes, то consistency bye-bye. это всё, что она утверждает. а вовсе не "2 из 3". надо это понять, наконец, раз и навсегда.
а поняв это, можно уже идти дальше - например, решить проблему availability не с помощью multiple writeable masters, а с помощью быстрого выбора нового главного мастера, если старый упал. с точки зрения клиента такой системы, которому перевыборы мастера не видны, система имеет все 3 свойства из трёх, во всех практических смыслах.