SlideShare a Scribd company logo
1 of 47
Принципы построения и работы
        баз данных

    Тема 02: Технические
средства и их характеристики



Принципы построения 2
               Тема БД   1
Основные вопросы
 • Оборудование: Дисковая память
 • Время доступа
 • Пример - Megatron 747
 • Оптимизация
 • Другие вопросы:
    – Стоимость памяти
    – Использование вторичной памяти
    – Сбои дисков




Принципы построения 2
               Тема БД            2
Оборудование


                СУБ
                 Д
         Хранилище данных




Принципы построения 2
               Тема БД      3
P                         Типичный
                               компьютер

...                      ...
          M        C

                                Вторичная
                                 память




Принципы построения 2
               Тема БД          4
Процессор
      Быстрый, медленный, RISC/CISC,
      со встроенным кэшем, конвейерный,...
      Speed: 100 → 500 → 1000 MIPS



Ореративная память
     Быстрая, медленная, энергонезависимая,
     только для чтения (ROM),...
     Время доступа: 10-6 → 10-9 sec.
                    1 µs → 1 ns



Принципы построения 2
               Тема БД               5
Вторичная память
       Несколько видов:
       - Диск: Сменные (жесткие, мягкие)
               Сменные пакеты
               Обычные жесткие диски с
                 произвольным доступом
               Оптические, CD-ROМ
               Дисковые массивы
       - Ленты: катушечные, кассетные
       - Роботизированные хранилища




Принципы построения 2
               Тема БД               6
Основное внимание: “Типичный диск”




                            …
Термины:   поверхность, головка,
           цилиндр, дорожка,
           сектор (физический),
           блок (логический), промежуток,


Принципы построения 2
               Тема БД               7
Вид сверху




Принципы построения 2
               Тема БД   8
“Tипичные” значения
 Диаметр: 1 дюйм → 15 дюймов
 Цилиндров: 100 → 2000
 Поверхностей: 1 (CDs) →
    (дор./цил.) 2 (флоппи) → 30
 Размер сектора: 512B → 50K
 Общая емкость: 360 KB (флоппи)
                → 120 GB


Принципы построения 2
               Тема БД   9
Время доступа


Запрос                   Блок Х в
на блок X                оп.памяти


                    ?



Принципы построения 2
               Тема БД    10
Время = перемещение головок +
          задержка вращения +
          передача блока +
          другое




Принципы построения 2
               Тема БД   11
Перемещение головок (время поиска)


     3 or 5x


  Время


           x


               1                   N

                         Кол-во цилиндров


Принципы построения 2
               Тема БД             12
Среднее время поиска
                N        N

                ∑ ∑
                i=1 j=1
                                SEEKTIME (i → j)
                         j≠i
        S=
                               N(N-1)

“Tипичное” S: 5 мсек → 20 мсек
Принципы построения 2
               Тема БД                  13
Задержка вращения




Головка здесь


                         Нужный блок



Принципы построения 2
               Тема БД            14
Средняя задержка вращения

     R = 1/2 оборота диска

     “типичное” R = 4.167 мсек (7200 об/мин)




Принципы построения 2
               Тема БД            15
Дополнительная сложность
• необходимо определить начало дорожки
прежде, чем можно читать нужный блок

                                  Начало дорожки




Головка здесь


                         Нужный блок


Принципы построения 2
               Тема БД             16
Скорость передачи: t

• “типичное” t: 60 → 100 MB/сек
• время передачи: размер блока
                         t




Принципы построения 2
               Тема БД   17
Другие задержки

• ожидание доступности процессора
  для выдачи команды I/O
• ожидание доступности контроллера
• ожидание доступности шины, памяти

“Tипичные” значения : 0


Принципы построения 2
               Тема БД     18
• До сих пор речь шла о произвольном
  (случайном) доступе
• Что изменится при чтении
  “следующего” блока?




Принципы построения 2
               Тема БД      19
При эффективной организации I/O
(двойной буферизации и других приемах)


Время получения = размер блока + пренебрежимо
   блока                 t           малое время




           - пропустить промежуток
           - перейти на другую дорожку цилиндра
           - время от времени перейти на
             следующий цилиндр

Принципы построения 2
               Тема БД                 20
Главное      Произвольный (случайный) доступ
правило      гораздо медленнее последовательного


• Пример:       1 KB Block
          » случайный I/O: ∼ 10 мсек.
          » последовательный I/O: ∼ 0.5 мсек.




Принципы построения 2
               Тема БД               21
Время записи то же, что и время
  чтения

За исключением записи с проверкой!
надо добавить (полный) оборот +
  размер блока
       t



Принципы построения 2
               Тема БД   22
Для модификации блока:
  (a) прочитать блок
  (b) модифицировать в памяти
  (c) записать блок
  [(d) проверить?]




Принципы построения 2
               Тема БД      23
Адрес блока:

•   Номер устройства
•   Номер цилиндра
•   Номер поверхности
•   Номер сектора




Принципы построения 2
               Тема БД   24
Осложнения: дефектные блоки
• Сложно обрабатывать
• Может программно отображаться
на последовательность целых чисел
  1
  2
  .      Отобра-    Действительные
          жение          адреса
  .
  m



 Принципы построения 2
                Тема БД              25
Пример               Megatron 747 диск (устаревший)

•   Диаметр 3.5 дюйма
•   3600 об/мин
•   1 поверхность
•   16 MB полезная емкость (16 X 220)
•   128 цилиндров
•   Время поиска: среднее = 25 мсек.
                  соседний цилиндр = 5 мсек.




Принципы построения 2
               Тема БД                   26
• Размер сектора = 1 KB = 1 блок
• 10% дорожки составляют межблочные
  промежутки
• емкость = 16 MB = (220)16 = 224
• число цилиндров = 128 = 27
• байт/цил. = 224/27 = 217 = 128 KB
• блок/ цил. = 128 KB / 1 KB = 128




Принципы построения 2
               Тема БД            27
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/сек

  Принципы построения 2
                 Тема БД                 28
T1 = Время чтения случайного блока

T1 = поиск + задержка вращения + передача блока

         = 25 + (16.66/2) + .117 = 33.45 мсек.


                  предполагая, что мы не ждем
                  начала дорожки




Принципы построения 2
               Тема БД                   29
Допустим, что ОС работает с блоками
размером 4 KB

       1         2         3       4        ...

                      1 блок

T4 = 25 + (16.66/2) + (.117) x 1
       + (.130) X 3 = 33.83 мсек
[Сравните с T1 = 33.45 ms]



Принципы построения 2
               Тема БД                 30
TT = Время чтения всей дорожки
     (начиная с любого блока)

   TT = 25 + (0.130/2) + 16.66* = 41.73 ms



   попасть на начало первого блока

* На самом деле несколько меньше; не нужно читать
  последний промежуток




 Принципы построения 2
                Тема БД                      31
Новый 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 об/мин


Принципы построения 2
               Тема БД                       32
Временные характеристики нового
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 случайными)


Принципы построения 2
               Тема БД                         33
Способы оптимизации (контроллер,ОС)

• Алгоритмы упорядочения
   – Например, алгоритм «лифта»
• Использование буфера размера дорожки диска
  (или более)
• Предварительное чтение блока (до запроса)
• Дисковые массивы
• Зеркальные диски




Принципы построения 2
               Тема БД              34
Двойная буферизация

Задача: Имеется файл
 Последовательность блоков B1, B2,...
     Программа
          Обработать B1
          Обработать B2
          Обработать B3




Принципы построения 2
               Тема БД          35
Использование одного буфера
 (1) Читать B1 → Буфер
 (2) Обработать данные в буфере
 (3) Читать B2 → Буфер
 (4) Обработать данные в буфере
     ...
Пусть P = время обработки 1 блока
         R = время чтения 1 блока
         n = кол-во блоков в файле
