рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рд╡реИрдЬреНрдЮрд╛рдирд┐рдХ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдиреЗ рдкреИрдХреНрд╕реЛрд╕ рдирд╛рдордХ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рд╕рд░реНрд╡рд╕рдореНрдорддрд┐ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХрд╛ рддреЗрдЬреА рд╕реЗ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рдХрд╛рд╢рдиреЛрдВ рдХреЗ рдмреАрдЪ, Google рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ (
рдЪрдмреНрдмреА ,
рдореЗрдЧрд╛рд╕реНрдЯреЛрд░ ,
рд╕реНрдкреИрдирд░ ) рджреНрд╡рд╛рд░рд╛ рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкрд╣рд▓реЗ рдЖрдВрд╢рд┐рдХ рд░реВрдк
рд╕реЗ рд╣рдм рдкрд░ рдХрд╡рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ ,
рд╡рд╛рдиреНрдбрд┐рд╕реНрдХреЛ ,
рд╕реЗрдл рд╕рд┐рд╕реНрдЯрдо рдЖрджрд┐ рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛, рдЙрд╕реА рд╕рдордп, рдкреИрдХреНрд╕реЛрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо
рдХреЛ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдорд╛рдирд╛ рдЬрд╛рддрд╛
рд╣реИ , рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдкреНрд░рд╛рдердорд┐рдХ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ рдФрд░ рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдердо рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рднрд╛рд╖рд╛ рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд▓реЗрдЦрдХ рд▓реЗрд╕реНрд▓реА рд▓рд╛рдордкреЛрд░реНрдЯ рдиреЗ рдПрдХ рдмрд╛рд░
рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдереА ред
рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рдЙрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдпрд╣ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рд╣рд▓ рдХрд░рддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд┐рддрд░рд┐рдд рд╕реВрдЪрдирд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ, рдЬреЛ x86 рд╕рд░реНрд╡рд░реЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИред рдпрджрд┐ рдПрдХ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд╡рд┐рдлрд▓рддрд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдЫреЛрдЯреА рд╣реИ рдФрд░ рдЕрдХреНрд╕рд░ рд╕рд░рд▓ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп рдЗрд╕реЗ рдЙрдкреЗрдХреНрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рд╕рд░реНрд╡рд░ рдХреЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХрдИ рдЧреБрдирд╛ рдЕрдзрд┐рдХ рд╣реЛ рдЬрд╛рддреА рд╣реИ: рдПрди рд╕рд░реНрд╡рд░ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП MTBF рдПрдХ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП MTBF рд╕реЗ рдХрдо рд╣реИред рдпрд╣ рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдг рд╡рд┐рдлрд▓рддрд╛ рдФрд░ рдкреИрдХреЗрдЯ рд╣рд╛рдирд┐, рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рд╡рд┐рдлрд▓рддрд╛рдУрдВ, рдУрдПрд╕ рдФрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╕реНрддрд░ рдкрд░ рд╕рд░реНрд╡рд░ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред
Google рдХреЗ рдЕрдиреБрд╕рд╛рд░, 1800 рдорд╢реАрдиреЛрдВ рдХреЗ рдПрдХ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд▓рд┐рдП, рд╡реЗ рдХреНрд▓рд╕реНрдЯрд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдкрд╣рд▓реЗ рд╡рд░реНрд╖ рдХреЗ рджреМрд░рд╛рди 1000 рд╕рд░реНрд╡рд░ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рдкреНрд░рддрд┐ рджрд┐рди 3 рд╡рд┐рдлрд▓рддрд╛рдПрдВ - рдФрд░ рдЗрд╕рдореЗрдВ рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рд╡рд┐рдлрд▓рддрд╛рдПрдВ, рдиреЗрдЯрд╡рд░реНрдХ рдФрд░ рдмрд┐рдЬрд▓реА рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ рдЖрджрд┐ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рд╡рд┐рддрд░рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдореЗрдВ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдирд╣реАрдВ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ рд╕рд┐рд╕реНрдЯрдо рдорд┐рд▓реЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдЙрдкрд░реЛрдХреНрдд рдкреНрд░рддреНрдпреЗрдХ рд╕рдорд╕реНрдпрд╛ рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рдлрд▓рддрд╛ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИред
рдЗрд╕рд▓рд┐рдП, рд╕рд░реНрд╡рд╕рдореНрдорддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рдкреНрд░рддрд┐рднрд╛рдЧрд┐рдпреЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕рд╣рдордд рдореВрд▓реНрдп рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рд╣реИ рдЬрд╣рд╛рдВ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рддрд┐рднрд╛рдЧреА рд╡рд┐рдлрд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЧрд▓рдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдорд┐рд╢рди рдорд╛рдзреНрдпрдо рджреНрд╡рд╛рд░рд╛ рд╕рдВрдЪрд░рд┐рдд рдореВрд▓реНрдпреЛрдВ рдХреЛ рд╡рд┐рдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рдШрдЯрдХреЛрдВ рдХреЗ рдЕрд╕рд╛рдорд╛рдиреНрдп рдХрд╛рдордХрд╛рдЬ рдХреЗ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рджреЛ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
- рдкреВрд░реНрдг рдШрдЯрдХ рд╡рд┐рдлрд▓рддрд╛ред рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдпрд╣ рд╡рд░реНрдЧ рдЗрд╕ рддрдереНрдп рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рд╡рд┐рдлрд▓рддрд╛ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓реА (рдпрд╛ рдиреЗрдЯрд╡рд░реНрдХ рд╡рд┐рднрд╛рдЬрди, рд╕реНрд╡рд┐рдЪ рд╡рд┐рдлрд▓рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ) рдХреЗ рдШрдЯрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреА рджреБрд░реНрдЧрдорддрд╛ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреА рд╣реИред рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдЗрд╕ рд╢реНрд░реЗрдгреА рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ: рд╕рд░реНрд╡рд░ рд╡рд┐рдлрд▓рддрд╛, рднрдВрдбрд╛рд░рдг рдкреНрд░рдгрд╛рд▓реА рд╡рд┐рдлрд▓рддрд╛, рд╕реНрд╡рд┐рдЪ рд╡рд┐рдлрд▓рддрд╛, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рдлрд▓рддрд╛, рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдлрд▓рддрд╛;
- рдмреАрдЬрд╛рдиреНрдЯрд┐рди рдЧрд▓рддреАред рдпрд╣ рдЗрд╕ рддрдереНрдп рд╕реЗ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдиреЛрдб рдХрд╛рд░реНрдп рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЧрд▓рдд рдЬрд╛рдирдХрд╛рд░реА рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП, рдИрд╕реАрд╕реА рдХреЗ рдмрд┐рдирд╛ рд░реИрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдпрд╣ рдореЗрдореЛрд░реА рд╕реЗ рдЧрд▓рдд рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдг рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдкреИрдХреЗрдЯ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ рдЖрджрд┐ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рджреНрд╡рд┐рддреАрдп рд╢реНрд░реЗрдгреА рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдФрд░ рд╕рд╣реА рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд▓реЗрд╕реНрд▓реА рд▓рд╛рдордкреЛрд░реНрдЯ
рдиреЗ рд╕рд╛рдмрд┐рдд рдХрд┐рдпрд╛ рдХрд┐
рдПрди рдиреЛрдбреНрд╕ рдореЗрдВ рдмреАрдЬрд╛рдиреНрдЯрд┐рди рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдХрдо рд╕реЗ рдХрдо
3N + 1 рдиреЛрдбреНрд╕ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдЖрдо рд╕рд╣рдорддрд┐ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рд╕реНрддрд░ рдкрд░ рджреЛрд╖ рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдЙрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬрд┐рдирдХреА рдЬреАрд╡рдирд╢реИрд▓реА рдЕрддреНрдпрдВрдд рдЙрдЪреНрдЪ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдВрддрд░рд┐рдХреНрд╖ рдЙрджреНрдпреЛрдЧ рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ)ред
рдХреНрд▓рд╕реНрдЯрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рдореЗрдВ, рдЧрд▓рддреА рд╕рд╣рд┐рд╖реНрдгреБрддрд╛ рдХреЛ рдЖрдорддреМрд░ рдкрд░ рдШрдЯрдХ рд╡рд┐рдлрд▓рддрд╛рдУрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдкреНрд░рддрд┐рд░реЛрдз рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдордЭрд╛ рдЬрд╛рддрд╛ рд╣реИред рдРрд╕реА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдЖрдо рд╕рд╣рдорддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреИрдХреНрд╕реЛрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо
рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд▓реЗрд╕реНрд▓реА рд▓рд╛рдордкреЛрд░реНрдЯ рдиреЗ рдкрд┐рдЫрд▓реА рд╢рддрд╛рдмреНрджреА рдХреЗ 90 рдХреЗ рджрд╢рдХ рдореЗрдВ рд░рдЦрд╛ рдерд╛ рдФрд░ рд╕рдВрд╕рдж рдХреЗ рдХрд╛рдо рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреА рдПрдХ рдХрд╛рд▓реНрдкрдирд┐рдХ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд╕рд╛рде рдкрд╛рдХреНрд╕реЛрд╕ рдХреЗ рдЧреНрд░реАрдХ рджреНрд╡реАрдк рдХреЗ рдирд╛рдо рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛ рдерд╛ред рд╕рд░реНрд╡рд╕рдореНрдорддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐
2N + 1 рдиреЛрдбреНрд╕ рдХреА рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рдХрдо рд╕реЗ рдХрдо
N + 1 рдиреЛрдбреНрд╕ рдлрд╝рдВрдХреНрд╢рди, рдЗрди
N + 1 рдиреЛрдбреНрд╕ рдХреЛ "рдХреЛрд░рдо" рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднреВрдорд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдПрдЬреЗрдВрдЯреЛрдВ рдХреА рдмрд╛рддрдЪреАрдд рдореЗрдВ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХрд╛ рд╕рд╛рд░:
- рдЧреНрд░рд╛рд╣рдХ - рдПрдХ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдЬреЛ рдЕрдиреБрд░реЛрдз рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ
- рдкреНрд░рд╕реНрддрд╛рд╡рдХ - рдорддрджрд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЖрдпреЛрдЬрди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдПрдХ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдПрдХ рдШрдЯрдХ
- рд╕реНрд╡реАрдХрд░реНрддрд╛ - рдПрдХ рд╡рд┐рддрд░рд┐рдд рдкреНрд░рдгрд╛рд▓реА рдХрд╛ рдПрдХ рдШрдЯрдХ рдЬрд┐рд╕рдореЗрдВ рдкреНрд░рд╕реНрддрд╛рд╡рдХ рд╕реЗ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рд╕реНрддрд╛рд╡ рдХреА рд╕реНрд╡реАрдХреГрддрд┐ рдпрд╛ рдЕрд╕реНрд╡реАрдХреГрддрд┐ рдХреЗ рд▓рд┐рдП рд╡реЛрдЯ рджреЗрдиреЗ рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реЛрддрд╛ рд╣реИ
- рд▓рд░реНрдирд░ - рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдПрдХ рдШрдЯрдХ рдЬреЛ рдирд┐рд░реНрдгрдп рдХреЛ рдпрд╛рдж рд░рдЦрддрд╛ рд╣реИ
рдореВрд▓ Paxos рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдореЗрдВ рдирд┐рдореНрди рдЪрд░рдг рд╣реЛрддреЗ рд╣реИрдВ:
1 рдХред рддреИрдпрд╛рд░ рдХрд░реЗрдВ ("рдкреНрд░рд╕реНрддрд╛рд╡")ред рдЗрд╕ рдЪрд░рдг рдореЗрдВ, рдкреНрд░рд╕реНрддрд╛рд╡рдХ рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛
N рдХреЗ рд╕рд╛рде рдПрдХ "рд╡рд╛рдХреНрдп" рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕рднреА рд╕реНрд╡реАрдХрд░реНрддрд╛ рдХреЛ рднреЗрдЬрддрд╛ рд╣реИред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд "рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ" рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП, рд╕рдВрдЦреНрдпрд╛
N рдкрд╣рд▓реЗ рд╕реЗ рдЪрдпрдирд┐рдд рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП
1bред рд╡рд╛рджрд╛ ("рд╡рд╛рджрд╛")ред рдкреНрд░рддреНрдпреЗрдХ рд╕реНрд╡реАрдХрд░реНрддрд╛ рдХреЛ рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛
N рдФрд░ рдорд╛рди
V рдХреЗ рд╕рд╛рде рдПрдХ "рдкреНрд░рд╕реНрддрд╛рд╡" рдорд┐рд▓рддрд╛ рд╣реИ
ред рдпрджрд┐ "рд╕реНрд╡реАрдХрд░реНрддрд╛" рдХреА рд╕рдВрдЦреНрдпрд╛ рдЗрд╕ рд╕реНрд╡реАрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЧрдП рд╕рднреА рд╕реЗ рдЕрдзрд┐рдХ рд╣реИ, рддреЛ рд╡рд╣ рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ "рд╡рд╛рджреЗ" рдХреЗ рд╕рд╛рде рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реИ рдХрд┐ рд╡рд╣ "рдСрдлрд╝рд░" рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдЕрдиреБрдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛
рдПрди рд╕реЗ рдХрдо рд╣реИ
ред рдпрджрд┐ рджрд┐рдП рдЧрдП рд╕реНрд╡реАрдХрд░реНрддрд╛ рдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ "рдСрдлрд╝рд░" рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рдЗрд╕ "рдСрдлрд╝рд░" рдХреЗ рдирдВрдмрд░
I рдФрд░
V рдХреЗ рдорд╛рди рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЕрдиреНрдпрдерд╛ рдпрд╣ рдПрдХ рдЦрд╛рд▓реА рдорд╛рди рд▓реМрдЯрд╛рддрд╛ рд╣реИ
2 рдПред рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ! ( "рд▓реЛ")ред рдпрджрд┐ рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡рдХ рдХреЛ рд╕реНрд╡реАрдХрд░реНрддрд╛ рдХреЛрд░рдо рд╕реЗ "рд╡рд╛рджреЗ" рдорд┐рд▓реЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдЖрдЧреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рдЕрдиреБрд░реЛрдз рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдШрдЯрдирд╛ рдореЗрдВ рдХрд┐ рд╕реНрд╡реАрдХрд░реНрддрд╛ рд╕реЗ "рд╡рд╛рджреЗ" рдХреЗ рд╕рд╛рде рднреА
N i рдФрд░
V i рдХреЗ рдореВрд▓реНрдп рдЖрдП рдереЗ, рдкреНрд░рд╕реНрддрд╛рд╡рдХ рдЕрдзрд┐рдХрддрдо
N i рдХреЗ рд╕рд╛рде "рд╡рд╛рджреЗ" рдХреЗ рдорд╛рди
V i рдХреЗ рдмрд░рд╛рдмрд░
V рдХреЛ рдЪреБрдирддрд╛ рд╣реИред рдлрд┐рд░, рдкреНрд░рд╕реНрддрд╛рд╡рдХ рд╕рднреА рд╕реНрд╡реАрдХрд╛рд░рдХрд░реНрддрд╛ рдХреЛ рдПрдХ "рд╕реНрд╡реАрдХрд╛рд░" рдЕрдиреБрд░реЛрдз рднреЗрдЬрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ
рдПрди рдФрд░
рд╡реА рдХреЗ рдореВрд▓реНрдп рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
2 рдмреАред рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ ред рдЬрдм рдХреЛрдИ рд╕реНрд╡реАрдХрд╛рд░рдХрд░реНрддрд╛
N рдФрд░
V рдХреЗ рдорд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде "рд╕реНрд╡реАрдХрд╛рд░" рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЗрд╕реЗ рддрднреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЙрд╕рдиреЗ
N рдХреЗ рдореБрдХрд╛рдмрд▓реЗ рдХрдбрд╝рд╛рдИ рд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрдЦреНрдпрд╛ рд╡рд╛рд▓реЗ рдкреНрд░рд╕реНрддрд╛рд╡реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП "рд╡рд╛рджрд╛" рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реЛ
ред рдЕрдиреНрдпрдерд╛, рдпрд╣ рдорд╛рди рд▓реЗрддрд╛ рд╣реИ рдФрд░ рд╕рднреА рд╢рд┐рдХреНрд╖рд╛рд░реНрдереА рдХреЛ "рд╕реНрд╡реАрдХрд╛рд░" рд╕рдВрджреЗрд╢ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ
рд╢рд┐рдХреНрд╖рд╛рд░реНрдереА рдХрд╛ рдХрд╛рд░реНрдп рд╕рд░рд▓ рд╣реИ -
рд╡реА рдХреЗ рдорд╛рди рдХреЗ рд╕рд╛рде "рд╕реНрд╡реАрдХреГрдд" рд╕рдВрджреЗрд╢ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдпрд╛рдж рд░рдЦреЗрдВ
рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдХрд╛рдордХрд╛рдЬ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
Client Proposer Acceptor Learner | | | | | | | X-------->| | | | | | Request | X--------->|->|->| | | Prepare(1) | |<---------X--X--X | | Promise(1,{Va,Vb,Vc}) | X--------->|->|->| | | Accept!(1,Vn=last(Va,Vb,Vc)) | |<---------X--X--X------>|->| Accepted(1,Vn) |<---------------------------------X--X Response | | | | | | |
рдпрджрд┐ рд╡рд┐рддрд░рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдХреЛрдИ рднреА рдШрдЯрдХ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рд╣реЛрдЧрд╛?
рд╡рд┐рдлрд▓рддрд╛ рд╕реНрд╡реАрдХрд░реНрддрд╛:
Client Proposer Acceptor Learner | | | | | | | X-------->| | | | | | Request | X--------->|->|->| | | Prepare(1) | | | | ! | | !! FAIL !! | |<---------X--X | | Promise(1,{null,null, null}) | X--------->|->| | | Accept!(1,V) | |<---------X--X--------->|->| Accepted(1,V) |<---------------------------------X--X Response | | | | | |
рдЪреВрдВрдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ 3 рд╕реНрд╡реАрдХрд░реНрддрд╛ рдиреЛрдб рд╣реИрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рд╡рд┐рдлрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреЛрд░рдо рджреЛ рд╣реИ
рд╕реАрдЦрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓рддрд╛:
Client Proposer Acceptor Learner | | | | | | | X-------->| | | | | | Request | X--------->|->|->| | | Prepare(1) | |<---------X--X--X | | Promise(1,{null,null,null}) | X--------->|->|->| | | Accept!(1,V) | |<---------X--X--X------>|->| Accepted(1,V) | | | | | | ! !! FAIL !! |<---------------------------------X Response | | | | | |
рд╡рд┐рдлрд▓рддрд╛ рдкреНрд░рд╕реНрддрд╛рд╡рдХ:
Client Proposer Acceptor Learner | | | | | | | X----->| | | | | | Request | X------------>|->|->| | | Prepare(1) | |<------------X--X--X | | Promise(1,{null, null, null}) | | | | | | | | | | | | | | !! Leader fails during broadcast !! | X------------>| | | | | Accept!(1,Va) | ! | | | | | | | | | | | | !! NEW LEADER !! | X--------->|->|->| | | Prepare(2) | |<---------X--X--X | | Promise(2,{null, null, null}) | X--------->|->|->| | | Accept!(2,V) | |<---------X--X--X------>|->| Accepted(2,V) |<---------------------------------X--X Response | | | | | | |
рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡рдХ рдХреА рд╡рд┐рдлрд▓рддрд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдПрдХ рдирдП рдкреНрд░рд╕реНрддрд╛рд╡рдХ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЖрдорддреМрд░ рдкрд░ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдорддрджрд╛рди рдХрд░рдиреЗ рд╕реЗ рдкреБрд░рд╛рдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡рдХ рдХреЗ рд▓реМрдЯрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВред рдЗрд╕ рдШрдЯрдирд╛ рдореЗрдВ рдХрд┐ рдирдпрд╛ рдкреНрд░рд╕реНрддрд╛рд╡рдХ рдЪреБрдирдиреЗ рдХреЗ рдмрд╛рдж рдкреБрд░рд╛рдирд╛ рд╡рд╛рдкрд╕ рдЬреАрд╡рди рдореЗрдВ рдЖрддрд╛ рд╣реИ, рдиреЗрддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдШрд░реНрд╖ рдкреИрджрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рд▓реВрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:
Client Leader Acceptor Learner | | | | | | | X----->| | | | | | Request | X------------>|->|->| | | Prepare(1) | |<------------X--X--X | | Promise(1,{null,null,null}) | ! | | | | | !! LEADER FAILS | | | | | | | !! NEW LEADER (knows last number was 1) | X--------->|->|->| | | Prepare(2) | |<---------X--X--X | | Promise(2,{null,null,null}) | | | | | | | | !! OLD LEADER recovers | | | | | | | | !! OLD LEADER tries 2, denied | X------------>|->|->| | | Prepare(2) | |<------------X--X--X | | Nack(2) | | | | | | | | !! OLD LEADER tries 3 | X------------>|->|->| | | Prepare(3) | |<------------X--X--X | | Promise(3,{null,null,null}) | | | | | | | | !! NEW LEADER proposes, denied | | X--------->|->|->| | | Accept!(2,Va) | | |<---------X--X--X | | Nack(3) | | | | | | | | !! NEW LEADER tries 4 | | X--------->|->|->| | | Prepare(4) | | |<---------X--X--X | | Promise(4,{null,null,null}) | | | | | | | | !! OLD LEADER proposes, denied | X------------>|->|->| | | Accept!(3,Vb) | |<------------X--X--X | | Nack(4) | | | | | | | | ... and so on ...
рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рд╕реНрддрд╛рд╡рдХ рдХреЗ рдкрд╛рд╕ рдПрдХ рд╕реАрд░рд┐рдпрд▓ рдирдВрдмрд░ рд╣реЛрддрд╛ рд╣реИ рдФрд░, рдЬрдм рдПрдХ рдирдП рдкреНрд░рд╕реНрддрд╛рд╡рдХ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрдЦреНрдпрд╛ рдПрдХ рд╕реЗ рдмрдврд╝ рдЬрд╛рддреА рд╣реИред рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдИ рднреА рд╡реНрдпрдХреНрддрд┐ рдкреБрд░рд╛рдиреЗ рдкреНрд░рд╕реНрддрд╛рд╡рдХ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ
рдЬреАрдердм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдЕрдЬрдЧрд░ рдХреЛрдб рджреВрдВрдЧрд╛:
class Proposer (object):
рд╕рдВрджрд░реНрдн: