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