Докази коректності класичних Paxos та Fast Paxos


13

Я читаю статтю Леслі Лампорта "Швидкі Паксоси" і зациклююся на доказуванні правильності як класичних, так і швидких паксос.

Для узгодженості, значення визначена координатором в фазі 2 в круглої я повинна задовольнятиv2ai

Для будь-якого раунду j < i , жодне значення, крім v, не було або може бути вибране в раунді j .CP(v,i):j<ivj


Для класичного Паксоса доказ (Сторінка 8) ділиться на три випадки: , j = k , і j < k , де k - найбільше кругле число, в якому деякий акцептор повідомив координатору за фазою 1 b повідомлення. Я не зрозумів аргумент третього випадку:k<j<ij=kj<kk1b

Справа . Ми можемо припустити по індукції , що властивість C P проходить при акцепторі 0 проголосували проти в першому раунді до . Це означає, що жодне значення, ніж v, не було або ще не може бути обране в раунді j .j<kCPa0vkvj

Моє запитання:

  1. Чому ми можемо припустити , що властивість проходить при акцепторі 0 проголосували проти в першому раунді до ?CPa0vk

Здається, ми використовуємо математичну індукцію, отже, на чому лежать підстава, індуктивна гіпотеза та індуктивні кроки?


Для Fast Paxos триває той же аргумент (Сторінка 18). Він говорить,

Справа . Для будь-якого v в V , жодне значення, крім v, не було або може бути ще обране в раунді j .j<kvVvj

Моє запитання:

  1. Як це виходить? Зокрема, чому тут "Для будь-якого in V "?vV

На мою думку, доказ правильності випадку покладається (рекурсивно) на випадки k < j < i та j = k . j<kk<j<ij=k

Отже, як ми можемо укласти випадок не довівши j = k повністю (а саме, пропустивши підрядок j = k, де V містить більше одного значення)?j<kj=kj=kV

Відповіді:


10

Чому можна вважати, що властивість CP зберігається, коли акцептор a0 проголосував за v в раунді k? Здається, ми використовуємо математичну індукцію, отже, на чому лежать підстава, індуктивна гіпотеза та індуктивні кроки?

Ви дивитесь на екземпляр сильної індукції . У простій індукції ви припускаєте, що властивість має значення і доводить, що вона має значення n = m + 1 . У сильній індукції ви припускаєте, що властивість має значення n : n < m і доводить, що вона має значення n = m + 1 .n=mn=m+1n:n<mn=m+1

Основа (я вважаю): . Тобто нульовий раунд (оскільки раунди починаються з 1). Це тривіально вірно, тому, ймовірно, це було не вказано прямо.j=0

Індуктивний крок : Припустимо, ; довести C P ( v ; j + 1 ), де j < i .n,nj:CP(v;n)CP(v;j+1)j<i

Вірите чи ні, це лише доказ ескіз . Справжнє підтвердження - у документі Парламент за сумісництвом. (Одні вважають папір криптовалютою, інші вважають її жартівливою.)


Як це виходить?

На мою думку, доказ правильності випадку покладається (рекурсивно) на випадки k < j < i та j = k .j<kk<j<ij=k

Отже, як ми можемо укласти випадок не довівши j = k повністю (а саме, пропустивши підрядок j = k, де V містить більше одного значення)?j<kj=kj=kV

j<kk<jj=k


Загальні поради щодо доказів Лампорта.

Лампорт використовує техніку ієрархічних доказів. Наприклад, структура доказу на сторінках 7-8 виглядає приблизно так:

  • n,nj:CP(v;n)CP(v;j+1)j<i
    1. Спостереження 1
    2. Спостереження 2
    3. Спостереження 3
    4. k=argmax(...)
    5. випадок k = 0
    6. випадок k> 0
      • випадок k <j
      • випадок k = j
      • випадок j <k

Лампорт прагне використовувати інший тип ієрархії. Він доведе більш простий алгоритм, а потім доведе, що більш складний алгоритм відображає (або "розширює" ) простіший алгоритм. Здається, це не відбувається на сторінці 18, але на це варто дивитись. (Доказ на сторінці 18 видається модифікацією доказу сторінок 7-8; а не розширенням .)

Лампорт багато в чому покладається на сильну індукцію ; він також схильний мислити через множини замість чисел. Таким чином, ви можете отримати порожні набори, де інші мали б нулі або нулі; або створити спілки, де інші мали б доповнення.

ij<i

a

rnd[a]iai

Це безумовно розтягувач мозку, щоб довести подібні системи.

(оновлення) : перерахуйте інваріантів; Лампорт використовує багато інваріантів при розробці та його докази. Іноді вони розкидані по всім доказам; іноді вони присутні лише у перевіреному машиною доказі. Причина щодо кожного інваріанта; чому це там? Як це взаємодіє з іншими інваріантами? Як кожен крок у системі підтримує цю інваріантність?


Повне розкриття : я не читав Fast Paxos, поки мене не попросили відповісти на це запитання; і лише дивився на цитовані сторінки. Я інженер, а не математик; моя щітка з роботою Лампорта заснована виключно на необхідності правильно вигадувати та підтримувати широкомасштабні розподілені системи.

Моя відповідь значною мірою спирається на мій досвід роботи Лампорта. Я прочитав кілька протоколів і доказів Лампорта; Я професійно підтримую систему на основі паксос; Я написав і перевірив протокол консенсусу з високою пропускною здатністю і знову професійно підтримую систему, засновану на ньому (я намагаюся дозволити моїй компанії дозволити мені публікувати документ). Я вже співпрацював в незначній роботі з Лампорт, в якому я зустрічався з ним тричі (документ ще знаходиться на розгляді експертної оцінки.)


ik=max()CP(v,i)k<j<ij=kCP(v,k)CP(v,k)k=max()k<j<kj=kCP(v,k)kn=0kс. У мене є труднощі в перекладі на сильну індукцію з плином часу вперед .
hengxin

1
i=0i=1

P18vV,CP(v,i)j<kP18P17vVCP(v,i)

Нарешті я зрозумів, що таке інваріант і як працює сильна індукція. Знову дякую. До речі, ви згадали, що Lamport tends to use another type of hierarchy. He'll prove a simpler algorithm, and then prove that a more complex algorithm maps onto (or "extends") the simpler algorithm, отже, ви можете показати приклад або навести відповідний документ? Крім того, чи мають ваші папери попередньо друковані (комерційно) некласифіковані видання?
hengxin

1
Лампорт пояснює перший тип ієрархії у своїй роботі Як написати доказ і наводить приклад другого у візантійському Паксосі шляхом уточнення . Другий тип ієрархії зазвичай називають уточненням або відображенням .
Майкл Deardeuff
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.