Слайд 2
Принципы построения БД
Тема 2
Основные вопросы
Оборудование: Дисковая память
Время доступа
Пример - Megatron 747
Оптимизация
Другие вопросы:
Стоимость
памяти
Использование вторичной памяти
Сбои дисков
Слайд 3
Принципы построения БД
Тема 2
Оборудование
СУБД
Хранилище данных
Слайд 4
Принципы построения БД
Тема 2
P
M
C
Типичный
компьютер
Вторичная
память
...
...
Слайд 5
Принципы построения БД
Тема 2
Процессор
Быстрый, медленный, RISC/CISC,
со встроенным кэшем,
конвейерный,...
Speed: 100 → 500 → 1000 MIPS
Ореративная память
Быстрая, медленная,
энергонезависимая,
только для чтения (ROM),...
Время доступа: 10-6 → 10-9 sec.
1 μs → 1 ns
Слайд 6
Принципы построения БД
Тема 2
Вторичная память
Несколько видов:
- Диск:
Сменные (жесткие, мягкие)
Сменные пакеты
Обычные жесткие
диски с
произвольным доступом
Оптические, CD-ROМ
Дисковые массивы
- Ленты: катушечные, кассетные
- Роботизированные хранилища
Слайд 7
Принципы построения БД
Тема 2
Основное внимание: “Типичный диск”
Термины: поверхность,
головка,
цилиндр, дорожка,
сектор (физический),
блок (логический), промежуток,
…
Слайд 8
Принципы построения БД
Тема 2
Вид сверху
Слайд 9
Принципы построения БД
Тема 2
“Tипичные” значения
Диаметр:
1 дюйм → 15 дюймов
Цилиндров: 100 → 2000
Поверхностей: 1 (CDs) →
(дор./цил.) 2 (флоппи) → 30
Размер сектора: 512B → 50K
Общая емкость: 360 KB (флоппи)
→ 120 GB
Слайд 10
Принципы построения БД
Тема 2
Время доступа
Блок Х в
оп.памяти
?
Запрос
на
блок X
Слайд 11
Принципы построения БД
Тема 2
Время = перемещение головок +
задержка вращения
+
передача блока +
другое
Слайд 12
Принципы построения БД
Тема 2
Перемещение головок (время поиска)
3 or
5x
x
1
N
Кол-во цилиндров
Время
Слайд 13
Принципы построения БД
Тема 2
Среднее время поиска
∑
∑ SEEKTIME (i → j)
S =
N(N-1)
N
N
i=1
j=1
j≠i
“Tипичное” S: 5 мсек → 20 мсек
Слайд 14
Принципы построения БД
Тема 2
Задержка вращения
Головка здесь
Нужный блок
Слайд 15
Принципы построения БД
Тема 2
Средняя задержка вращения
R = 1/2
оборота диска
“типичное” R = 4.167 мсек (7200 об/мин)
Слайд 16
Принципы построения БД
Тема 2
Дополнительная сложность
необходимо определить начало
дорожки
прежде, чем можно читать нужный блок
Головка здесь
Нужный блок
Начало дорожки
Слайд 17
Принципы построения БД
Тема 2
Скорость передачи: t
“типичное” t: 60
→ 100 MB/сек
время передачи: размер блока
t
Слайд 18
Принципы построения БД
Тема 2
Другие задержки
ожидание доступности процессора для
выдачи команды I/O
ожидание доступности контроллера
ожидание доступности шины, памяти
“Tипичные” значения
: 0
Слайд 19
Принципы построения БД
Тема 2
До сих пор речь шла
о произвольном (случайном) доступе
Что изменится при чтении “следующего” блока?
Слайд 20
Принципы построения БД
Тема 2
При эффективной организации I/O
(двойной буферизации
и других приемах)
Время получения = размер блока + пренебрежимо
блока t малое время
- пропустить промежуток
- перейти на другую дорожку цилиндра
- время от времени перейти на
следующий цилиндр
Слайд 21
Принципы построения БД
Тема 2
Главное Произвольный (случайный) доступ
правило гораздо медленнее последовательного
Пример: 1 KB Block
случайный I/O:
~ 10 мсек.
последовательный I/O: ~ 0.5 мсек.
Слайд 22
Принципы построения БД
Тема 2
Время записи то же, что
и время
чтения
За исключением записи с проверкой!
надо добавить (полный) оборот +
размер блока
t
Слайд 24
Принципы построения БД
Тема 2
Адрес блока:
Номер устройства
Номер цилиндра
Номер поверхности
Номер
сектора
Слайд 25
Принципы построения БД
Тема 2
Сложно обрабатывать
Может программно
отображаться
на последовательность целых чисел
1
2
. Отобра-
Действительные
жение адреса
.
m
Осложнения: дефектные блоки
Слайд 26
Принципы построения БД
Тема 2
Диаметр 3.5 дюйма
3600 об/мин
1
поверхность
16 MB полезная емкость (16 X 220)
128 цилиндров
Время поиска:
среднее = 25 мсек.
соседний цилиндр = 5 мсек.
Пример
Megatron 747 диск (устаревший)
Слайд 27
Принципы построения БД
Тема 2
Размер сектора = 1 KB
= 1 блок
10% дорожки составляют межблочные промежутки
емкость = 16
MB = (220)16 = 224
число цилиндров = 128 = 27
байт/цил. = 224/27 = 217 = 128 KB
блок/ цил. = 128 KB / 1 KB = 128
Слайд 28
Принципы построения БД
Тема 2
3600 об/мин 60
оборотов / сек
1 об. = 16.66 ms
Дорожка:
...
Время
над полезными данными: (16.66)(0.9) = 15 мсек.
Время над промежутками: (16.66)(0.1) = 1.66 мсек.
Время передачи 1 блока = 15/128 = 0.117 мсек.
Время перед.1 блока+промеж. = 16.66/128 = 0.13мсек.
Макс.скорость передачи = 1/0.117 = 8.53 блок/мсек =
8.53*1KB*1000мсек/сек*1MB/1024KB = 8.33MB/сек
Реальная скорость передачи (дорожки – 128KB за 16.66 мсек) = 128/16.66 = 7.68 KB/мсек = 7.5MB/сек
Слайд 29
Принципы построения БД
Тема 2
T1 = Время чтения случайного
блока
T1 = поиск + задержка вращения + передача блока
Слайд 30
Принципы построения БД
Тема 2
Допустим, что ОС работает с
блоками размером 4 KB
T4 = 25 + (16.66/2)
+ (.117) x 1
+ (.130) X 3 = 33.83 мсек
[Сравните с T1 = 33.45 ms]
...
1
2
3
4
1 блок
Слайд 31
Принципы построения БД
Тема 2
TT = Время чтения всей
дорожки
(начиная с любого блока)
TT
= 25 + (0.130/2) + 16.66* = 41.73 ms
попасть на начало первого блока
* На самом деле несколько меньше; не нужно читать последний промежуток
Слайд 32
Принципы построения БД
Тема 2
Новый 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 об/мин
Слайд 33
Принципы построения БД
Тема 2
Временные характеристики нового 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 случайными)
Слайд 34
Принципы построения БД
Тема 2
Способы оптимизации (контроллер,ОС)
Алгоритмы упорядочения
Например, алгоритм
«лифта»
Использование буфера размера дорожки диска (или более)
Предварительное чтение блока
(до запроса)
Дисковые массивы
Зеркальные диски
Слайд 35
Принципы построения БД
Тема 2
Двойная буферизация
Задача: Имеется файл
Последовательность
блоков B1, B2,...
Программа
Обработать B1
Обработать B2
Обработать B3
Слайд 36
Принципы построения БД
Тема 2
Использование одного буфера
(1) Читать B1
→ Буфер
(2) Обработать данные в буфере
(3) Читать B2
→ Буфер
(4) Обработать данные в буфере
...
Пусть P = время обработки 1 блока
R = время чтения 1 блока
n = кол-во блоков в файле
Время обработки с одним буфером = n(P+R)
Слайд 37
Принципы построения БД
Тема 2
Двойная буферизация
Память:
Диск:
Слайд 38
Принципы построения БД
Тема 2
Пусть P ≥ R
Каково
время обработки?
P = время обработки 1 блока
R = время
чтения 1 блока
n = кол-во блоков в файле
Время обработки с 2 буферами = n(P+R)
Время обработки с 1 буфером = n(P+R)
Слайд 39
Принципы построения БД
Тема 2
Выбор размера блока
Большой блок →
уменьшает относительную стоимость I/O
Большой блок ⇒ приходится читать
много бесполезной информации, больше затраты на чтение
Тенденция – по мере удешевления памяти размер блоков увеличивается
К сожалению ...
Слайд 40
Принципы построения БД
Тема 2
Стоимость памяти
10-9
10-6
10-3
10-0
103
Время доступа(сек)
1015
1013
1011
109
107
105
103
кэш
оперативная
память
вторичная
память
магнитные
оптические
диски
online
ленты
Опти-
ческие
диски
offline
ленты
Типичная емкомть(байт)
согласно Gray
& Reuter
Слайд 41
Принципы построения БД
Тема 2
Стоимость памяти
10-9
10-6
10-3
10-0
103
Время доступа(сек)
104
102
100
10-2
10-4
кэш
оперативная
память
вторичная
память
магнитные
оптические
диски
online
ленты
Опти-
ческие
диски
offline
ленты
долларов/MB
согласно Gray &
Reuter
Слайд 42
Принципы построения БД
Тема 2
Эффективное использование вторичной памяти (Раздел
11.4)
Пример: внешняя сортировка
Зоключение:
Стоимость I/O доминирует
Необходимость розработки алгоритмов по-возможности
уменьшающих I/O
Каков должен быть размер блоков?
Слайд 43
Принципы построения БД
Тема 2
Сбои дисков (Раздел 11.6)
Частичные
→ Полные
Временные → Постоянные
Что делать в таких
случаях?
Детектирование
Например, используя контрольные суммы
Коррекция
Использование избыточности
Слайд 44
Принципы построения БД
Тема 2
На каком уровне можно бороться
со сбоями дисков?
Отдельный диск
Используя коды, корректирующие ошибки
Дисковые массивы
Логический диск
Физические
диски
Слайд 45
Принципы построения БД
Тема 2
Уровень ОС, дублирование данных
Логический блок
Копия A Копия B
Слайд 46
Принципы построения БД
Тема 2
Системы баз данных
Например,
Файл протокола
Текущая БД
Недельная
копия БД