- PVSM.RU - https://www.pvsm.ru -
Итак, вы ☐ твитнули, ☐ написали в блог, ☐ опубликовали пресс-релиз, ☐ написали в комментариях о том, что знаете способ преодолеть CAP-теорему [1]. Ваша идея не сработает. И вот почему:
☐ вы предполагаете, что сбоев софтажелезасети никогда не случается
☐ вы на самом деле всего-лишь перенесли проблему на другой логический слой
☐ ваше решение эквивалетно одному уже существующему, которое не преодолевает CAP-теорему
☐ вы на самом деле построили AP-систему (доступность и устойчивость к разделению, но не постоянная согласованность данных)
☐ вы на самом деле построили CP-систему(согласованность данных и устойчивость к разделению, но не постоянная доступность)
☐ вы на самом деле построили нераспределенную систему
А особенно в ваших планах плохо следующее:
☐ задержка — реально существующая вещь
☐ большая задержа это тоже самое, что недоступность сервиса
☐ топология сетей меняется со временем
☐ разделение сети на части может случиться в более чем одном месте
☐ отделённая часть сети может пропасть навсегда
☐ отделённая на время часть сети для остальных частей системы неотличима от полностью упавшей
☐ клиенты — это тоже часть распределённой системы
☐ стабильное хранилище данных может оказаться нестабильным
☐ сбои сети обязательно произойдут
☐ сбои железа обязательно произойдут
☐ человеческие ошибки обязательно произойдут
☐ удалённые данные восстанут после синхронизации с ранее упавшими нодами
☐ из-за отличий временных меток ваши данные будут путешествовать во времени туда и обратно
☐ вещи случаются одновременно на разных машинах
☐ некоторые побочные эффекты невозможно откатить, как транзакцию
☐ сбои случаются и в самых критических частях вашей системы
☐ спроектировать распределённую систему на самом деле тяжело
☐ а реализовать — ещё тяжелее
Плюс ещё вот такие технические трудности могут возникнуть:
☐ ваше решение требует центрального компонента, который не может быть недоступен
☐ оказывается, в read-only режиме действительно не доступна запись
☐ размер кворум-группы в вашей системе не может быть изменен
☐ размер кластера в вашей системе не может быть изменен
☐ использования «бесконечного таймаута» — это не решение проблемы потерянных сообщений
☐ ваша система предполагает хранение данных вечно, для чего, конечно же, необходимо безразмерное хранилище
☐ пересинхронизация данных потребует больше трафика, чем всё остальное вместе взятое
☐ «подтверждение получения» это не то же самое, что «подтверждение обработки»
☐ вы даже не ждете пока данные запишутся на диск
☐ вы предполагаете, что небольшие периоды недоступности приемлимы
☐ вы базируетесь на теории, которая пока есть только на бумаге
И вот что я о вас думаю:
☐ отличная попытка, но вопиюще неверная реклама
☐ вы переизобрели уже существующую технологию, причём сделали это плохо
☐ ну и вообще, прочитайте определение термина «теорема»
☐ и еще термина «распределенная система»
☐ вы понятия не имеете, что делаете
☐ вы хотя бы знаете, что такое "логические часы [2]"?
☐ вам вообще не следует заведовать данными других людей
Автор: tangro
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/oblachny-e-vy-chisleniya/41318
Ссылки в тексте:
[1] CAP-теорему: http://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_CAP
[2] логические часы: http://ru.wikipedia.org/wiki/%D0%9B%D0%BE%D0%B3%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B5_%D1%87%D0%B0%D1%81%D1%8B
[3] Источник: http://habrahabr.ru/post/190690/
Нажмите здесь для печати.