
8 Содержание
4.4.
Итоги 270
Вопросы и задания 271
Глава 5. Синхронизация 274
5.1.
Синхронизация часов 275
5.1.1.
Физические часы 276
5.1.2. Алгоритмы синхронизации часов 280
5.1.3. Использование синхронизированных часов 284
5.2. Логические часы 285
5.2.1.
Отметки времени Лампорта 286
5.2.2. Векторные отметки времени 290
5.3. Глобальное состояние 292
5.4. Алгоритмы голосования 296
5.4.1.
Алгоритм забияки 296
5.4.2. Кольцевой алгоритм 298
5.5. Взаимное исключение 299
5.5.1.
Централизованный алгоритм 299
5.5.2. Распределенный алгоритм 300
5.5.3. Алгоритм маркерного кольца 303
5.5.4. Сравнение трех алгоритмов 304
5.6. Распределенные транзакции 305
5.6.1.
Модель транзакций 306
5.6.2. Классификация транзакций 309
5.6.3. Реализация 312
5.6.4. Управление параллельным выполнением транзакций 315
5.7. Итоги 324
Вопросы и задания 325
Глава 6. Непротиворечивость и репликация 328
6.1.
Обзор 329
6.1.1.
Доводы в пользу репликации 329
6.1.2. Репликация объектов 331
6.1.3. Репликация как метод масштабирования 333
6.2. Модели непротиворечивости, ориентированные
на
данные 335
6.2.1.
Строгая непротиворечивость 336
6.2.2. Линеаризуемость и последовательная непротиворечивость 338
6.2.3. Причинная непротиворечивость 343
6.2.4. Непротиворечивость FIFO 344
6.2.5. Слабая непротиворечивость 346
6.2.6. Свободная непротиворечивость 348
6.2.7. Поэлементная непротиворечивость 351
6.2.8. Сравнение моделей непротиворечивости 353
6.3. Модели непротиворечивости, ориентированные на клиента 355
6.3.1.
Потенциальная непротиворечивость 356
6.3.2. Монотонное чтение 358
6.3.3. Монотонная запись 359
6.3.4. Чтение собственных записей 361
6.3.5. Запись за чтением 362
6.3.6. Реализация 363
6.4. Протоколы распределения 365
6.4.1.
Размещение реплик 366
6.4.2. Распространение обновлений 370
6.4.3. Эпидемические протоколы 374