Третична памет



Дата23.10.2018
Размер66.5 Kb.
#94336



Третична памет

Терабайтове информация – вериги магазини; петабайтове – сателити; такива обеми не се побират в компютъра и мрежите, съхраняват се в третична памет. Четенето и писането е много по-бавно от вторичната памет, но по-голям капацитет. Достъпът до отделните данни много варира, в зависимост къде е главата.

Видове:


  • Ad-hoc tape storage – гореща лентова памет лентови ролки, касети, устройство, което ги чете на това устройство лентата се поставя от човек, лентата се пренавива докъдето трябва данните се четат и се прехвърлят върху диска.

  • Шкафове с оптични дискове – optical disk juke box – шкафове, в които са поставени CD или DVD в тях се използва роботизирана ръка; взема диска и го поставя в четящото устройство.

  • Лентови силози – Tape Silos – сравнително голямо устройство (колкото стая); в него има няколко четящи устройства; лентата се доставя с роботизирана ръка. По-бързо от първия вид, една касета с лента е около 50GB, а в един силоз се събират TB (пример IBM).

В шкафовете с оптични дискове се съдържат много TB върху тях трудно се пише, удобни за съхранение; лентите – удобни за писане; силозите – например при провеждане на експеримент огромни данни; пишат се на ленти, може да се запишат на диск. Записващите дискове са по-удобни от лентите, но лентите още дълго ще се ползват, защото твърде много информация е натрупана върху тях с годините.

Друго разделение на устройствата за съхранение е дали те са променливи или не. Променливото устройство “забравя” какво е съхранено на него когато няма електрическо захранване. Непроменливото устройство от друга страна се очаква да съхрани съдържанието си дори за дълъг период когато устройството е изключено или при токов удар. Магнитния материал съхранява магнетизма си и при липсата на електричество, така че магнитни устройства като магнитни дискове и касети са непроменливи. Оптичните устройства като CD също. Всъщност при повечето от тези устройства е невъзможно да се промени каквото е написано на повърхността им. Основно всички вторични и третични устройства са съхранение са непроменливи. От друга страна основната памет е главно променлива. Една система, която е на машина с променлива ОП трябва да съхранява всяка промяна на диск, защото иначе може да се загуби информацията при токов удар. В следствие на това една заявка или модификация на базата от данни включва голям брой писане по диска, някой от които можеха да бъдат избегнати ако не бяхме задължени да съхраним цялата информация през цялото време. Алтернатива на това е да използваме ОП, която не е променлива. Това се прави по два начина:



  • ОП да е flash памет, но тя е скъпа, макар че цените доста падат

  • ОП да се ползват RAM дискове, за тях се ползват допълнителни източници на електрическа енергия, в тях не се губи информация, срещат се в сървърните системи.


Дискове
Важна характеристика е начина по който СУБД ползва диска.

Вторичната памет почти винаги е от магнитни дискове. Състои се от един или повече кръгли плочи, които се въртят около централна ос, покрити отгоре и отдолу с магнитен материал, върху който съхранява битовете, намагнитизирани в една посока – 0, в обратната – 1. обикновено са с 3,5 инчов диаметър има и по-малки(един инч) и по-големи(няколко фута).




Съхранението на битовете е организирано в писти (концентрични окръжности върху плочата). Тези плочи в по-голямата си част се използват за съхранение на писти, близо до оста не се използва. Пистите са организирани в сектори, разделени от празни, не намагнитизирани пространства, всеки сегмент представя един бит чрез посоката на намагнитизирането. Обикновено във външните писти – повече сектори, отколкото във вътрешните. Дискът чете/записва сектор, това значи, че ако се развали сектор то се разваля изцяло. Блокове – използват се в СУБД те са логическа единица, СУБД чете и пише блокове. Блокове се предават/получават към/от диска, главите се движат едновременно. Всички писти, на едно и също място в различни плочи образуват цилиндър, главите са много близо до повърхността но не я докосват, ако я докосне – задиране на диска, главите четат/записват информацията, която минава под тях.
Управление на диска – от контролера на диска. Управлява един или повече диска, той е един малък процесор, управлява движението на механизма на главите, позиционира ги на опреден радиус, той избира цилиндрите (премества ги до определен цилиндър), избира повърхността, от която ще се чете и пише, след като е избрал повърхността имаме конкретизиране на писта, върху която ще се чете/пише, да намери началото на сектора върху пистата, прехвърляне на данните от търсения сектор в ОП или обратното от ОП да ги запише в сектора, това са атомарните операции – четене на сектор, контролера може да е така програмиран да чете едновременно цял цилиндър няколко сектора от цилиндър и т.н.


