CRDT: рд╕рдВрдШрд░реНрд╖-рдореБрдХреНрдд рдкреНрд░рддрд┐рдХреГрддрд┐ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░


Google.com рдкреЗрдЬ рд╣рд┐рдЯ рдХреИрд╕реЗ рдЧрд┐рдиреЗрдВ? рдФрд░ рдмрд╣реБрдд рд▓реЛрдХрдкреНрд░рд┐рдп рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдкрд╕рдВрдж рдХреЗ рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдХреИрд╕реЗ рд╕реНрдЯреЛрд░ рдХрд░реЗрдВ? рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ CRDT (рдХрдВрдлреНрд▓рд┐рдХреНрдЯ-рдлреНрд░реА рд░реЗрдкреНрд▓рд┐рдХреЗрдЯреЗрдб рдбреЗрдЯрд╛ рдЯрд╛рдЗрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рд╣реИ, рдЬреЛ рд░реВрд╕реА рдореЗрдВ рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдХреЙрдиреНрдлреНрд▓рд┐рдХреНрдЯ-рдлреНрд░реА рд░реЗрдкреНрд▓рд┐рдХреЗрдЯреЗрдб рдбреЗрдЯрд╛ рдЯрд╛рдЗрдкреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рд╣реИрдВ) рдФрд░ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдХрдИ рдкреНрд░рдореБрдЦ рдиреЛрдбреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рддрд░рд┐рдд рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкреНрд░рддрд┐рдХреГрддрд┐ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рджреЛрд╣рд░рд╛рддрд╛ рд╣реИред

1. рдкрд░рд┐рдЪрдп


рд╣рдо рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдПрдХ рдХреИрд▓реЗрдВрдбрд░ рдпрд╛ рдПрдХ рдиреЛрдЯ рд╕реЗрд╡рд╛ рдЬреИрд╕реЗ рдХрд┐ рдПрд╡рд░рдиреЛрдЯ рдЬреИрд╕реЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдЖрджреА рд╣реИрдВред рд╡реЗ рдЗрд╕ рддрдереНрдп рд╕реЗ рдПрдХрдЬреБрдЯ рд╣реИрдВ рдХрд┐ рд╡реЗ рдЖрдкрдХреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ (рдПрдХ рд╣реА рдбреЗрдЯрд╛ рдкрд░) рдХрдИ рдЙрдкрдХрд░рдгреЛрдВ рд╕реЗ рдФрд░ рдХрдИ рд▓реЛрдЧреЛрдВ рд╕реЗ рдСрдлрд╝рд▓рд╛рдЗрди рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред рдЗрд╕ рддрд░рд╣ рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд╕рд╛рдордиреЗ рдЪреБрдиреМрддреА рдпрд╣ рд╣реИ рдХрд┐ рдХрдИ рдЙрдкрдХрд░рдгреЛрдВ рдкрд░ рдПрдХ рд╕рд╛рде рдмрджрд▓реЗ рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рд╕рдмрд╕реЗ "рд╕реБрдЪрд╛рд░реВ" рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рдХреИрд╕реЗ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдорд░реНрдЬ рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рднрд╛рдЧреАрджрд╛рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред

рдкрд┐рдЫрд▓реЗ рд▓реЗрдЦ рдореЗрдВ, рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рдерд╛ - рдкрд░рд┐рдЪрд╛рд▓рди рдкрд░рд┐рд╡рд░реНрддрди, рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдорд╛рди рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдлрд╛рдпрджреЗ рдФрд░ рдиреБрдХрд╕рд╛рди рджреЛрдиреЛрдВ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, JSON рдХреЗ рд▓рд┐рдП CRDT рдХрд╛ рдЕрднреА рддрдХ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрджреНрдпрддрди: рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП msvn рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдпрд╣рд╛рдБред рдпрд╣рд╛рдБ CRDT рдореЗрдВ JSON рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдПрдХ рд╢реЛрдз рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреА рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╣реИ)

2. рдордЬрдмреВрдд рдЕрдВрддрд┐рдо рд╕реНрдерд┐рд░рддрд╛


рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдмрд╣реБрдд рд╕рд╛рд░реЗ рдХрд╛рдо рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ рдФрд░ рдЕрдВрддрддрдГ рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╢реЛрдз рдХрд┐рдП рдЧрдП рд╣реИрдВред рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЕрдм рдПрдХ рдирд┐рд░рдВрддрд░рддрд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрдд рд╕реНрдерд┐рд░рддрд╛ рд╕реЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрджрд▓рд╛рд╡ рдХреА рдУрд░ рд░реБрдЭрд╛рди рд╣реИ, рдЬреЛ рдореМрдЬреВрджрд╛ рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдерд┐рддрд┐рдпреЛрдВ / рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд▓рд╛рднрджрд╛рдпрдХ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╕реНрдерд┐рд░рддрд╛ред рдпрд╣ рдХреБрдЫ рднреНрд░рдо рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬрдм рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓реЗрдЦрдХ, рд╕реНрдерд┐рд░рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдХреБрдЫ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдкрддреНрддрд┐ рдХреЗ рд╕рд╛рде рдЕрдВрддрд┐рдо рд╕реБрд╕рдВрдЧрддрддрд╛, рдФрд░ рдЕрдиреНрдп рд▓реЗрдЦрдХ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╢рдмреНрджрд╛рд╡рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

рдХрд┐рд╕реА рдПрдХ рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЙрдард╛рдпрд╛ рдЧрдпрд╛ рдкреНрд░рд╢реНрди рдЕрдВрддрддрдГ рд╕реБрд╕рдВрдЧрддрддрд╛ рдХреА рд╡рд░реНрддрдорд╛рди рдкрд░рд┐рднрд╛рд╖рд╛ рдХреА рдЖрд▓реЛрдЪрдирд╛ рдХрд░рддрд╛ рд╣реИ: рдЗрд╕рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдпрджрд┐ рдЖрдкрдХрд╛ рд╕рд┐рд╕реНрдЯрдо рд╣рдореЗрд╢рд╛ рд╕рднреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ "42" рдЬрд╡рд╛рдм рджреЗрддрд╛ рд╣реИ, рддреЛ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рдпрд╣ рдЕрдВрддрддрдГ рд╕реБрд╕рдВрдЧрдд рд╣реИред

рдЗрд╕ рд▓реЗрдЦ рдХреА рд╢реБрджреНрдзрддрд╛ рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдП рдмрд┐рдирд╛, рдореИрдВ, рдореВрд▓ рд▓реЗрдЦреЛрдВ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддреЗ рд╣реБрдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рдмреНрджрд╛рд╡рд▓реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ (рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ, рдпреЗ рд╕рдЦреНрдд рдкрд░рд┐рднрд╛рд╖рд╛ рдирд╣реАрдВ рд╣реИрдВ, рдпреЗ рдЕрдВрддрд░ рд╣реИрдВ):

  • рдордЬрдмреВрдд рд╕реНрдерд┐рд░рддрд╛ (рдПрд╕рд╕реА): рд╕рднреА рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдХрдбрд╝рд╛рдИ рд╕реЗ рдЖрджреЗрд╢ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрд┐рд╕реА рднреА рдкреНрд░рддрд┐рдХреГрддрд┐ рдкрд░ рдкрдврд╝рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рд╕рдорд╛рди, рдЕрдВрддрд┐рдо рд░рд┐рдХреЙрд░реНрдб рдХрд┐рдП рдЧрдП рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдХреА рдЖрдо рд╕рд╣рдорддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЖрдЧрд╛рдореА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде), n / 2 - 1 рдиреЛрдбреНрд╕ рдореЗрдВ рдЧрд┐рд░рд╛рд╡рдЯ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
  • рдЕрдВрддрддрдГ рд╕реНрдерд┐рд░рддрд╛ (рдИрд╕реА): рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ, рдЕрдкрдбреЗрдЯ рдХреЛ рдЖрдЧреЗ рднреЗрдЬреЗрдВред рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдкрд░ рдкрдврд╝рдиреЗ рд╕реЗ рдмрд╛рд╕реА рдбреЗрдЯрд╛ рд╡рд╛рдкрд╕ рдЖ рд╕рдХрддрд╛ рд╣реИред рд╕рдВрдШрд░реНрд╖ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдпрд╛ рддреЛ рд╡рд╛рдкрд╕ рд░реЛрд▓ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╛ рдХрд┐рд╕реА рддрд░рд╣ рддрдп рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЖрдо рд╕рд╣рдорддрд┐ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдордп рдореЗрдВ рдирд╣реАрдВ ред
  • рдордЬрдмреВрдд рдЕрдВрддрд┐рдо рд╕реНрдерд┐рд░рддрд╛ (рдПрд╕рдИрд╕реА): рдИрд╕реА + рд╕рдВрдШрд░реНрд╖реЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЖрдо рд╕рд╣рдорддрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ , рдпрд╣ n - 1 рдиреЛрдбреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдмреВрдВрдж рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ SEC (рдЬреИрд╕рд╛ рднреА рдерд╛) CAP рдкреНрд░рдореЗрдп рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ: рддреАрдиреЛрдВ рдЧреБрдг рд╕рдВрддреБрд╖реНрдЯ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП, рд╣рдо SC рдХреЛ рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ рдФрд░ рд╣рдорд╛рд░реЗ рд╕рдВрднрд╛рд╡рд┐рдд рдЕрд╕реНрдерд┐рд░ рд╡рд┐рддрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реЗрдЯ рд░рдЦрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд▓рд┐рдЦрдиреЗ рдХреЗ рд╕рдВрдШрд░реНрд╖ рдХреЛ рд╣рд▓ рдХрд░реЗрдЧрд╛ (рдХреБрдЫ рдордзреНрдпрд╕реНрде рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╣рднрд╛рдЧрд┐рддрд╛ рдпрд╛ рдЕрдиреБрд░реЛрдз рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)

3. рдкрд╕рдВрдж рдФрд░ рд╣рд┐рдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╛рд░реНрдп


рдирд┐рд╕реНрд╕рдВрджреЗрд╣, рдРрд╕реА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИрдВред CRDT рдПрдХ рдмрд╣реБрдд рд╣реА рд╕реБрдВрджрд░ рдФрд░ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

Google.com рд╣рд┐рдЯ рдЧрдгрдирд╛:


google.com рджреБрдирд┐рдпрд╛ рднрд░ рд╕реЗ рдкреНрд░рддрд┐ рд╕реЗрдХрдВрдб рд▓рдЧрднрдЧ 150,000 рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдХрд╛рдЙрдВрдЯрд░ рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд░реВрдк рд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХрддрд╛рд░реЗрдВ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддреА рд╣реИрдВ - рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╣рдо рдЗрд╕ рдореВрд▓реНрдп рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдмрд╛рд╣рд░реА рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдкрдврд╝рдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рднрдВрдбрд╛рд░ рди рдбрд╛рд▓реЗрдВред рдФрд░ рдЕрдЧрд░ рд╡рд╣рд╛рдБ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рддрд┐рдХреГрддрд┐ рд╣реИ, рд╢рд╛рдпрдж рд╡реИрд╢реНрд╡рд┐рдХ рдХрддрд╛рд░реЛрдВ рдХреЗ рдмрд┐рдирд╛?

рдЫрд╡рд┐


рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╕рдВрдж рдХреА рдЧрдгрдирд╛:


рдХрд╛рд░реНрдп рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реИ, рдХреЗрд╡рд▓ рдЕрдм рдЖрдкрдХреЛ рдЕрджреНрд╡рд┐рддреАрдп рд╣рд┐рдЯ рдЧрд┐рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

4. рд╢рдмреНрджрд╛рд╡рд▓реА


рд▓реЗрдЦ рдХреА рдЕрдзрд┐рдХ рд╕рдВрдкреВрд░реНрдг рд╕рдордЭ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рд░реНрддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛:

  1. idempotency
    рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдХрдИ рдмрд╛рд░ рдСрдкрд░реЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╕реЗ рдкрд░рд┐рдгрд╛рдо рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред
    рдЙрджрд╛рд╣рд░рдг - рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде рдСрдкрд░реЗрд╢рди рдпрд╛ рдЬреЛрдбрд╝: f(x)=x+0
  2. commutativity
    f(x,y)=f(y,x)
  3. рдЖрдВрд╢рд┐рдХ рдЖрджреЗрд╢
    рд░рд┐рдлреНрд▓реЗрдХреНрд╕рд┐рдЯрд┐ + рдЯреНрд░рд╛рдВрдЬрд╝рд┐рдЯрд┐рд╡рд┐рдЯреА + рдПрдВрдЯреАрд╕рд┐рдореЗрдЯреНрд░реА
  4. semilattice
    рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдСрд░реНрдбрд░ рдХрд┐рдП рдЧрдП рд╕рдЯреАрдХ рдКрдкрд░реА (рдирд┐рдЪрд▓реЗ) рдЪреЗрд╣рд░реЗ рдХреЗ рд╕рд╛рде
  5. рд╕рдВрд╕реНрдХрд░рдг рд╡реЗрдХреНрдЯрд░
    рдПрдХ рдЖрдпрд╛рдо рд╡реЗрдХреНрдЯрд░ рдиреЛрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдиреЛрдб, рдЬрдм рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдШрдЯрдирд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдореЗрдВ рд╡реГрджреНрдзрд┐ рд╣реЛрддреА рд╣реИред рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рджреМрд░рд╛рди, рдбреЗрдЯрд╛ рдЗрд╕ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд╕рд╛рде рдкреНрд░реЗрд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдПрдХ рдСрд░реНрдбрд░ рд░рд┐рд▓реЗрд╢рди рдкреЗрд╢ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕ рдкреНрд░рддрд┐рдХреГрддрд┐ рдореЗрдВ рдкреБрд░рд╛рдиреЗ / рдирдП рдбреЗрдЯрд╛ рд╣реИрдВред

5. рд╕рд┐рдВрдХ рдореЙрдбрд▓


рд░рд╛рдЬреНрдп рдЖрдзрд╛рд░рд┐рдд (рд╣рд╛рд▓рдд рддреБрд▓реНрдпрдХрд╛рд▓рди):


рдЗрд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рд╕рдВрдорд┐рд▓рд┐рдд рдкреНрд░рддрд┐рдХреГрддрд┐ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ - CvRDT рдмрдирд╛рддрд╛ рд╣реИред
рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдирдПрдлрдПрд╕, рдПрдПрдлрдПрд╕, рдХреЛрдбрд╛ рдФрд░ рдХреЗрд╡реА-рд╕реНрдЯреЛрд░реЗрдЬ рд░реАрдХ, рдбрд╛рдпрдирд╛рдореЛ рдЬреИрд╕реА рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рд╕реАрдзреЗ рд░рд╛рдЬреНрдпреЛрдВ рдХреЛ рдмрддрд╛рддреА рд╣реИрдВ, рдкреНрд░рд╛рдкреНрдд рдкреНрд░рддрд┐рдХреГрддрд┐ рдЕрдкрдиреЗ рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рдкреНрдд рд╕реНрдерд┐рддрд┐ рдХреЛ рдорд┐рд▓рд╛ рджреЗрддреА рд╣реИред

рдЫрд╡рд┐

рдЗрд╕ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХрд╛ рдЕрднрд┐рд╕рд░рдг рдХрд░рдирд╛, рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐:

  • рдбреЗрдЯрд╛ рдиреЗ рдПрдХ рдЕрд░реНрдзрд╡рд┐рд░рд╛рдо рдХрд╛ рдЧрдарди рдХрд┐рдпрд╛
  • рдорд░реНрдЬ рдлрд╝рдВрдХреНрд╢рди рдиреЗ рдПрдХ рд╕рдЯреАрдХ рдКрдкрд░реА рдмрд╛рдЙрдВрдб рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд┐рдпрд╛
  • рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдиреЗ рдПрдХ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдЧреНрд░рд╛рдл рдмрдирд╛рдпрд╛ред

рдПрдХ рдЙрджрд╛рд╣рд░рдг:

  • рдбреЗрдЯрд╛рд╕реЗрдЯ: рдкреНрд░рд╛рдХреГрддрд┐рдХ рд╕рдВрдЦреНрдпрд╛  mathbbN
  • рдиреНрдпреВрдирддрдо рдЖрдЗрдЯрдо: тИТ infty
  • рдорд░реНрдЬ(x,y)=рдЕрдзрд┐рдХрддрдо(x,y)

рдЗрд╕ рддрд░рд╣ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣рдореЗрдВ рдПрдХ рдХрдореНрдпреВрдЯреЗрдЯрд┐рд╡ рдФрд░ рдмреЗрдорд┐рд╕рд╛рд▓ рдорд░реНрдЬ рдлрдВрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВ рдЬреЛ рдХрд┐рд╕реА рджрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рд╕реЗрдЯ рдкрд░ рдПрдХрд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдмрдврд╝рддрд╛ рд╣реИ :

рдЫрд╡рд┐

рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рдЬрд▓реНрдж рдпрд╛ рдмрд╛рдж рдореЗрдВ рдЕрднрд┐рд╕рд░рдг рдХрд░рддреА рд╣реИрдВ рдФрд░ рдЖрдкрдХреЛ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддреА рд╣реИрдВ - рд╣рдо рдПрдХ рдирдП рд░рд╛рдЬреНрдп рдХреЗ рд╕рд╛рде рд╕рдВрджреЗрд╢ рдЦреЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрдиреНрд╣реЗрдВ рдХрдИ рдмрд╛рд░ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХрд┐рд╕реА рднреА рдХреНрд░рдо рдореЗрдВ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ ред

рдСрдкрд░реЗрд╢рди рдХреЗ рдЖрдзрд╛рд░ рдкрд░ (рддреБрд▓реНрдпрдХрд╛рд▓рди рд╕рдВрдЪрд╛рд▓рди):


рдЬрд┐рд╕реЗ рдПрдХреНрдЯрд┐рд╡ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╣ рдХрдореНрдпреВрдЯреЗрдЯрд┐рд╡ рд░реЗрдкреНрд▓рд┐рдХреЗрдЯреЗрдб рдбреЗрдЯрд╛ рдЯрд╛рдЗрдк - CmRDT рдмрдирд╛рддрд╛ рд╣реИред
рдмреЗрдК, рд░реЛрд╡рд░, рдЖрдЗрд╕рдХреНрдпреВрдм, рдЯреЗрд▓реЗрдХреНрд╕ рдЬреИрд╕реА рд╕рд╣рдХрд╛рд░реА рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рд░рд╛рдЬреНрдп рдЕрджреНрдпрддрди рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИрдВред рдбреЗрдЯрд╛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп, рдореВрд▓ рдкреНрд░рддрд┐рдХреГрддрд┐:

  • рдЙрддреНрдкрдиреНрди () рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рднрд╛рд╡рдХрд╛рд░рдХ () рд╡рд┐рдзрд┐ рдХреЛ рд╢реЗрд╖ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдкрд░ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдкреНрд░рднрд╛рд╡рдХрд╛рд░рдХ () рд╢реЗрд╖ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдВрдж рд╣реИред
  • рдПрдХ рд╕реНрдерд╛рдиреАрдп рд░рд╛рдЬреНрдп рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕рд░рджрд╛рд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛
  • рдЕрдиреНрдп рд╕рднреА рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рднрд╛рд╡рдХрд╛рд░рд┐рддрд╛ рднреЗрдЬрддрд╛ рд╣реИ

рдЫрд╡рд┐

рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреЗ рдЕрднрд┐рд╕рд░рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рд░реНрддреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

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

рдбреЗрд▓реНрдЯрд╛ рдЖрдзрд╛рд░рд┐рдд:


рд░рд╛рдЬреНрдп / рдСрдк рдЖрдзрд╛рд░рд┐рдд рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП, рдпрд╣ рдиреЛрдЯрд┐рд╕ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ рдХрд┐ рдпрджрд┐ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рдХреЗрд╡рд▓ рд░рд╛рдЬреНрдп рдХрд╛ рдПрдХ рд╣рд┐рд╕реНрд╕рд╛ рдмрджрд▓рддрд╛ рд╣реИ, рддреЛ рдЗрд╕рд╕реЗ рдкреВрд░реЗ рд░рд╛рдЬреНрдп рдХреЛ рднреЗрдЬрдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдФрд░ рдпрджрд┐ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдПрдХ рд░рд╛рдЬреНрдп рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХрд╛рдЙрдВрдЯрд░), рддреЛ рдЖрдк рдПрдХ, рдПрдХрддреНрд░рд┐рдд рдкрд░рд┐рд╡рд░реНрддрди, рдФрд░ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд╣реАрдВ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред рдмрджрд▓ рдЬрд╛рддреЗ рд╣реИрдВред

рдбреЗрд▓реНрдЯрд╛ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рджреЛрдиреЛрдВ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИ рдФрд░ рдбреЗрд▓реНрдЯрд╛-рдореНрдпреВрдЯрд░реНрд╕ рдХреЛ рдмрд╛рд╣рд░ рднреЗрдЬрддреА рд╣реИ рдЬреЛ рдирд╡реАрдирддрдо рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рддрд┐рдерд┐ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд░рд╛рдЬреНрдп рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдкрд░, рд░рд╛рдЬреНрдп рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рднреЗрдЬрдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдФрд░ рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдХреБрдЫ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбреЗрд▓реНрдЯрд╛-рдореНрдпреВрдЯрд░реНрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рд╢реЗрд╖ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реИрдВред

рдЕрдЧрд▓рд╛ рдЕрдиреБрдХреВрд▓рди рд╡рд┐рдзрд┐ op- рдЖрдзрд╛рд░рд┐рдд рд▓реЙрдЧ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рдпрджрд┐ рд╡рд┐рд▓рдВрдм рдХреА рдЕрдиреБрдорддрд┐ рд╣реИред

рдЫрд╡рд┐

рд╢реБрджреНрдз рд╕рдВрдЪрд╛рд▓рди-рдЖрдзрд╛рд░рд┐рдд:


Op- рдЖрдзрд╛рд░рд┐рдд рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдореЗрдВ opector рдмрдирд╛рдиреЗ рдореЗрдВ рджреЗрд░реА рд╣реЛрддреА рд╣реИред рдХреБрдЫ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░реНрдп рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдлрд┐рд░ рдЖрдкрдХреЛ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рдиреЗ рдФрд░ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреА рдЕрддрд┐рд░рд┐рдХреНрдд рд░рд╛рд╢рд┐ рдХреА рд▓рд╛рдЧрдд рдкрд░ рдореВрд▓ рдкрд░рд┐рд╡рд░реНрддрди рдмрд╛рд╣рд░ рднреЗрдЬрдирд╛ рд╣реЛрдЧрд╛ред

рдЫрд╡рд┐

рдорд╛рдирдХ рдЙрдкрдпреЛрдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг:


  • рдпрджрд┐ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЕрдкрдбреЗрдЯ рддреБрд░рдВрдд рднреЗрдЬрд╛ рдЬрд╛рдирд╛ рд╣реИ, рддреЛ рд░рд╛рдЬреНрдп-рдЖрдзрд╛рд░рд┐рдд рдПрдХ рдмреБрд░рд╛ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдкреВрд░реЗ рд░рд╛рдЬреНрдп рдХреЛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рд░реНрдл рдПрдХ рдЕрдкрдбреЗрдЯ рдСрдкрд░реЗрд╢рди рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдорд╣рдВрдЧрд╛ рд╣реИред рдбреЗрд▓реНрдЯрд╛-рдЖрдзрд╛рд░рд┐рдд рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЗ рдореЗрдВ, рд░рд╛рдЬреНрдп-рдЖрдзрд╛рд░рд┐рдд рдХреЗ рд╕рд╛рде рдЕрдВрддрд░ рдЫреЛрдЯрд╛ рд╣реЛрдЧрд╛ред
  • рдпрджрд┐ рдЖрдкрдХреЛ рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдмрд╛рдж рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд░рд╛рдЬреНрдп-рдЖрдзрд╛рд░рд┐рдд рдФрд░ рдбреЗрд▓реНрдЯрд╛-рдЖрдзрд╛рд░рд┐рдд рд╕рд╣реА рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред рдпрджрд┐ рдЖрдкрдХреЛ op-based рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИ, рддреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:

    1) рд╡рд┐рдлрд▓рддрд╛ рдХреЗ рдХреНрд╖рдг рд╕реЗ рд╕рднреА рдорд┐рд╕реНрдб рдСрдкрд░реЗрд╢рди рдХреЛ рд░реЛрд▓ рдХрд░реЗрдВ
    2) рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреА рдПрдХ рдкреВрд░реА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдФрд░ рдорд┐рд╕реНрдб рдСрдкрд░реЗрд╢рди рдХреЗ рд░реЛрд▓рдмреИрдХ
  • рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдСрдк-рдЖрдзрд╛рд░рд┐рдд рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЕрдкрдбреЗрдЯ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдХреЗ рдареАрдХ рдПрдХ рдмрд╛рд░ рд╡рд┐рддрд░рд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВред рдбрд┐рд▓реАрд╡рд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдЫреЛрдбрд╝реА рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдпрджрд┐ рдкреНрд░рднрд╛рд╡рдХрд╛рд░рдХ рдмреЗрдХрд╛рд░ рд╣реИред рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдкрд╣рд▓реЗ рдХреЛ рджреВрд╕рд░реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдмрд╣реБрдд рдЖрд╕рд╛рди рд╣реИред

рдУрдк-рдЖрдзрд╛рд░рд┐рдд рдФрд░ рд░рд╛рдЬреНрдп-рдЖрдзрд╛рд░рд┐рдд рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз:


рджреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдиреБрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╣рдо рд╕реАрдЖрд░рдбреАрдЯреА рдкрд░ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рддреБрд▓реНрдпрдХрд╛рд▓рди рдореЙрдбрд▓ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

6. CRDT


рем.рез рдХрд╛рдЙрдВрдЯрд░


рдПрдХ рдкреВрд░реНрдгрд╛рдВрдХ рдЬреЛ рджреЛ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ: рдЗрдВрдХ рдФрд░ рдбрд┐рдХред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, op- рдЖрдзрд╛рд░рд┐рдд рдФрд░ рд░рд╛рдЬреНрдп-рдЖрдзрд╛рд░рд┐рдд рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

Op- рдЖрдзрд╛рд░рд┐рдд рдХрд╛рдЙрдВрдЯрд░:


рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдмрд╕ рдЕрдкрдбреЗрдЯ рднреЗрдЬ рд░рд╣рд╛ рд╣реИред Inc рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг:

function generator() { return function (counter) { counter += 1 } } 

рд░рд╛рдЬреНрдп-рдЖрдзрд╛рд░рд┐рдд рдХрд╛рдЙрдВрдЯрд░:


рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрдм рдЗрддрдирд╛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдорд░реНрдЬ рдлрд╝рдВрдХреНрд╢рди рдХреИрд╕рд╛ рджрд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

рдиреАрд░рд╕ рд░реВрдк рд╕реЗ рдмрдврд╝рддрд╛ рд╣реБрдЖ рдХрд╛рдЙрдВрдЯрд░ (рд╡реГрджреНрдзрд┐ рдХреЗрд╡рд▓ рдХрд╛рдЙрдВрдЯрд░, рдЬреА-рдХрд╛рдЙрдВрдЯрд░):

рдбреЗрдЯрд╛ рдХреЛ рдиреЛрдбреНрд╕ (рд╕рдВрд╕реНрдХрд░рдг рд╡реЗрдХреНрдЯрд░) рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рдЖрдпрд╛рдо рдХреЗ рд╡реЗрдХреНрдЯрд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рдХреГрддрд┐ рдЕрдкрдиреА рдЖрдИрдбреА рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдореВрд▓реНрдп рдореЗрдВ рд╡реГрджреНрдзрд┐ рдХрд░реЗрдЧреАред

рдорд░реНрдЬ рдлрд╝рдВрдХреНрд╢рди рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдореЗрдВ рдЕрдзрд┐рдХрддрдо рд▓реЗрдЧрд╛, рдФрд░ рдЕрдВрддрд┐рдо рдорд╛рди рд╡реЗрдХреНрдЯрд░ рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХрд╛ рдпреЛрдЧ рд╣реИ

\ start {align} inc () &: V [id ()] = V [id ()] + 1 \\ рдорд╛рди () рдФрд░: \ sum_ {i = 0} ^ {n} V [i] \\ рдорд░реНрдЬ (C_1, C_2) рдФрд░: i \ рдореЗрдВ [1..n] \ _ рдкрд░рд┐рдгрд╛рдо [i] = рдЕрдзрд┐рдХрддрдо (C_1.V [i], C_2.V [i] \ рдЕрдВрдд {рд╕рдВрд░реЗрдЦрд┐рдд}


рдЖрдк рдЬреА-рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдиреАрдЪреЗ рджреЗрдЦреЗрдВ)

рдЖрд╡реЗрджрди:

  • рдХреНрд▓рд┐рдХ / рд╣рд┐рдЯ (sic!) рдХреА рдЧрд┐рдирддреА

рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рд╕рдорд░реНрдерди (рдкреАрдПрди-рдХрд╛рдЙрдВрдЯрд░) рдХреЗ рд╕рд╛рде рдХрд╛рдЙрдВрдЯрд░

рд╣рдо рджреЛ рдЬреА-рдХрд╛рдЙрдВрдЯрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ - рдПрдХ рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░рд╛ - рд╡реЗрддрди рд╡реГрджреНрдзрд┐ рдХреЗ рд▓рд┐рдП

рдЖрд╡реЗрджрди:

  • рдкреА 2 рдкреА рдиреЗрдЯрд╡рд░реНрдХ рдореЗрдВ рд▓реЙрдЧ-рдЗрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╕рдВрдЦреНрдпрд╛, рдЬреИрд╕реЗ рд╕реНрдХрд╛рдЗрдк

рдЧреИрд░-рдирдХрд╛рд░рд╛рддреНрдордХ рдХрд╛рдЙрдВрдЯрд░

рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЕрднреА рддрдХ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИред рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдЕрдкрдиреЗ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдВ, рдЪрд░реНрдЪрд╛ рдХрд░реЗрдВред

6.2 рд░рдЬрд┐рд╕реНрдЯрд░


рджреЛ рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рдореЗрдореЛрд░реА рд╕реЗрд▓ - рдЕрд╕рд╛рдЗрди (рд▓реЗрдЦрди) рдФрд░ рдореВрд▓реНрдп (рдкрдврд╝реЗрдВ)ред
рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХрдореНрдпреВрдЯреЗрдЯрд┐рд╡ рдирд╣реАрдВ рд╣реИред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВ:

рдЕрдВрддрд┐рдо-рд▓рд┐рдЦреЗрдВ-рдЬреАрдд рд░рдЬрд┐рд╕реНрдЯрд░ (LWW- рд░рдЬрд┐рд╕реНрдЯрд░):


рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рдСрдкрд░реЗрд╢рди (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк) рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рдЖрдИрдбреА рдХреА рдкреАрдврд╝реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреВрд░реНрдг рдЖрджреЗрд╢ рджрд░реНрдЬ рдХрд░рддреЗ рд╣реИрдВред

рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬреЛрдбрд╝реЗ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди (рдореВрд▓реНрдп, рдЖрдИрдбреА):


рдЖрд╡реЗрджрди:

  • рдХреИрд╕реЗрдВрдбреНрд░рд╛ рдореЗрдВ рдХреЙрд▓рдо
  • рдПрдирдПрдлрдПрд╕ - рдкреВрд░реЗ рдпрд╛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдлрд╝рд╛рдЗрд▓

рдХрдИ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рд░рдЬрд┐рд╕реНрдЯрд░ (рдорд▓реНрдЯреА-рд╡реИрд▓реНрдпреВ рд░рдЬрд┐рд╕реНрдЯрд░, рдПрдорд╡реА-рд░рдЬрд┐рд╕реНрдЯрд░):


рджреГрд╖реНрдЯрд┐рдХреЛрдг рдЬреА-рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рд╕рдорд╛рди рд╣реИ - рд╣рдо рд╕реЗрдЯ (рдореВрд▓реНрдп, рд╕рдВрд╕реНрдХрд░рдг рд╡реЗрдХреНрдЯрд░) рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рд░рдЬрд┐рд╕реНрдЯрд░ рдореВрд▓реНрдп - рд╕рднреА рдорд╛рди, рдЬрдм рд╡рд┐рд▓рдп - рдПрд▓рдбрдмреНрд▓реНрдпреВрдбрдмреНрд▓реНрдпреВ рд╡реЗрдХреНрдЯрд░ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рдореВрд▓реНрдп рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ рд╕реЗред


рдЖрд╡реЗрджрди:

  • рдЕрдореЗрдЬрд╝реЕрди рдореЗрдВ рдЯреЛрдХрд░реАред рдПрдХ рдкреНрд░рд╕рд┐рджреНрдз рдмрдЧ рдЗрд╕рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИ, рдЬрдм рдЯреЛрдХрд░реА рд╕реЗ рдПрдХ рдЖрдЗрдЯрдо рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдлрд┐рд░ рд╕реЗ рд╡рд╣рд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рддрдереНрдп рдХреЗ рдмрд╛рд╡рдЬреВрдж рдХрд┐ рд░рдЬрд┐рд╕реНрдЯрд░ рдореВрд▓реНрдпреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ (рдиреАрдЪреЗ рджреА рдЧрдИ рддрд╕реНрд╡реАрд░ рджреЗрдЦреЗрдВ)ред рд╡реИрд╕реЗ, рдЕрдореЗрдЬрд╝реЕрди рдЗрд╕ рдмрдЧ рдХреЛ рднреА рдирд╣реАрдВ рдорд╛рдирддрд╛ рд╣реИ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдпрд╣ рдмрд┐рдХреНрд░реА рдХреЛ рдмрдврд╝рд╛рддрд╛ рд╣реИред
  • Riakред рдПрдХ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ (рдиреЛрдЯ - рдХреЛрдИ рд╕рдВрдШрд░реНрд╖ рдирд╣реАрдВ рд╣реИ) рдЪреБрдирдиреЗ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдпред

рдЕрдореЗрдЬрд╝рди рдореЗрдВ рдмрдЧ рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛:



6.3 рдмрд╣реБрдд


рд╕реЗрдЯ рдХрдВрдЯреЗрдирд░, рдирдХреНрд╢реЗ рдФрд░ рдЧреНрд░рд╛рдлрд╝ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдореВрд▓ рдкреНрд░рдХрд╛рд░ рд╣реИ рдФрд░ рд╕рдВрдЪрд╛рд▓рди - рдРрдб рдФрд░ рдЖрд░рдПрдорд╡реА рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рдХрдореНрдпреВрдЯреЗрдЯрд┐рд╡ рдирд╣реАрдВ рд╣реИрдВред

рдСрдк-рдЖрдзрд╛рд░рд┐рдд рд╕реЗрдЯ рдХреЗ рдЕрдиреБрднрд╡рд╣реАрди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдРрдб рдФрд░ рдЖрд░рдПрдорд╡реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рд╡реЗ рдЖрддреЗ рд╣реИрдВ (рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ 1 рдФрд░ 2 рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рдЖрддреА рд╣реИрдВ, рдлрд┐рд░ рдЖрд░рдПрдорд╡реА 1 рдкрд░ рдЬрд╛рддрд╛ рд╣реИ)


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рдЕрдВрддрддрдГ рдЫрд┐рддрд░реА рд╣реБрдИ рд╣реИрдВред рд╕рдВрдШрд░реНрд╖-рдореБрдХреНрдд рд╕реЗрдЯреЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

рдмрдврд╝рддреЗ рд╕реЗрдЯ (рдЬреА-рд╕реЗрдЯ):


рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдЙрдкрд╛рдп рд╣реИ рдХрд┐ рдЖрдЗрдЯрдо рдХреЛ рдбрд┐рд▓реАрдЯ рд╣реЛрдиреЗ рд╕реЗ рд░реЛрдХрд╛ рдЬрд╛рдПред рдЬреЛ рдХреБрдЫ рдмрдЪрддрд╛ рд╣реИ рд╡рд╣ рдРрдб рдСрдкрд░реЗрд╢рди рд╣реИ, рдЬреЛ рдХрдореНрдпреВрдЯреЗрдЯрд┐рд╡ рд╣реИред рдорд░реНрдЬ рдлрд╝рдВрдХреНрд╢рди рд╕реЗрдЯ рдХрд╛ рд╕рдВрдШ рд╣реИред

рджреЛ рдЪрд░рдг рд╕реЗрдЯ (2P- рд╕реЗрдЯ):


рд╣рдо рдЖрдкрдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж рдлрд┐рд░ рд╕реЗ рдирд╣реАрдВ рдЬреЛрдбрд╝ рд╕рдХрддреЗред рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рджреВрд░рд╕реНрде G- рд╕реЗрдЯ рддрддреНрд╡реЛрдВ рдХрд╛ рдПрдХ рдЕрд▓рдЧ рд╕реЗрдЯ рдмрдирд╛рддреЗ рд╣реИрдВ (рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕реЗрдЯ рдХреЛ рдПрдХ рд╕рдорд╛рдзрд┐ рдХрд╛ рдкрддреНрдерд░ рд╕реЗрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ)
рд░рд╛рдЬреНрдп-рдЖрдзрд╛рд░рд┐рдд рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг:

\ start {align} рд▓реБрдХрдЕрдк (e) &: e \ _ A \ land e \ not рдореЗрдВ R \\ add (e) &: A = A \ cup \ {e \} \\ rmv (e) &: R = R \ cup \ {e \} \\ рдорд░реНрдЬ (S_1, S_2) рдФрд░: \\ Res & ult.A = S_1.A \ рдХрдк S_2.A \\ Res & ult.R = S_1.R \ cup S_2.R \ end {рд╕рдВрд░реЗрдЦрд┐рдд}


LWW- рддрддреНрд╡ рд╕реЗрдЯ:


рд╕рдВрдШрд░реНрд╖-рдореБрдХреНрдд рд╕реЗрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдЕрдЧрд▓рд╛ рддрд░реАрдХрд╛ рдПрдХ рдкреВрд░реНрдг рдЖрджреЗрд╢ рдкреЗрд╢ рдХрд░рдирд╛ рд╣реИ, рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдЙрддреНрдкрдиреНрди рдХрд░рдирд╛ рд╣реИред

рд╣рдореЗрдВ рджреЛ рд╕реЗрдЯ рдорд┐рд▓рддреЗ рд╣реИрдВ - рдРрдб-рд╕реЗрдЯ рдФрд░ рд░рд┐рдореВрд╡-рд╕реЗрдЯ, рдЬрдм рдРрдб () рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдРрдб (рдПрд▓рд┐рдореЗрдВрдЯ, рдпреВрдиреАрдХ_рдб ()), рдЬрдм рдЪреЗрдХ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╕реЗрдЯ рдореЗрдВ рдХреЛрдИ рдПрд▓рд┐рдореЗрдВрдЯ рд╣реИ - рджреЗрдЦреЛ рдЬрд╣рд╛рдВ рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк рдЕрдзрд┐рдХ рд╣реИ - рд░рд┐рдореВрд╡-рд╕реЗрдЯ рдореЗрдВ рдпрд╛ рдРрдб-рд╕реЗрдЯ рдореЗрдВ


рдкреА рдПрди-рд╕реЗрдЯ:


рд╕реЗрдЯ рдХреЗ рдЖрджреЗрд╢ рдХреЗ рд╕рд╛рде рднрд┐рдиреНрдирддрд╛ - рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрдм рд╣рдо рдЗрд╕реЗ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рд╣рдо рдЗрд╕реЗ рдмрдврд╝рд╛рддреЗ рд╣реИрдВ, рдЬрдм рд╣рдо рдЗрд╕реЗ рд╣рдЯрд╛рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕реЗ рдХрдо рдХрд░ рджреЗрддреЗ рд╣реИрдВред рдПрдХ рддрддреНрд╡ рд╕реЗрдЯ рдореЗрдВ рд╣реИ рдпрджрд┐ рдЗрд╕рдХрд╛ рдХрд╛рдЙрдВрдЯрд░ рд╕рдХрд╛рд░рд╛рддреНрдордХ рд╣реИред

рджрд┐рд▓рдЪрд╕реНрдк рдкреНрд░рднрд╛рд╡ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ - рддреАрд╕рд░реЗ рдкреНрд░рддрд┐рдХреГрддрд┐ рдореЗрдВ, рдПрдХ рддрддреНрд╡ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЗрд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред

рдЕрд╡рд▓реЛрдХрди-рдирд┐рдХрд╛рд▓реЗрдВ рд╕реЗрдЯ, OR- рд╕реЗрдЯ, рдРрдб-рд╡рд┐рди рд╕реЗрдЯ:


рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдореЗрдВ, рдРрдб рд╣рдЯрд╛рдиреЗ рдкрд░ рдкреВрд░реНрд╡рддрд╛ рд▓реЗрддрд╛ рд╣реИред рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЙрджрд╛рд╣рд░рдг: рдкреНрд░рддреНрдпреЗрдХ рдирдП рдЬреЛрдбрд╝реЗ рдЧрдП рддрддреНрд╡ рдХреЛ рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдЯреИрдЧ (рддрддреНрд╡ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖, рдФрд░ рд╕рдВрдкреВрд░реНрдг рд╕реЗрдЯ рдирд╣реАрдВ) рд╕реМрдВрдкрд╛ рдЧрдпрд╛ рд╣реИред Rmv рд╕реЗрдЯ рд╕реЗ рдПрдХ рддрддреНрд╡ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ рдФрд░ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рджреЗрдЦреЗ рдЧрдП рдЬреЛрдбрд╝реЗ (рддрддреНрд╡, рдЯреИрдЧ) рдХреЛ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдореЗрдВ рднреЗрдЬрддрд╛ рд╣реИред



рдирд┐рдХрд╛рд▓реЗрдВ-рд╕реЗрдЯ рдЬреАрдд:


рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ / rmv rmv рдЬреАрддрддрд╛ рд╣реИред

6.4 рдЧреНрд░рд╛рдл


рдпрд╣ рдкреНрд░рдХрд╛рд░ рдХрдИ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ: рдпрджрд┐ рдПрдХ рд╕рд╛рде рдСрдкрд░реЗрд╢рди рдПрдбрдЬреЗрдЬ (рдпреВ, рд╡реА) рдФрд░ рд░рд┐рдореВрд╡рд░рдЯреЗрдХреНрд╕ (рдпреВ) рд╣реИрдВ - рддреЛ рдореБрдЭреЗ рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП? рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рдХрд▓реНрдк рд╕рдВрднрд╡ рд╣реИрдВ:

  • RemoveVertex рдкреНрд░рд╛рдердорд┐рдХрддрд╛, рдЗрд╕ рд╢реАрд░реНрд╖ рдкрд░ рд╕рднреА рдХрд┐рдирд╛рд░реЛрдВ рдХреА рдШрдЯрдирд╛ рдХреЛ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
  • AddEdge рдкреНрд░рд╛рдердорд┐рдХрддрд╛, рд╣рдЯрд╛рдП рдЧрдП рдХреЛрдиреЗ рд╣рдЯрд╛рдП рдЧрдП
  • рдЬрдм рддрдХ рд╕рднреА рдПрдХ рд╕рд╛рде addEdge рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рддрдм рддрдХ рд╣рдо removeVertex рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рджреЗрд░реА рдХрд░рддреЗ рд╣реИрдВред

рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╡рд┐рдХрд▓реНрдк рдкрд╣рд▓рд╛ рд╣реИ, рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП (2P2P- рдЧреНрд░рд╛рдлрд╝) рджреЛ 2P- рд╕реЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдПрдХ рдХреЛрдиреЗ рдХреЗ рд▓рд┐рдП, рджреВрд╕рд░рд╛ рдХрд┐рдирд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП

6.5 рдорд╛рдирдЪрд┐рддреНрд░


рд╢рд╛рдмреНрджрд┐рдХ рдорд╛рдирдЪрд┐рддреНрд░:


рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЛ рд╕рдорд╕реНрдпрд╛рдПрдВ:

  • рдПрдХ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ? рдХрд╛рдЙрдВрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирддрд╛ рд╕реЗ, рдЖрдк LWW рдпрд╛ MV рд╢рдмреНрджрд╛рд░реНрде рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ
  • рдПрдХ рд╕рд╛рде рдкреБрдЯ / rmv рдХрд╛ рдХреНрдпрд╛ рдХрд░реЗрдВ? рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рд╕реЗ, рдЖрдк рдпрд╛ рддреЛ рдЬреАрдд, рдпрд╛ rmv-win, рдпрд╛ рдЕрдВрддрд┐рдо-рдкреБрдЯ-рдЬреАрдд рд╢рдмреНрджрд╛рд░реНрде рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВред

CRDT рдореИрдкрд┐рдВрдЧ (CRDT рдХрд╛ рдорд╛рдирдЪрд┐рддреНрд░):


рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдорд╛рдорд▓рд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХреЛ рдиреЗрд╕реНрдЯреЗрдб рдореИрдкрд┐рдВрдЧ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╣рдо рдиреЗрд╕реНрдЯреЗрдб рдкреНрд░рдХрд╛рд░ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдорд╛рдорд▓реЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ - рдпрд╣ рдиреЗрд╕реНрдЯреЗрдб CRDT рджреНрд╡рд╛рд░рд╛ рд╣реА рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдирд┐рдХрд╛рд▓реЗрдВ-рдХреЗ рд░реВрдк рдореЗрдВ рдкреБрдирд░рд╛рд╡рд░реНрддреА-рд░реАрд╕реЗрдЯ рдирдХреНрд╢рд╛

рдирд┐рдХрд╛рд▓реЗрдВ рдСрдкрд░реЗрд╢рди "рд░реАрд╕реЗрдЯ" рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдореВрд▓реНрдпред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХрд╛рдЙрдВрдЯрд░ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдПрдХ рд╢реВрдиреНрдп рдорд╛рди рд╣реИред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ - рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдЦрд░реАрджрд╛рд░реА рд╕реВрдЪреАред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЖрдЯрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛ рдПрдХ рдЪреЗрдХрдЖрдЙрдЯ рдХрд░рддрд╛ рд╣реИ (рдпрд╣ рд╕рднреА рддрддреНрд╡реЛрдВ рдкрд░ рдбрд┐рд▓реАрдЯ рдСрдкрд░реЗрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ)ред рдирддреАрдЬрддрди, рдЖрдЯрд╛ рдХреА рдПрдХ рдЗрдХрд╛рдИ рд╕реВрдЪреА рдореЗрдВ рдмрдиреА рд╣реБрдИ рд╣реИ, рдЬреЛ рддрд░реНрдХрд╕рдВрдЧрдд рд▓рдЧрддреА рд╣реИред


рдирд┐рдХрд╛рд▓реЗрдВ-рдЬреАрддрддрд╛ рдирдХреНрд╢рд╛

рдСрдкрд░реЗрд╢рди rmv рдкреВрд░реНрд╡рддрд╛ рд▓реЗрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг: рдПрдХ рдСрдирд▓рд╛рдЗрди рдЧреЗрдо рдореЗрдВ, рдПрдХ рдРрд▓рд┐рд╕ рдЦрд┐рд▓рд╛рдбрд╝реА рдХреЗ рдкрд╛рд╕ 10 рд╕рд┐рдХреНрдХреЗ рдФрд░ рдПрдХ рд╣рдереМрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИред рдлрд┐рд░ рдПрдХ рд╕рд╛рде рджреЛ рдШрдЯрдирд╛рдПрдВ рдШрдЯрддреА рд╣реИрдВ: рдкреНрд░рддрд┐рдХреГрддрд┐ рдП рдкрд░, рдЙрд╕рдиреЗ рдПрдХ рдХреАрд▓ рдХрд╛ рдЙрддреНрдкрд╛рджрди рдХрд┐рдпрд╛, рдФрд░ рдкреНрд░рддрд┐рдХреГрддрд┐ рдмреА рдкрд░, рдЙрд╕рдХреЗ рдЪрд░рд┐рддреНрд░ рдХреЛ рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд╕рд╛рде рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:



рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдЯрд╛рдиреЗ-рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдПрдХ рдХреАрд▓ рдЕрдВрддрддрдГ рдмрдиреА рд░рд╣реЗрдЧреА, рдЬреЛ рдЪрд░рд┐рддреНрд░ рдХреЛ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рдкрд░ рд╕рд╣реА рд╕реНрдерд┐рддрд┐ рдирд╣реАрдВ рд╣реИред

рдЕрджреНрдпрддрди-рдЬреАрддрддрд╛ рдирдХреНрд╢рд╛

рдЕрджреНрдпрддрдиреЛрдВ рдореЗрдВ рдкреВрд░реНрд╡рд╡рд░реНрддреА рд╕реНрдерд┐рддрд┐ рд╣реЛрддреА рд╣реИ, рдпрд╛ рдпреЛрдВ рдХрд╣реЗрдВ, рд╕рд╛рде-рд╕рд╛рде rmv рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд┐рдЫрд▓реЗ рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рд░рджреНрдж рдХрд░реЗрдВред

рдЙрджрд╛рд╣рд░рдг: рдПрдХ рдСрдирд▓рд╛рдЗрди рдЧреЗрдо рдореЗрдВ, рдкреНрд░рддрд┐рдХреГрддрд┐ B рдкрд░ рдРрд▓рд┐рд╕ рд╡рд░реНрдг рдирд┐рд╖реНрдХреНрд░рд┐рдпрддрд╛ рдХреЗ рдХрд╛рд░рдг рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдкреНрд░рддрд┐рдХреГрддрд┐ A рдкрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╣реЛрддреА рд╣реИред рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдбрд┐рд▓реАрдЯ рдСрдкрд░реЗрд╢рди рд░рджреНрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред


рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдкреНрд░рднрд╛рд╡ рд╣реЛрддрд╛ рд╣реИ - рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рджреЛ рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рд╣реИрдВ, рдП рдФрд░ рдмреА, рдФрд░ рд╡реЗ рдХреБрдЫ рдХреБрдВрдЬреА рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕реЗрдЯ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рддреЗ рд╣реИрдВред рдлрд┐рд░, рдпрджрд┐ A рдХреБрдВрдЬреА k рдХрд╛ рдорд╛рди рд╣рдЯрд╛рддрд╛ рд╣реИ, рдФрд░ B рд╕реЗрдЯ рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЕрдВрдд рдореЗрдВ рдкреНрд░рддрд┐рдХреГрддрд┐рдпрд╛рдВ рдХреБрдВрдЬреА k рдХреЗ рд╕рд╛рде рдПрдХ рдЦрд╛рд▓реА рд╕реЗрдЯ рдЫреЛрдбрд╝ рджреЗрдВрдЧреАред

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдПрдХ рднреЛрд▓реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ - рдЖрдк рдмрд╕ рдкрд┐рдЫрд▓реЗ рд╕рднреА рд╣рдЯрд╛рдП рдЧрдП рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреВрд░реНрд╡рд╡рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рд╕рд╛рде, рдЕрдВрддрд┐рдо рд░рд╛рдЬреНрдп рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд░рд╛рдЬреНрдп рдХреЗ рд░реВрдк рдореЗрдВ рд╣реЛрдЧрд╛, рдЬреЛ рдЧрд▓рдд рд╣реИ:


рд╕реВрдЪреА (рд╕реВрдЪреА)


рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рддрд┐рдХреГрддрд┐рдпреЛрдВ рдкрд░ рдЖрдЗрдЯрдо рд╕реВрдЪрдХрд╛рдВрдХ рд╕реНрдерд╛рдиреАрдп рд╕рдореНрдорд┐рд▓рд┐рдд / рд╣рдЯрд╛рдиреЗ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдмрд╛рдж рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛрдВрдЧреЗред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕рдВрдЪрд╛рд▓рди рдкрд░рд┐рд╡рд░реНрддрди рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдкреНрд░рд╛рдкреНрдд рдкрд░рд┐рд╡рд░реНрддрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╕рдордп, рдореВрд▓ рдкреНрд░рддрд┐рдХреГрддрд┐ рдореЗрдВ рддрддреНрд╡ рдХреЗ рд╕реВрдЪрдХрд╛рдВрдХ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

7. рд░рд┐рдЖрдХ


рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, RiD рдореЗрдВ CRDT рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

  • рдХрд╛рдЙрдВрдЯрд░: рдкреАрдПрди-рдХрд╛рдЙрдВрдЯрд░
  • рд╕реЗрдЯ: OR- рд╕реЗрдЯ
  • рдорд╛рдирдЪрд┐рддреНрд░: CRDTs рдХрд╛ рдЕрдкрдбреЗрдЯ-рд╡рд┐рди рдореИрдк
  • (рдмреБрд▓рд┐рдпрди) рдзреНрд╡рдЬ: OR-Set рдЬрд╣рд╛рдВ рдЕрдзрд┐рдХрддрдо 1 рддрддреНрд╡
  • рд░рдЬрд┐рд╕реНрдЯрд░: рдЬреЛрдбрд╝реЗ (рдореВрд▓реНрдп, рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк)

8. CRDT рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреМрди рдХрд░рддрд╛ рд╣реИ


рд╡рд┐рдХрд┐ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЕрдЪреНрдЫреЗ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВред

9. рд╕рдиреНрджрд░реНрдн


Source: https://habr.com/ru/post/hi418897/


All Articles