Использование нескольких дисковых устройств
Пропускную способность системы можно существенно повысить, если заменить один дисковый привод с блоком головок, «связанных» в единое целое, несколькими (т.е. контроллер дисков будет одновременно управлять несколькими накопителями). При подобном подходе общее время осуществления дисковых операций уменьшается пропорционально количеству дисковых устройств.
Пусть исходная аппаратная конфигурация система изменена таким образом, что один дисковый накопитель заменён четырьмя.
В этих условиях логично разделить множество записей между имеющимися четырьмя дисками, причём так, чтобы на каждом диске данные хранились на 196 соседних цилиндрах (в таком случае можно воспользоваться результатами предыдущего метода).
Первая фаза: при заполнении ОП в ходе первой фазы под данные, считываемые с каждого диска (6400/4=1600), стоит отводить 1/4 часть памяти. Т.к. система способна обслуживать одновременно 4 диска, то на заполнение 100 Мб ОП потребуется 1,6сек./4=0,4 сек. или 400 млсек.
Аналогично, выполняя запись данных в ходе первой фазы, можно распределить содержимое любого из отсортированных подсписков по четырём дискам и 13 соседним цилиндрам каждого диска, сохранив тот же четырёхкратный выигрыш в скорости.
Общее время чтения на первой фазе:
Время выполнения первой фазы целиком составит:
Вторая фаза: блоки по-прежнему необходимо считывать с первых позиций отсортированных подсписков в порядке, близком к «случайному». Так как невозможно гарантировать, что при чтении данных второй фазы будут использоваться все четыре диска параллельно в течение всего периода сортировки (это зависит от того, как реализована программа обработки данных), то используют эмпирическим путём установленный коэффициент прироста производительности из интервала 2-3. Если принять, что значение коэффициента равно 2, экономия составит 18 минут.
Таким образом, замена одного диска четырьмя и использование стратегии группирования данных по цилиндрам в совокупности дают возможность снизить общее время сортировки с 74 минут до 18 минут 13 секунд.
Создание зеркальных копий
Один из доводов в пользу применения зеркальных дисков состоит в том, что в случае выхода из строя одного диска данные удастся считать с другого.
Помимо основного предназначения, связанного с повышением уровня надёжности хранения информации, зеркальные диски позволяют увеличить пропускную способность системы. Т.е. имея n копий данных, можно считывать параллельно любые n блоков. Более того, если единовременной загрузке подлежат менее n блоков, появляется возможность увеличения скорости работы системы путём тщательного выбора диска, с которого данные могут быть считаны быстрее: достаточно, например, проанализировать, головки какого из дисков, не занятых в данный момент выполнением других операций, находятся наиболее близко к тому цилиндру, где расположена требуемая информация.
Применение зеркальных дисков не позволяет ускорить процессы записи, хотя замедления работы в сравнении с теми ситуациями, когда используется единственный диск, также не наблюдается. Записываемый блок сохраняется сразу на всех дисках, но поскольку операции записи выполняются параллельно, они требуют примерно столько же времени, что и в системе с единственным диском. Следует отметить, что абсолютно точной синхронности операции записи на зеркальные диски достичь не удастся, т.к. головки одного диска, например, могут быть расположены «невыгодно» (т.е. непосредственно после сектора, начиная с которого следует записывать блок), а другого, наоборот – там, где необходимо. Но, в среднем, подобные различия во времени оборота довольно малы, и если наряду с созданием зеркальных копий применяется стратегия группирования данных по цилиндрам, этими различиями можно пренебречь.
