Принципы построения и работы баз данных Тема 02: Технические средства и их характеристики
Основные вопросы Оборудование: Дисковая память Время доступа Пример - Megatron 747 Оптимизация Другие вопросы: Стоимость памяти Использование вторичной памяти Сбои дисков
Перемещение головок (время поиска)
Среднее время поиска
Задержка вращения
Средняя задержка вращения
Дополнительная сложность
Скорость передачи: t “типичное” t: 60 100 MB/сек время передачи: размер блока t
Другие задержки ожидание доступности процессора для выдачи команды I/O ожидание доступности контроллера ожидание доступности шины, памяти
До сих пор речь шла о произвольном (случайном) доступе До сих пор речь шла о произвольном (случайном) доступе Что изменится при чтении “следующего” блока?
При эффективной организации I/O (двойной буферизации и других приемах) Время получения = размер блока + пренебрежимо блока t малое время - пропустить промежуток - перейти на другую дорожку цилиндра - время от времени перейти на следующий цилиндр
Главное Произвольный (случайный) доступ правило гораздо медленнее последовательного Пример: 1 KB Block случайный I/O: 10 мсек. последовательный I/O: 0.5 мсек.
Время записи то же, что и время чтения
Адрес блока: Номер устройства Номер цилиндра Номер поверхности Номер сектора
Осложнения: дефектные блоки
Пример Диаметр 3.5 дюйма 3600 об/мин 1 поверхность 16 MB полезная емкость (16 X 220) 128 цилиндров Время поиска: среднее = 25 мсек. соседний цилиндр = 5 мсек.
Размер сектора = 1 KB = 1 блок Размер сектора = 1 KB = 1 блок 10% дорожки составляют межблочные промежутки емкость = 16 MB = (220)16 = 224 число цилиндров = 128 = 27 байт/цил. = 224/27 = 217 = 128 KB блок/ цил. = 128 KB / 1 KB = 128
3600 об/мин 60 оборотов / сек 1 об. = 16.66 ms Дорожка:
T1 = Время чтения случайного блока T1 = поиск + задержка вращения + передача блока
Допустим, что ОС работает с блоками размером 4 KB T4 = 25 + (16.66/2) + (.117) x 1 + (.130) X 3 = 33.83 мсек [Сравните с T1 = 33.45 ms]
TT = Время чтения всей дорожки TT = Время чтения всей дорожки (начиная с любого блока) TT = 25 + (0.130/2) + 16.66* = 41.73 ms попасть на начало первого блока * На самом деле несколько меньше; не нужно читать последний промежуток
Новый Megatron 747 (Пример 11.3) 24 = 16 поверхностей, 3.5 дюйма диаметр используется только внешний 1 дюйм 214 = 16384 дорожек/поверхность 27 = 128 (в среднем) секторов/дорожку 212 = 4096 байт/сектор 237 = 128GB – общая емкость 219 = 512KB – емкость 1 дорожки если все дорожки по 128 секторов, то плотность самой внешней дорожки ~ 420000 бит/дюйм плотность самой внутр. дорожки ~ 990000 бит/дюйм Если число секторов увел. с 96 (на внутр.) до 160 (на внеш.), то плотность вырастет с 530000 до 742000 бит/дюйм Скорость вращения – 7200 об/мин
Временные характеристики нового Megatron 747 (Пример 11.5) Допустим, что для разгона и остановки блока головок требуется 1 мсек плюс 1 мсек на движение на 1000 цилиндров(в ту или другую сторону) Максим. время поиска 1+16.383 = 17.383 мсек Время полного оборота = 60/7200 = 0.00833 сек Угл. радиус 16384-байт блока 36*3/128+324*4/128 = 10.97 Время чтения 16384-байт блока: Мин.: 10.97/360*8.33 = 0.25 мсек (без задержки вращ.) Мах: 17.38+8.33+0.25 = 25.96 мсек Среднее: 1+ 5.641+4.17+0.25 = 10.88 мсек (5641 – среднее кол-во цилиндров между 2 случайными)
Способы оптимизации (контроллер,ОС) Алгоритмы упорядочения Например, алгоритм «лифта» Использование буфера размера дорожки диска (или более) Предварительное чтение блока (до запроса) Дисковые массивы Зеркальные диски
Двойная буферизация Задача: Имеется файл Последовательность блоков B1, B2,... Программа Обработать B1 Обработать B2 Обработать B3
Использование одного буфера (1) Читать B1 Буфер (2) Обработать данные в буфере (3) Читать B2 Буфер (4) Обработать данные в буфере ...
Двойная буферизация Память: Диск:
Пусть P R Каково время обработки?
Выбор размера блока Большой блок уменьшает относительную стоимость I/O
Стоимость памяти
Стоимость памяти
Эффективное использование вторичной памяти (Раздел 11.4) Пример: внешняя сортировка Зоключение: Стоимость I/O доминирует Необходимость розработки алгоритмов по-возможности уменьшающих I/O Каков должен быть размер блоков?
Сбои дисков (Раздел 11.6) Частичные Полные Временные Постоянные
На каком уровне можно бороться со сбоями дисков? Отдельный диск Используя коды, корректирующие ошибки Дисковые массивы
Уровень ОС, дублирование данных Логический блок Копия A Копия B
Системы баз данных Например, Файл протокола Текущая БД Недельная копия БД
Вторичная память, в основном, дисковая Вторичная память, в основном, дисковая Характеристики (время) I/O Операций I/O, по-возможности, лучше избегать, особенно случайных (запросы к отдельным случайным блокам в файле или БД).