Про серебряные пули
Oct. 19th, 2014 07:47 am![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Чем глубже я укапываюсь в P2P и personal cloud'ы, тем больше кажется, что добрая половина, а может и больше выехавших за счет технологий (т.е. Yo и Groupon не в счёт) проектов в последние 10 лет сделали это, в том числе, решением проблемы distributed consensus в каком-то частном случае.
Google, Dropbox, Bitcoin, все "web-scale" NoSQL БД, WhatsApp, Hadoop, Skype, Nicira, Contrail, BitTorrent, ну и так далее.
Во всяком случае, это проблема, не имеющая plug&play решения до сих пор, а всплывает она регулярно. В нее упираются попытки делать любые не-идемпотентные (ну или не-монотонные) операции. В последнее время все любят CRDT (и я тоже очень люблю), как универсальный способ резко расширить ассортимент идемпотентных операций, но вот log compaction, шифрование (key agreement в рамках группы) и cluster membership change всё равно требуют консенсуса.
А еще, как только количество узлов, которые пытаются договориться, вырастает, резко становится актуальным роутинг. Который, эээ, тоже без консенсуса неважно работает (собственно, именно поэтому там в список попали Skype, Nicira и тд).
Если обобщить еще чуть дальше, то профит упирается в масштабы, масштабы упираются в размер системы, остающейся управляемой, что упирается в консенсус. Это не то чтобы главный технологический secret sauce, но один из ключевых. Но про machine learning и прочие ништяки уже много писали, а про это - не очень.
UPD: Тут Alexander Temerev отмечает, что глобальный консенсус часто невозможен и даже вреден, уточню определение консенсуса до "the ability of the participating agents to perceive a locally meaningful view of the system state to make informed decisions"
Google, Dropbox, Bitcoin, все "web-scale" NoSQL БД, WhatsApp, Hadoop, Skype, Nicira, Contrail, BitTorrent, ну и так далее.
Во всяком случае, это проблема, не имеющая plug&play решения до сих пор, а всплывает она регулярно. В нее упираются попытки делать любые не-идемпотентные (ну или не-монотонные) операции. В последнее время все любят CRDT (и я тоже очень люблю), как универсальный способ резко расширить ассортимент идемпотентных операций, но вот log compaction, шифрование (key agreement в рамках группы) и cluster membership change всё равно требуют консенсуса.
А еще, как только количество узлов, которые пытаются договориться, вырастает, резко становится актуальным роутинг. Который, эээ, тоже без консенсуса неважно работает (собственно, именно поэтому там в список попали Skype, Nicira и тд).
Если обобщить еще чуть дальше, то профит упирается в масштабы, масштабы упираются в размер системы, остающейся управляемой, что упирается в консенсус. Это не то чтобы главный технологический secret sauce, но один из ключевых. Но про machine learning и прочие ништяки уже много писали, а про это - не очень.
UPD: Тут Alexander Temerev отмечает, что глобальный консенсус часто невозможен и даже вреден, уточню определение консенсуса до "the ability of the participating agents to perceive a locally meaningful view of the system state to make informed decisions"