Процесор





Шина




ОП



Контролер






Дискове



Характеристики на дисковата памет

  • скорост на въртене – колко оборота прави на минута rpm (5400, 7200 и др.) 5400 rpm – за 11 ms - един оборот

  • брой на плочите в устройството – обикновено от 5 до 10

  • брой писти на повърхност (при дисковете – около 20 000)

  • брой байтове на писта (около 1 млн. байта на писта) средно 500 сектора на писта, 1 сектор – няколко хиляди байта (степени на 2).

Характеристики на достъпа до диска:

Как се извършва достъпа, как се манипулира с данните, в началото на СУБД – да се реализира /оптимизира достъпа до диска (програмиране на най-ниското ниво). Изчисления в ОП, по-точно в кеш, но ОП – арена на действието, по отношение на дисковете – как се прехвърлят блокове между вторичната памет и ОП, блоковете – логически единици, те са определен брой последователни сектори, така гледа СУБД - то на диска.

Действия:


  1. главите се позиционират върху цилиндъра, където се намира блока, който искаме да четем.

  2. да се изчакат секторите, които съдържат блока да стигнат главата (чака се началото на първия сектор от блока, но може и от произволен сектор, ако главата се намира вече върху блока).

Времето от издаване на командата до прочитане на блок в ОП – латентност на диска:

  1. време, за което процесора и дисковия контролер обработват заявката (милисекунди - игнорираме)

  2. време за свързване с дисковия контролер(кратко – игнорираме, може по шината да има конкуренция, но пак е малко)

  3. време за търсене – позициониране на главата върху цилиндъра (ако са върху него-0, иначе първо започва движение, после спира) и времето необходимо за изминаване на разстоянието от текущата позиция до целевата времето за търсене – няколко милисекунди, максимално – 10-40 милисекунди. х-минимално време 3х-20х общо време.средно време – характеризира бързодействието на диска

  4. латентност на завъртане – времето за което диска се завърта до първия сектор на блока. 1 оборот е приблизително 10 милисекунди обикновено; средно търсения сектор – по средата, средно време за търсене – 5 милисекунди.

  5. време за трансфер – времето за което секторите на блока, включително празното пространство между тях ще преминат под главата, ако един диск има 250 000 байта на писта и прави оборот за 10 милисекунди можем да четем по 25 мегабайта на секунда. Ако един блок е 16 384 байта можем да го прехвърлим за 2/3 милисекунди. дисковите контролери – колкото повече поевтиняват компонентите толкова повече дисковите контролери се превръщат в малки компютри с процесор и памет, в паметта се пазят писти така по софтуерен път се увеличава бързодействието.

Четене / писане / модификация на блокове
Писането, като четенето – при него може да се иска проверка дали правилно е записан блок, не става върху диска. Трябва след записването да се прочете отново и да се сравни с оригинала (може да се върти от контролера) много е бавно, често се прилагат чексуми, не се пази в паметта блока, а чексумата прочита се блока и ако те съвпадат – всичко е наред.

При модификация не става пряко върху диска първо да прочетем блока, да направим измененията в ОП и да запишем блока върху диска. Може след записът да направим проверка . време – времето за четене + времето за изменение в ОП + време за запис [+ време за верификация]. Доколкото контролера е управляем могат да се включат и изключат тези режими за верификация(той е скъп); четем-изменяме-пишем. Дискът обаче се върти, така че след изменението – отново изчакване за завъртане и дори наместване на цилиндъра.


Ефективно използване на вторичната памет

Алгоритмите обикновено предполагат че данните са в ОП и достъпа до тях – за едно и също време. Този модел на представяне на алгоритъма – RAM-модел при СУБД се предполага, че данните не са в ОП а във вторичната или третичната най-добрите алгоритми за обработка на големи обеми от данни са различни от най-добрите алгоритми за същата задача, когато данните са в ОП. В СУБД основно разглеждаме обмена между вторичната и външната памет. Един алгоритъм е по-добър, когато осъществява по-малко достъпи до диска (този принцип се прилага между всички нива на йерархията на паметта – за оценка на алгоритъм се броят достъпите до по-високото ниво на йерархията). Ако знаем размера на кеша и проектирания алгоритъм той ще е толкова по-добър, колкото по.малко пъти се прехвърлят данни между ОП и кеш, това обаче е много фино.


Входно-изходен модел на изчисления

Прост компютър, върху който е инсталирана СУБД, група потребители, обслужвани от СУБД - то. Достъпът по различни начини – заявки и изменение на базата. Един диск и един контролер, един процесор. Базата е достатъчно голяма, за да не се побира в ОП. В ОП се буферират важни части от базата, но при всички положения при първо обръщение към това парче то трябва да бъде прочетено и заредено. Веки потребител пуска входно-изходни заявки, контролера – опашка от заявки, като обслужват например FCFS. Всяка заявка направена от потребителя се счита за случайна – когато дойде да бъде изпълнена, главата ще е на случайно място и това е в сила дори ако потребителя чете данни само от една релация и те се съхраняват върху един цилиндър.



Правило за доминиране на входно-изходна цена

Ако един блок трябва да се прехвърли между вторичната и ОП то времето за четене е много по-голямо от това за обработка в ОП, така че броя достъпи до диска – най-точната апроксимация на времето за даден алгоритъм и трябва да бъде минимално.


Сортиране на данни във вторичната памет
В СУБД сортировката е много важна. Релацията R 10 млн. кортежа, всеки кортеж – запис от няколко полета, едно от тях – полето на сортировка. Разликата между ключови полета и поле на сортировка. Цел на алгоритъма на сортиране – да подреди кортежите по полето на сортировка. При сортировката – допуска се да има дубликати, когато има приемаме че наредбата няма значение, приемаме че няма дубликати и ключовете на сортиране са еднакви. Кортежите са разположени в блок с размер 16 384 байта, т.е. в един блок предполагаме, че се побират по 100 кортежа. Релацията като цяло ще се нуждае от 100 000 блока, около 1,64 млрд.байта, в ОП са заделени 100 MB за буфериране. В нея могат да бъдат разположени 6400 блока ако всички данни са в ОП – quick sort. В общите случай, когато не работим с ОП не става да минимизираме прехвърлянето между данните и ОП, тогава алгоритми, които работят на серии в рамките на една серия всеки запис се чете и пише само веднъж. Тогава да се минимизират сериите, група алгоритми за сортировка и сливане най-простия – сортировка и сливане – да се осъществи сливане на сортираните списъци в по-големи сортирани списъци.



стъпка

Списък 1

Списък 2

Изход

Начало

1,3,4,9

2,5,7,8




1

3,4,9

2,5,7,8

1

2

3,4,9

5,7,8

1,2

3

4,9

5,7,8

1,2,3

4

9

5,7,8

1,2,3,4

5

9

7,8

1,2,3,4,5

6

9

8

1,2,3,4,5,7

7

9

-

1,2,3,4,5,7,8

8

-

-

1,2,3,4,5,7,8,9

Цялата релация се разбива на n списъка, те се сортират и сливат. Времето нужно за сливане – линейна сума от дължините (защото се сравняват само главите). Клас merge sort - logn – фази. Общо време за сортировка - T(n)=n(log n ).

Двуфазна многократна сортировка и сливане:


  1. извършва се сортировка на данните в ОП при тази фаза релацията се изчита на части в ОП всяка част се сортира и се записва върху диска, така че от една релация получаваме сортирани списъци върху диска.

  2. сливане на сортираните подсписъци в един сортиран списък.

Сортировката в ОП – по някой от бързите алгоритми

Следния процес се повтаря колкото е необходимо:



  1. ОП се запълва с блокове от оригиналната релация, която ще сортираме, след това се сортират записите в основната памет и така сортираните записи се записват в нови блокове във вторичната памет. Така всеки запис ще бъде прочетен по един път и ще бъде записан един във вторичната памет в блоковете, заделени за съответния подсписък.



Page of

Каталог: fmi -> fmi-ftp-upload-folder -> 3%20Semestur%202004%20&%202005 -> Predmeti -> DBMS -> Lekcii
fmi-ftp-upload-folder -> Бази от данни Упражнение 10
fmi-ftp-upload-folder -> Oracle e-business Suite Модул Financials, подмодул Fixed Assets
fmi-ftp-upload-folder -> Бази от данни Упражнение 9
fmi-ftp-upload-folder -> Basic structures напишете pl/sql блок, който въвежда номера в таблицата messages
Lekcii -> Grid съхранява голям обем данни (терабайтове)
Lekcii -> Извличане на документи и инвертирани индекси за целите на web приложенията
Lekcii -> Представяне на данни
Lekcii -> Многобазово криптиране на големи релации Ако размера на блока е в байта, а в основната памет имаме М


Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница