Перечень статей   Choose language


Cменим поколение систем хранения

За всю историю существования компьютера было три поколения систем хранения. Первая даже не имеет своей терминологии. За ее отсутствием будем пользоваться терминологией второго поколения.

Отличительной особенностью систем первого поколения была команда 'move file', сдвигавшая весь файл целиком и расширявшая свободное пространство между файлами для записи нового файла.

Отличительной особенностью систем второго поколения было разделение файлов на кусочки одинакового размера, помещение кусочков в свободные места, и перечисление этих мест в специальном файле-невидимке (FAT).

Системы третьего поколения основывались на том факте, что за исключением научных вычислений (с массивами), во всех остальных случаях используются структуры, и запрос структур удобнее и функциональнее, чем обращение со всем файлом. Кроме того, эти системы имели еще одно преимущество. Память, выделяемая операционной системой для кэширования винчестера, ограничена. И кэширование в одном кэше структур сразу всех типов (что для систем второго поколения было бы эквивалентно кэшированию сразу всех файлов в одном кэше) оптимальнее, чем кэширование каждого файла в отдельном равном участке памяти. Разумеется, чтобы после перенесения структур на новый винчестер все работало, структуры должны ссылаться друг на друга не по физическому адресу, не по порядковому номеру в цепочке однотипных структур, а по номеру, данному в порядке появления структур на свет (конечно, индекс тоже должен поддерживаться операционной системой, чтобы разгрузить прикладную программу. Кроме того, должны поддерживаться вложенные схемы - с.176-178 pdf-документа).

К несчастью изобретатель системы третьего поколения (Кодд) не имел доступа к ядру какой-либо ОС, и не мог ее туда вмонтировать. И что еще более печально, он слил систему хранения с одной из многих возможных машин вывода, чем смутил все последующие поколения разработчиков. Сейчас СУБД состоит из части ОС, и из машины вывода для оператора 'join' - и ни разработчики ОС, ни разработчики машин вывода не могут разделить эти два факта в своей уме.

Я столкнулся с этим, когда задумал машину вывода, отличную от 'join' (алгоритм вывода - и даже алгоритмы - были уже известны). И я был вынужден прикрепить свою машину вывода к СУБД, а не к ОС (с.209-271 pdf-документа), потому что в последней система хранения не была реализована.

Сегодня в нашей индустрии наблюдается помутнение умов - что-то похожее на танцевальную лихорадку или тюльпанную лихорадку в средневековой Европе. Произошел откат от структурного мировозрения к файловому мировозрению, маркером чего является хранение XML.

Хочу привлечь внимание общественности к тому, что благодаря какому-то фактору поколения систем хранения никак не сменяться, и призвать, и склонить к вмонтированию в операционные системы систем хранения 3-го поколения.


Тюрин Дмитрий, dmitryturin@yandex.ru



Перечень статей   Choose language


Используются технологии uCoz