Здравствуйте.
У нас
тутАвтор: Sharov
Дата: 13.08.19
с Синклером вышла интересная дисскуссия по поводу теории распределенных систем, где был затронут ряд вопросов на счет матиматического обеспечения данной теории, и о теореме CAP в частности. Итак:
1) Вот у нас имеются отдельные ненадежные(шумящие) компоненты и ненадежный(шумящий) канал. И вот с помощью целой теории,
в основе которой лежат теорема
Котельниова-Шеннона и просто
Шеннона, суть которых в том, что из ненадежных
отдельных компонентов и ненадежного канала мы можем построить надежную систему до каких-то там девяток -- 99.999(9). Рассмотрим теперь компьютер, который в своих
физических возможностях ограничен -- мы можем одной машиной обработать исключительно конченое число запросов в ед. времени. Если нам нужно обрабатывать сущ. большее кол-во запросов, чем способна обработать одна машина, мы добавляем еще машин и т.д. И у нас также имеется ненадежный канал, сеть. И... вот все, никаких формализмов, никаких мат. формул, да и вообще никакой существенной математики нет. Хотя аналогия с приемом\передачей сигналов и ненадежных компонентов самая прямая. Т.е. из отдельных компонентов с помощью неких законов мы получаем работающую систему. В одном случае разработана целая теория с подробным мат. аппаратом, типа кодирования и восстановления инф-ии, сжатие и т.д. А в другом, кроме CAP, по сути, ничего нет. Нету каких-либо формул, количественных показателей и т.д Т.е. руководства типа если <100 req/sec делай так, > 10000 req/sec то уже так. Построение распределенных систем в некоторой мере искусство, где каждый справляется как может.
Вопрос -- почему отсутствуют математические основания в теории распр. систем? Т.е. по сути аналогом теорем К.-Ш. является CAP, в которой отсутствует какие-либо
количественных характеристики или формулы. Ну да, есть некий компромисс между C,A и P, выберите 2 из 3. Ну чего-то как-то не густо. Есть фундаментальные работы Лэмпорта по консенсусу еще в 70-80-х годах, но как-то единой теории с соотв. мат. аппаратом не появилось? Почему?
2) Отдельно хотелось бы обсудить теорему CAP. В дискуссии, на которую я ссылаюсь выше, Синклер считает, что данная теорема как минимум бесполезна, ибо не дает
каких-либо количественных характеристик, а как максимум -- вредна. Я же считаю, что данная теорема крайне полезна, т.к. четко проговаривает ключевых абстракции и формулирует некий закон -- 2 из 3. Огромному кол-ву разработчиков всяческих распределенных систем типа соц. сетей, бложиков и т.д. сэкономила кучу времени на разработку костылей, четко определив абстракции, на которые необходимо уделить внимание и предоставив некоторый формализм. Что уже по сути не мало.
Предлагаю поднятые выше два вопроса обсудить.