Время обработки с одним буфером = n(P+R)


Принципы построения 2
               Тема БД               36
Двойная буферизация
              Обраб.     Обраб.

Память:         C
                A         B




Диск:      A B C D E F G


Принципы построения 2
               Тема БД            37
Пусть P ≥ R
                  P = время обработки 1 блока
                  R = время чтения 1 блока
                  n = кол-во блоков в файле
Каково время обработки?

Время обработки с 2 буферами = n(P+R)
Время обработки с 1 буфером = n(P+R)




Принципы построения 2
               Тема БД                  38
Выбор размера блока
 • Большой блок → уменьшает относительную
   стоимость I/O

        К сожалению ...


 • Большой блок ⇒ приходится читать много
   бесполезной информации, больше затраты на
   чтение
 • Тенденция – по мере удешевления памяти размер
   блоков увеличивается



 Принципы построения 2
                Тема БД              39
Стоимость памяти
                                                                        Опти-    offline
                         1015                                           ческие   ленты
Типичная емкомть(байт)


                                                                        диски
                         1013                             магнитные
                                                          оптические
                         1011               вторичная       диски
                                              память           online
                         109      оперативная                  ленты
                                    память
                         107
                                                               согласно Gray & Reuter
                         10   5
                                  кэш

                         103
                              10-9         10-6         10-3       10-0      103
                                                                  Время доступа(сек)

Принципы построения 2
               Тема БД                                                           40
Стоимость памяти

              104         кэш
                                                      согласно Gray & Reuter

                          оперативная
              10   2                                  online
                            память
долларов/MB




                                                      ленты
                                 вторичная
                                   память    магнитные
                                             оптические        Опти-
              100
                                               диски           ческие
                                                               диски
              10-2                                                offline
                                                                  ленты
              10-4
                   10-9         10-6         10-3      10-0      103
                                                     Время доступа(сек)
Принципы построения 2
               Тема БД                                           41
Эффективное использование
вторичной памяти (Раздел 11.4)
• Пример: внешняя сортировка
• Зоключение:
   – Стоимость I/O доминирует
   – Необходимость розработки алгоритмов по-
     возможности уменьшающих I/O
• Каков должен быть размер блоков?




Принципы построения 2
               Тема БД               42
Сбои дисков       (Раздел 11.6)

• Частичные → Полные
• Временные → Постоянные


Что делать в таких случаях?
• Детектирование
   – Например, используя контрольные суммы
• Коррекция
   – Использование избыточности



Принципы построения 2
               Тема БД              43
На каком уровне можно бороться
со сбоями дисков?
• Отдельный диск
   – Используя коды, корректирующие ошибки
• Дисковые массивы




Логический диск          Физические диски


Принципы построения 2
               Тема БД              44
Уровень ОС, дублирование данных




Логический блок          Копия A   Копия B




Принципы построения 2
               Тема БД             45
Системы баз данных

• Например,




              Файл протокола

Текущая БД                     Недельная
                               копия БД


Принципы построения 2
               Тема БД            46
Итог

• Вторичная память, в основном, дисковая
• Характеристики (время) I/O
• Операций I/O, по-возможности, лучше избегать,
  особенно случайных (запросы к отдельным
  случайным блокам в файле или БД).




Принципы построения 2
               Тема БД                47

More Related Content

What's hot

CiklumCPPSat24032012:GennadiyMaryanichenko-ScalableMessageProcessing
CiklumCPPSat24032012:GennadiyMaryanichenko-ScalableMessageProcessingCiklumCPPSat24032012:GennadiyMaryanichenko-ScalableMessageProcessing
CiklumCPPSat24032012:GennadiyMaryanichenko-ScalableMessageProcessingCiklum Ukraine
 
Стриминг и эффективное чтение с DVD диска
Стриминг и эффективное чтение с DVD дискаСтриминг и эффективное чтение с DVD диска
Стриминг и эффективное чтение с DVD дискаRoman_Lut
 
Лекция 5: B-деревья (B-trees, k-way merge sort)
Лекция 5: B-деревья (B-trees, k-way merge sort)Лекция 5: B-деревья (B-trees, k-way merge sort)
Лекция 5: B-деревья (B-trees, k-way merge sort)Mikhail Kurnosov
 
CodeFest 2013. Анастасьев О. — Класс!ная Cassandra
CodeFest 2013. Анастасьев О. — Класс!ная CassandraCodeFest 2013. Анастасьев О. — Класс!ная Cassandra
CodeFest 2013. Анастасьев О. — Класс!ная CassandraCodeFest
 
Lobanov_Cloud-Comput..
Lobanov_Cloud-Comput..Lobanov_Cloud-Comput..
Lobanov_Cloud-Comput..webhostingguy
 
Лекция 11: Программирование графических процессоров на NVIDIA CUDA
Лекция 11: Программирование графических процессоров на NVIDIA CUDAЛекция 11: Программирование графических процессоров на NVIDIA CUDA
Лекция 11: Программирование графических процессоров на NVIDIA CUDAMikhail Kurnosov
 
Организация хранения данных
Организация хранения данныхОрганизация хранения данных
Организация хранения данныхOleg Lipin
 
11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)Smolensk Computer Science Club
 

What's hot (8)

CiklumCPPSat24032012:GennadiyMaryanichenko-ScalableMessageProcessing
CiklumCPPSat24032012:GennadiyMaryanichenko-ScalableMessageProcessingCiklumCPPSat24032012:GennadiyMaryanichenko-ScalableMessageProcessing
CiklumCPPSat24032012:GennadiyMaryanichenko-ScalableMessageProcessing
 
Стриминг и эффективное чтение с DVD диска
Стриминг и эффективное чтение с DVD дискаСтриминг и эффективное чтение с DVD диска
Стриминг и эффективное чтение с DVD диска
 
Лекция 5: B-деревья (B-trees, k-way merge sort)
Лекция 5: B-деревья (B-trees, k-way merge sort)Лекция 5: B-деревья (B-trees, k-way merge sort)
Лекция 5: B-деревья (B-trees, k-way merge sort)
 
CodeFest 2013. Анастасьев О. — Класс!ная Cassandra
CodeFest 2013. Анастасьев О. — Класс!ная CassandraCodeFest 2013. Анастасьев О. — Класс!ная Cassandra
CodeFest 2013. Анастасьев О. — Класс!ная Cassandra
 
Lobanov_Cloud-Comput..
Lobanov_Cloud-Comput..Lobanov_Cloud-Comput..
Lobanov_Cloud-Comput..
 
Лекция 11: Программирование графических процессоров на NVIDIA CUDA
Лекция 11: Программирование графических процессоров на NVIDIA CUDAЛекция 11: Программирование графических процессоров на NVIDIA CUDA
Лекция 11: Программирование графических процессоров на NVIDIA CUDA
 
Организация хранения данных
Организация хранения данныхОрганизация хранения данных
Организация хранения данных
 
11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)11 встреча — Введение в GPGPU (А. Свириденков)
11 встреча — Введение в GPGPU (А. Свириденков)
 

Viewers also liked

Conquer Local with Relationships- People are the new Link Currency
Conquer Local with Relationships- People are the new Link CurrencyConquer Local with Relationships- People are the new Link Currency
Conquer Local with Relationships- People are the new Link CurrencySelena Vidya
 
Best practices
Best practicesBest practices
Best practicesCasinca
 
Leveraging SEO Data for Insight
Leveraging SEO Data for InsightLeveraging SEO Data for Insight
Leveraging SEO Data for InsightSelena Vidya
 
VeloPlay device - Low-fidelity Model
VeloPlay device - Low-fidelity ModelVeloPlay device - Low-fidelity Model
VeloPlay device - Low-fidelity ModelAlice Turunen
 
олімпіада 2012 у лондоні
олімпіада 2012 у лондоніолімпіада 2012 у лондоні
олімпіада 2012 у лондоніDmytro Kushnir
 
Performing an SEO Audit- Pubcon Vegas 2013
Performing an SEO Audit- Pubcon Vegas 2013Performing an SEO Audit- Pubcon Vegas 2013
Performing an SEO Audit- Pubcon Vegas 2013Selena Vidya
 
Open educational resources (oer) power point
Open educational resources (oer) power pointOpen educational resources (oer) power point
Open educational resources (oer) power pointrobinec
 
Content Marketing Challenge - Expanding Mediums Beyond the Written Word
Content Marketing Challenge - Expanding Mediums Beyond the Written WordContent Marketing Challenge - Expanding Mediums Beyond the Written Word
Content Marketing Challenge - Expanding Mediums Beyond the Written WordSelena Vidya
 

Viewers also liked (15)

Risunki na-mashine
Risunki na-mashineRisunki na-mashine
Risunki na-mashine
 
голодание2
голодание2голодание2
голодание2
 
Conquer Local with Relationships- People are the new Link Currency
Conquer Local with Relationships- People are the new Link CurrencyConquer Local with Relationships- People are the new Link Currency
Conquer Local with Relationships- People are the new Link Currency
 
New ziland
New zilandNew ziland
New ziland
 
Best practices
Best practicesBest practices
Best practices
 
Kenya bk-zs-m-ga
Kenya bk-zs-m-gaKenya bk-zs-m-ga
Kenya bk-zs-m-ga
 
Leveraging SEO Data for Insight
Leveraging SEO Data for InsightLeveraging SEO Data for Insight
Leveraging SEO Data for Insight
 
Human bodyartslu (1)
Human bodyartslu (1)Human bodyartslu (1)
Human bodyartslu (1)
 
Great photos
Great photos Great photos
Great photos
 
VeloPlay device - Low-fidelity Model
VeloPlay device - Low-fidelity ModelVeloPlay device - Low-fidelity Model
VeloPlay device - Low-fidelity Model
 
1508 10035
1508 100351508 10035
1508 10035
 
олімпіада 2012 у лондоні
олімпіада 2012 у лондоніолімпіада 2012 у лондоні
олімпіада 2012 у лондоні
 
Performing an SEO Audit- Pubcon Vegas 2013
Performing an SEO Audit- Pubcon Vegas 2013Performing an SEO Audit- Pubcon Vegas 2013
Performing an SEO Audit- Pubcon Vegas 2013
 
Open educational resources (oer) power point
Open educational resources (oer) power pointOpen educational resources (oer) power point
Open educational resources (oer) power point
 
Content Marketing Challenge - Expanding Mediums Beyond the Written Word
Content Marketing Challenge - Expanding Mediums Beyond the Written WordContent Marketing Challenge - Expanding Mediums Beyond the Written Word
Content Marketing Challenge - Expanding Mediums Beyond the Written Word
 

Similar to 1508 10035

Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памятиЕвгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памятиFProg
 
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...Ontico
 
MyRocks: табличный движок для MySQL на основе RocksDB
MyRocks: табличный движок для MySQL на основе RocksDBMyRocks: табличный движок для MySQL на основе RocksDB
MyRocks: табличный движок для MySQL на основе RocksDBSergey Petrunya
 
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...Ontico
 
Лекция 5. B-деревья (B-trees, k-way merge sort)
Лекция 5. B-деревья (B-trees, k-way merge sort)Лекция 5. B-деревья (B-trees, k-way merge sort)
Лекция 5. B-деревья (B-trees, k-way merge sort)Mikhail Kurnosov
 
Не бойся, это всего лишь данные... просто их много
Не бойся, это всего лишь данные... просто их многоНе бойся, это всего лишь данные... просто их много
Не бойся, это всего лишь данные... просто их многоRoman Dvornov
 
Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...Ontico
 
Реактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/musicРеактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/musicVadim Tsesko
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Ontico
 
50
5050
50JIuc
 
Вячеслав Бирюков - Как Linux работает с памятью
Вячеслав Бирюков - Как Linux работает с памятьюВячеслав Бирюков - Как Linux работает с памятью
Вячеслав Бирюков - Как Linux работает с памятьюYandex
 
Лекция 5. B-деревья (B-trees, k-way merge sort)
Лекция 5. B-деревья (B-trees, k-way merge sort)Лекция 5. B-деревья (B-trees, k-way merge sort)
Лекция 5. B-деревья (B-trees, k-way merge sort)Mikhail Kurnosov
 
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...odnoklassniki.ru
 
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...Ontico
 
#dotnetby meetup - 32 Как и зачем готовить ’кластерные’ СУБД
#dotnetby meetup - 32 Как и зачем готовить ’кластерные’ СУБД#dotnetby meetup - 32 Как и зачем готовить ’кластерные’ СУБД
#dotnetby meetup - 32 Как и зачем готовить ’кластерные’ СУБДAnatoly Popov
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНСit-people
 
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...Ontico
 

Similar to 1508 10035 (20)

Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памятиЕвгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
Евгений Лазин. Неизменяемая структура данных HAMT для создания БД в памяти
 
Purely practical data structures
Purely practical data structuresPurely practical data structures
Purely practical data structures
 
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
Оптимизация программ для современных процессоров и Linux, Александр Крижановс...
 
MyRocks: табличный движок для MySQL на основе RocksDB
MyRocks: табличный движок для MySQL на основе RocksDBMyRocks: табличный движок для MySQL на основе RocksDB
MyRocks: табличный движок для MySQL на основе RocksDB
 
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
MyRocks Табличный Движок для MySQL / Алексей Майков (Facebook) / Сергей Петру...
 
Лекция 5. B-деревья (B-trees, k-way merge sort)
Лекция 5. B-деревья (B-trees, k-way merge sort)Лекция 5. B-деревья (B-trees, k-way merge sort)
Лекция 5. B-деревья (B-trees, k-way merge sort)
 
High Load
High LoadHigh Load
High Load
 
Не бойся, это всего лишь данные... просто их много
Не бойся, это всего лишь данные... просто их многоНе бойся, это всего лишь данные... просто их много
Не бойся, это всего лишь данные... просто их много
 
Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...Современная операционная система: что надо знать разработчику / Александр Кри...
Современная операционная система: что надо знать разработчику / Александр Кри...
 
Реактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/musicРеактивный раздатчик ok.ru/music
Реактивный раздатчик ok.ru/music
 
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
Что особенного в СУБД для данных в оперативной памяти / Константин Осипов (Ta...
 
50
5050
50
 
Вячеслав Бирюков - Как Linux работает с памятью
Вячеслав Бирюков - Как Linux работает с памятьюВячеслав Бирюков - Как Linux работает с памятью
Вячеслав Бирюков - Как Linux работает с памятью
 
Лекция 5. B-деревья (B-trees, k-way merge sort)
Лекция 5. B-деревья (B-trees, k-way merge sort)Лекция 5. B-деревья (B-trees, k-way merge sort)
Лекция 5. B-деревья (B-trees, k-way merge sort)
 
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
Франкенштейнизация Voldemort или key-value данные в Одноклассниках. Роман Ан...
 
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
 
#dotnetby meetup - 32 Как и зачем готовить ’кластерные’ СУБД
#dotnetby meetup - 32 Как и зачем готовить ’кластерные’ СУБД#dotnetby meetup - 32 Как и зачем готовить ’кластерные’ СУБД
#dotnetby meetup - 32 Как и зачем готовить ’кластерные’ СУБД
 
apparatnoe_obespechenie
apparatnoe_obespechenieapparatnoe_obespechenie
apparatnoe_obespechenie
 
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
«Память и Python. Что надо знать для счастья?» Алексей Кузьмин, ЦНС
 
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
BigMemory - работа с сотнями миллионов бизнес-объектов / Дмитрий Хмаладзе (Ag...
 

1508 10035

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