Нұсқа векторы - Version vector

A нұсқа векторы а-дағы деректердің өзгеруін қадағалау механизмі болып табылады таратылған жүйе, онда бірнеше агенттер деректерді әр уақытта жаңарта алады. Нұсқа векторы қатысушыларға бір жаңартудың екіншісінің алдында болғанын анықтауға мүмкіндік береді (бұрын болған ), егер оны екі жаңарту қатар жүрсе (сондықтан бір-біріне қайшы келуі мүмкін болса), оны ұстанды. Осылайша, нұсқа векторлары қосылады себептілік деректердің көшірмелері арасында бақылау және бұл үшін негізгі механизм болып табылады оптимистік реплика. Математикалық тілде версия векторы а түзеді алдын ала берілетін тапсырыс ол кейінірек болатын жаңартулардың алдындағы оқиғаларды бақылайды, сондықтан әсер етуі мүмкін.

Нұсқа векторлары a күйіндегідей күйді сақтайды векторлық сағат, бірақ жаңарту ережелері аздап ерекшеленеді; осы мысалда репликалар жергілікті жаңартуларға ұшырауы мүмкін (мысалы, пайдаланушы жергілікті түйінде файлды өңдейді) немесе басқа репликамен синхрондауы мүмкін:

  • Бастапқыда барлық векторлық есептегіштер нөлге тең.
  • Реплика жергілікті жаңарту оқиғасын бастан кешірген сайын, вектордағы өзінің есептегішін бір-бірлеп арттырады.
  • Әр жолы екі реплика а және б синхрондау, екеуі де вектордың көшірмесіндегі элементтерді екі есептегіште де элементтің максимумына дейін орнатады: . Синхрондаудан кейін екі реплика бірдей нұсқа векторларына ие.

Репликалардың жұптары, а, б, олардың нұсқаларының векторларын тексеру арқылы салыстыруға болады және олардың біреуіне тең: бірдей (), бір уақытта () немесе тапсырыс берілген ( немесе ). Реттелген қатынас мынандай анықталады: Векторлық егер әр элементтің болса ғана оның сәйкес элементінен кіші немесе оған тең , және элементтердің кем дегенде біреуі қатаң аз. Егер жоқ болса немесе , бірақ векторлары бірдей емес, содан кейін екі вектор параллель болуы керек.

Нұсқа векторлары[1] немесе нұсқалар көптеген таратылған файлдық жүйелердегі жаңартуларды бақылау үшін қолданылады, мысалы Coda (файлдық жүйе) және Ficus, және оптимистік репликацияның негізгі құрылымы болып табылады.[2]

Басқа механизмдер

  • Хэш тарихы [3] әр жаңартылған нұсқадағы хэштер жиынтығын сақтау және жиынтықты қосу арқылы осы жиынтықтарды салыстыру арқылы есептегіштерді пайдаланудан аулақ болыңыз. Алайда бұл механизм тек ықтимал кепілдік бере алады.
  • Қысқаша нұсқа векторлары [4] файл жүйелеріндегі каталог құрылымындағы сияқты бірнеше қайталанатын элементтермен жұмыс істеу кезінде орынды үнемдеуге мүмкіндік береді.
  • Нұсқа маркалары [5] репликалардың айнымалы санын бақылауға мүмкіндік беріңіз және есептегіштерге жүгінбеңіз. Бұл механизм кейбір параметрлердегі масштабталуға қатысты мәселелерді бейнелеуі мүмкін, бірақ олардың орнын интервалдық ағаш сағаттарымен ауыстыруға болады.
  • Интервалды ағаш сағаттары[6] нұсқа векторларын және векторлық сағаттарды қорыту және репликалардың / процестердің динамикалық сандарына мүмкіндік беру.
  • Шектелген нұсқа векторлары [7] реплика жұптарын атомдық синхронизациялауға болатын болса, шектелген өлшемді санауыштармен шектелген іске асыруға мүмкіндік береді.
  • Нүктелік векторлар [8] бір мезгілде клиенттердің көптігі репликаға қол жеткізуге мүмкіндік беретін серверлердің шағын жиынтығымен мекен-жайдың масштабталуы.

Әдебиеттер тізімі

  1. ^ Дуглас Паркер, Джеральд Попек, Жерар Рудисин, Аллен Стуттон, Брюс Уокер, Эвелин Уолтон, Джоханна Чоу, Дэвид Эдвардс, Стивен Кисер және Чарльз Клайн. Таратылған жүйелердегі өзара сәйкессіздікті анықтау. Бағдарламалық жасақтама бойынша транзакциялар. 1983 ж
  2. ^ Дэвид Ратнер, Питер Рейхер және Джеральд Попек. Динамикалық нұсқаға векторлық қызмет көрсету. Техникалық есеп CSD-970022, Калифорния университетінің компьютерлік ғылымдар бөлімі, Лос-Анджелес, 1997 ж
  3. ^ ByungHoon Kang, Роберт Виленский және Джон Кубиатович. Хеш тарихындағы өзара келіспеушіліктерді реттеу тәсілі. ICDCS, 670-677 бет, IEEE Computer Society, 2003.
  4. ^ Далия Малхи және Даг Терри. WinFS-тегі қысқаша нұсқа векторлары. Таратылған есептеулер, т. 20, 2007 ж.
  5. ^ Пауло Альмейда, Карлос Бакуеро және Виктор Фонте. Нұсқа маркалары: орталықтандырылмаған нұсқа векторлары. ICDCS, 544-551 б., 2002 ж.
  6. ^ Пауло Альмейда, Карлос Бакуеро және Виктор Фонте. Интервалды ағаш сағаттары. ОПОДИС, Информатикадағы дәрістер, Т. 5401, 259-274 б., Springer, 2008.
  7. ^ Хосе Альмейда, Паулу Альмейда және Карлос Бакуэро. Шектелген нұсқа векторлары. DISC: Таратылған есептеу бойынша халықаралық симпозиум, LNCS, 2004 ж.
  8. ^ Нуно Прегуйса, Карлос Бакуеро, Паулу Альмейда, Виктор Фонте және Рикардо Гончалвес. Қысқаша хабарландыру: Нүктелік векторлары бар таратылған сақтау жүйелеріндегі тиімділікті қадағалау. ACM PODC, 335-336 бет, 2012 ж.

Сыртқы сілтемелер