|
Программирование >> Проектирование баз данных
Таблица 1 2 ТаблиЩ(1Р*4 - Таблица 4 Рис. 14.1. Четыре таблицы в традиционной конфигурации дисков Как распределить операции ввода-вывода, чтобы не зависеть от частоты обращений к таблицам? Каждую из этих таблиц можно разместить на всех четырех дисках, как показано на рис. 14.2. Этот метод называют стрипингом. Рис 14 2. Те же четыре таблицы в конфигурации со стрипингом При таком размещении не имеет значения, какая таблица популярна в данный момент времени - у нас есть хотя бы небольшой шанс распределить нагрузку ввода-вывода на несколько дисков. Естественно, что без таких специальных мер, как, например, использование Parallel Query Option, такое распределение таблиц будет выгодно только в плане использования центрального процессора и системы ввода-вывода в случае, когда наблюдаются одновременные обращения к таблице со стороны множества пользователей. С другой стороны, такое чередование можно было бы обеспечить, если организовать ряд сырых разделов в Unix (как показано на рис. 14.2), а затем создать с помощью команд CREATE TABLESPACE и ALTER TABLE-SPACE четыре табличных пространства, каждое из которых охватывает четыре физических устройства. Тогда каждая таблица может быть загружена в собственное табличное пространство. Для достижения хороших результатов важнейших эталонных тестов и тестов производительности настройщики даже постарались бы загружать каждую таблицу в заранее установленной последовательности, чтобы каждый процесс использовал собственный диск. Конечно, в реальных системах вряд ли существует такая идеальная схема загрузки. Метод стрипинга обладает одним известным недостатком: очень трудно управлять вставкой новых строк. В большинстве случаев все они будут размешены в текущем блоке (или блоках) таблицы и, возможно, будут иметь тенденцию размещаться на одном и том же физическом диске. В этом случае и в случае, когда интенсивность вставки в таблицу высока или чаще всего запрашиваются строки, которые вставлены последними, такой стрипинг окажется крайне неэффективным. К счастью, операционные системы последнего поколения освобождают проектировщика от этих проблем. Во многих текущих версиях Unix есть менеджер логических томов, который позволяет системному администратору создавать логические диски, пользуясь всей совокупностью физических дисков. В большинстве случаев менеджер логических томов обеспечивает и стрипинг, распределяя блоки логического диска по физическим дискам так, что при случайной последовательности доступа к любым данным на этом логическом томе будет создаваться одинаковая нагрузка на каждый диск. Существенная выгода от использования менеджера логических томов состоит в том, что он оперирует всеми файлами на дисках, а не только теми, которые содержат базу данных Oracle. Это ослабляет влияние других (не-Ог-acie) приложений на конкуренцию за право доступа к диску, а также может устранить узкие места при записи на диск файлов трассировки и отчетов. С точки зрения проектировщика логический том можно представить так, как показано на рис. 14.3. Рис. 14.3. Логический том С этой моделью работать гораздо легче, чем делать стрипинг вручную, и во многих случаях она оказывается гораздо более эффективной. Мы не рекомендуем перекладывать задачи, связанные с организацией стрипинга вручную, на плечи системного администратора, за исключением случаев, когда общая пропускная способность ввода-вывода одного элемента становится проблемой, а в операционной системе нет возможности создания логических томов. Технология RAID, зеркальное копирование и производительность Технология RAID (Redundant /Arrays of /nexpensive Disks - избыточные массивы недорогих дисков) широко распространена как средство повышения целостности данных и производительности. Наш опыт работы с RAID показывает, что у это1г технологии есть и преимущества, и недостатки. Одна из особенностей таких массивов состоит в том, что RAID-контрол-лер реализует такие же логические тома , как мы описывали ранее, однако преобразование в этом случае выполняется в контроллере, а операционной системе вовсе не обязательно знать о лежащей в их основе физической структуре. RAID-контроллеры могут также использоваться для реализации зеркального копирования дисков - процесса, в котором каждая операция записи выполняется на двух отдельных дисках. Один из дисков в паре является зеркальным отражением другого, что снижает вероятность потери данных вследствие отказа дисковода. Когда сервер запрашивает блок данных на диске, его можно прочитать с любого из дисков, на которых он находится, благодаря чему уменьшается вероятность конфликта за право доступа к диску. Это - технология RAID 1. Сторонники RAID также рекламируют достоинства технологии RAID 5, при которой блоки распределяются по специальному алгоритму на несколько дисков. Этот алгоритм обеспечивает возможность полного воссоздания записи в случае отказа одного из дисков. Такой механизм использует примерно на 40% меньше дисков, чем RAID 1, при той же номинальной емкости, сохраняя при этом способность выдерживать отказ диска без потери данных. Это хорошо. Однако следует отметить, что для записи одного блока нужно задействовать пять дисков, а для чтения - четыре. В худшем случае мы можем уменьшить пропускную способность ввода-вывода примерно на 70%. Это плохо. Наш вывод относительно технологии RAID таков: она может быть экономически выгодным способом создания внешней памяти. Но перед тем как использовать конфигурации, отличные от RAID О и RAID 1, следует тщательно проанализировать затраты и выгоды от внедрения этой технологии. Проектирование с целью обеспечения параллелизма Даже если приложение будет работать только на машине с одним центральным процессором и ограниченным числом дисков, все равно стоит посмотреть, можно ли увеличить производительность путем обеспечения параллелизма. В самом крайнем случае нужно проверить, обеспечит ли параллелизм повышение производительности приложения (а не поддержку ее на постоянном уровне) при модернизации аппаратных средств.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |