Главная » Просмотр файлов » Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы)

Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (1162619), страница 101

Файл №1162619 Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (Э. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы)) 101 страницаЭ. Таненбаум, М. ван Стеен - Распределённые системы (принципы и парадигмы) (1162619) страница 1012019-09-20СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 101)

NW =10. Представим, что последний кворум записи состоял из 10 серве­ров, с С по I. Все они получили новую версию файла и новый номер версии. Всепоследующие кворумы чтения из трех серверов будут содержать как минимумодного члена этого набора. Когда клиент будет просматривать номера версий, онобнаружит последнюю версию и воспользуется ей.Рисунок 6.26, б иллюстрирует конфликт двойной записи, который можетпроизойти, поскольку Nw<N/2, Так, если один из клиентов выберет набор запи­си {A,B,C,E,F,G}, а другой — {D,HyIJ,K,L}, понятно, что мы столкнемся с пробле­мами, поскольку оба обновления будут приняты, несмотря на то, что между ни­ми явно имеется конфликт.Ситуация, представленная на рис.

6.26, в, особенно интересна, потому чтозначение NR В этом случае равно единице, что делает чтение реплицируемогофайла значительно проще. Достаточно найти одну копию и пользоваться ей.Однако все имеет свою цену. За это мы платим тем, что для записи обновлений386Глава 6. Непротиворечивость и репликациянам необходимо согласие всех копий. Такая схема обычно называется ROWA(Read-One, Write-All — читаем раз, пишем все).

Имеются различные вариантыпротоколов репликации по кворуму. Хороший обзор можно найти в [213].Кворум чтения(АВI C )D1AII EFGHIIJКL 1IINR = 3.NW=10II/JNR = 7,кNW = 6LIВСD'E©GH1JКL ^NR=1.Nw=12Кворум записиaРис. 6.26. Три примера алгоритма голосования. Правильный выбор наборов чтенияи записи (а). Выбор, который может привести к конфликтам двойной записи (б).Правильный выбор, известный под названием ROWA (в)6.5.3. Протоколы согласования кэшейКэши представляют собой особый случай репликации в том смысле, что ониобычно находятся под управлением клиентов, а не серверов. Однако протоколысогласования кэшей, которые отвечают за то, чтобы содержимое кэша соответст­вовало серверным репликам, в принципе не слишком отличаются от ранее обсуж­давшихся протоколов непротиворечивости.Разработке и реализации кэшей, особенно в контексте мультипроцессорныхсистем с совместно используемой памятью, было посвящено множество работ.Многие решения базируются на аппаратной поддержке, например, на предполо­жении о возможности эффективной широковещательной рассылки или контро­ля.

В контексте распределенных систем промежуточного уровня, построенныхна базе операционных систем общего назначения, более интересны программныереализации кэшей. В этом случае для классификации протоколов кэшированияиспользуют два различных критерия [265, 296, 452].В первую очередь, решения для кэшей могут различаться по их стратегииобнаружения согласованности (coherence detection strategy), то есть по тому, когдареально обнаруживается противоречивость. В статических решениях, как пред­полагается, необходимый анализ перед исполнением проводит компилятор,определяя, какие данные из-за кэширования могут реально стать противоречи­выми. Компилятор просто вставляет инструкции, позволяющие избежать проти­воречивости. В распределенных системах, изучаемых в этой книге, обычно при­меняются динамические решения. В них рассогласования обнаруживаются вовремя исполнения.

Проверка может, например, производиться сервером, опреде­ляющим, модифицировались ли данные после кэширования.В случае распределенных баз данных протоколы на базе динамического обна­ружения могут быть далее классифицированы по тому, когда именно в ходе6.5. Протоколы непротиворечивости387транзакции происходит обнаружение противоречивости. В [151] выделяют триварианта. Первый, когда в ходе транзакции происходит доступ к элементу дан­ных и клиент нуждается в подтверждении непротиворечивости этого элементаданных с той версией, которая хранится на сервере (возможно, реплицируемом).Транзакция не может работать с кэшированной версией, пока непротиворечи­вость последней не будет подтверждена.Второй, оптимистический подход состоит в том, чтобы разрешить проведениетранзакции в ходе проверки.

В этом случае, начиная транзакцию, мы считаем,что кэшированные данные соответствуют действительности. Если позже окажет­ся, что мы ошибались, транзакция будет прервана.Третий подход заключается в том, чтобы проверять кэшированные данныетолько перед самым подтверждением транзакции. Этот подход сравним со схе­мой оптимистического управления параллельным выполнением, которая рассмат­ривалась в предыдущей главе.

В результате транзакция просто начинает работатьс кэшированными данными, надеясь на лучшее. После завершения всей обработ­ки полученные данные проверяются на непротиворечивость. Если использова­лись неактуальные данные, транзакция прерывается.Другой аспект построения протоколов согласования кэша касается страте­гии установления согласованности {coherence enforcement strategy), которая опре­деляет, как нужно согласовывать кэш с копиями, хранящимися на серверах. Са­мое простое решение — вообще запретить кэширование общих данных, а хранитьтакие данные только на серверах, поддерживающих их непротиворечивость с по­мощью одного из ранее описанных протоколов первичной копии или реплицируемой записи, а клиентам разрешить кэширование только их внутренних данных.Очевидно, что такое решение дает лишь незначительный выигрыш в производи­тельности.Если разрешить кэширование общих данных, можно предложить два подхо­да, позволяющих добиться согласованности кэшей.

В первом из них сервер примодификации элемента данных рассылает всем кэшам сообщения о рассогласо­вании. Второй состоит в простом распространении обновления. В большей частисистем кэширования используют одну из этих двух схем. Иногда в базах данныхс архитектурой клиент-сервер поддерживается автоматический выбор между рас­сылкой сообщений о рассогласовании и распространением обновлений [151].И, наконец, нам следует рассмотреть, что происходит, когда процесс модргфицирует кэшированные данные.

Для кэшей, ориентированных только на чтение,операции обновления данных могут выполняться исключительно серверами, чтотребует использования тех или иных распределенных протоколов, обеспечиваю­щих распространение обновлений на кэши. Нередко для этого применяют опи­санный выше подход, основанный на извлечении данных. В этом случае, когдаклиент обнаруживает, что его кэш устарел, он запрашивает на сервере обновле­ние.Альтернативный подход состоит в том, чтобы позволить клиенту непосредст­венно модифицировать кэшированные данные и передать обновления на серверы.Такой подход требует кэшей сквозной записи {write-through caches), часто приме­няемых в распределенных файловых системах. В действительности кэширова-388Глава 6.

Непротиворечивость и репликацияние со сквозной записью похоже на протокол локальной записи на базе первич­ной копии, в котором клиентский кэш выступает в роли временного первичногосервера. Для гарантии непротиворечивости (последовательной) необходимо, что­бы клиент имел исключительные права на запись, в противном случае возможныконфликты двойной записи.Кэши сквозной записи потенциально дают максимальный выигрыш в произво­дительности по сравнению со всеми остальными схемами, поскольку все опера­ции выполняются локально. Еще одно усовершенствование, которое мы можемсделать, — притормозить распространение обновлений, допуская совершение в про­межутках между сеансами связи с сервером нескольких операций записи.

Этоприведет нас к так называемому кэшу обратной записи (write-back cache), кото­рый также широко применяется в распределенных файловых системах.6.6. ПримерыНепротиворечивость и репликация находят применение во множестве распреде­ленных систем. В этом разделе мы поближе рассмотрим два очень разных примерареализации непротиворечивости и репликации. Сначала мы обсудим распреде­ленную объектно-ориентированную систему под названием Огса, которая объе­диняет модель строгой непротиворечивости с физически распределенными объ­ектами, пользователь же, работая с ней, остается в полном неведении о том факте,что объекты распределены и реплицируются.

Таким образом, Огса обладает вы­соким уровнем прозрачности.Нашим вторым примером станет распределенная база данных, реплики кото­рой обладают причинной непротиворечивостью. Этот пример показателен помножеству причин. Во-первых, он показывает, что распространение обновленийи непротиворечивость действительно можно реализовать более или менее неза­висимо друг от друга.

Во-вторых, он иллюстрирует эффективную реализациюпричинной непротиворечивости при помощи векторных отметок времени. В-треть­их, использование векторных отметок времени в этом примере вплотную подво­дит нас к тем аспектам реализации виртуальных синхронных систем, которыемы будем рассматривать в следующей главе.6 . 6 .

1 . ОгсаОгса — это программная система, которая позволяет процессам с различных ма­шин иметь управляемый доступ к совместно используемой распределенной па­мяти, содержащей защищенные объекты [28, 30]. Система Огса состоит из языкапрограммирования Огса, компилятора и исполняющей системы, которая собст­венно и управляет распределенными объектами в ходе выполнения. Хотя язык,компилятор и исполняющая система разрабатывались для совместной работы,исполняющая система независима от компилятора и может использоваться сдругими языками [51, 53]. После знакомства с языком Огса мы .рассмотрим, какисполняющая система реализует совместно используемые объекты, которые мо­гут быть физически разнесены по множеству машин.6.6.

Примеры389Язык программирования Огсав некоторых отношениях Огса — это традиционный язык программирования, по­следовательные инструкции которого несколько напоминают нам язык Modula-2.Однако это язык с защитой типов, без указателей и без псевдонимов. Границымассивов проверяются во время исполнения программы (кроме той проверки, ко­торая может производиться в ходе компиляции).

Характеристики

Список файлов книги

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6532
Авторов
на СтудИзбе
301
Средний доход
с одного платного файла
Обучение Подробнее