powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Проект построения большой БД - давайте пообсуждаем
307 сообщений из 307, показаны все 13 страниц
Проект построения большой БД - давайте пообсуждаем
    #32638247
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.

Итак, условия задачи следующие: нужно построить VLDB. Объем - терабайты.
Кто чего думает? В принципе вариантов два:

MSSQL

Oracle

Вот и давайте пообсуждаем плюсы и минусы каждого варианта ;-) .

ЗЫ
В случае c Oracle вопрос выбора ОС также открыт...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638253
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что db2?
тоже, говорят, солидная система.

а еше я про terradata что-то слышал...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638259
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, давайте обсуждать с аргументами: есть и слышал - не аргументы ;-) ...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638292
zass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый Сергей. То что вы выносите на форум может иметь разные ответы.
Мое мнение такое: как у кого и под что подточены руки. Я уже три года работаю с MS SQL Server - система очень нравится. Работает стабильно. Но что бы вы знали я ее "родил" с самого начала, вылизывал каждую табличку, триггер, референсы и т.д. Знаю несколько фирм, которые работаю на оракле. Кленут его на чем свет стоит, а когда я посмотрел их БД - плакать хочется...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638296
zass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В родая я имел в виду БД.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638306
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
ну как бы с mssql действительно тяжело сравнивать - у него нет значительной часть фич для VLDB. тут соревнуются db2, terradata & oracle
крупнейшие можно посмотреть сдесь:
http://www.wintercorp.com/vldb/2003_TopTen_Survey/TopTenWinners.asp

ЗЫ. а ос зависит от железа, ораклу по большому счету все равно что за ось.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638322
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> zass
Для меня MSSQL - как первая любовь со всеми вытекающими... ;-)

Но тем не менее, давайте подойдем к обсуждению с холодной головой.
Я сформулирую еще ряд критериев. Помимо поддержки больших объемов данных СУБД должна:

быть надежной

быть распространенной и известной

должна быть поддержка импорта/экспорта данных из/в другие СУБД

на рынке труда должно существовать достаточное количество грамотных специалистов, способных администрировать и поддерживать эту СУБД

эта СУБД должна поддерживаться ведущими разработчиками RAD-инструментов
Пока что все...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638339
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
Terradata - лидер, а долго был вообще недосигаемым лидером в DSS и VLDB.

- не распространенная и большинству известная
- на российском рынке труда практически не существует достаточное количество грамотных специалистов, способных администрировать и поддерживать эту СУБД
- эта СУБД должна не поддерживаться ведущими разработчиками RAD-инструментов

;)
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638353
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов> zass
Но тем не менее, давайте подойдем к обсуждению с холодной головой.
Я сформулирую еще ряд критериев. Помимо поддержки больших объемов данных СУБД должна:

быть надежной

быть распространенной и известной

должна быть поддержка импорта/экспорта данных из/в другие СУБД

на рынке труда должно существовать достаточное количество грамотных специалистов, способных администрировать и поддерживать эту СУБД

эта СУБД должна поддерживаться ведущими разработчиками RAD-инструментов
Пока что все...


Я бы все же прошелся по функционалу необходимому для подержки больших объемов.
Так же давайте определимся , что вы подразумеваете под VLDB кроме большого объема?
То есть речь идет о OLTP cистеме или о DSS.
После чего давайте сформулируем какие функциональные возможности необходимы для VLDB.
Например:
- Партицирование таблиц
- Возможности конкретной СУБД по настройке ввода-вывода.
- Возможности СУБД по подержанию больших объемов памяти и больших файлов.
- Если речь идет о DSS системах , то например рассмотреть функционал индексов .

и т.д. и т.п.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638360
zass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я еще добавлю, что по данной СУБД имеется очень много литературы и как админ легко подготовил себе нескольких замов.
По надежности: веду 2-х часовой учет состояния БД, отслеживаю (программно) все ресурсы с среду БД. Но работа по автоматизации ведется и по сей день. Конца пока не видно. За все время работы БД ни разу не упала. А ее хотят поиметь сразу 55 человек.
О распространенности и известности: оракл и MS SQL Server - самы распростаненные (можно посмотреть главную страничку www.sql.ru)

Все остальное также очевидно.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638391
viper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Убедительных технических аргументов не приведу, но большинство (не скажу все), известных мне, больших баз (налоговая, ГАИ и т.д.) оракуловые (нк по крайней мере на Украине), возможно не последнюю роль играют такие аспекты как исторические традиции орг. структур, не желание/ не имениие возможности работать с виндовыми серверами и т.д. но факт остается фактом...
В принципе нужно решить обсуждаем мы гипотетическую ситуацию (тоесть обсуждаем только тех. аспекты СУБД) или реальную где стоит учитывать дополнительные аспекты (стабильность серверных ОС, надежность инструментов разработчиков работающих с БД и прочее)
Может я не в те ворота лезу... тогда поправте меня.
_________________________________________________
Легче написать не правильную программу чем понять правильную (С) Alan Perlis
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638413
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneSЯ бы все же прошелся по функционалу необходимому для подержки больших объемов.
Так же давайте определимся , что вы подразумеваете под VLDB кроме большого объема?
То есть речь идет о OLTP cистеме или о DSS.
После чего давайте сформулируем какие функциональные возможности необходимы для VLDB.
Например:
- Партицирование таблиц
- Возможности конкретной СУБД по настройке ввода-вывода.
- Возможности СУБД по подержанию больших объемов памяти и больших файлов.
- Если речь идет о DSS системах , то например рассмотреть функционал индексов .

и т.д. и т.п.
1. Система будет гибридной, больше с уклоном в OLTP, чем в DSS
2. Партицирование таблиц - угу, обязательно.
3. Настройке ввода-вывода - конечно обсуждаем.
4. Объемы памяти - обсуждаем.
5. Серверные ОС - обсуждаем.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638418
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя нет: OLTP/DSS - 50/50
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638432
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
viper
дополнительные аспекты (стабильность серверных ОС

ОС для надежности всей системы в целом имеет значение. А про надежность первый пункт. Поэтому было бы интересно и про надежность ОС сервера БД.
У нас на фирме есть разные точки зрения про это. Поэтому скажите, пожалуйста, что думаете про ОС.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638458
zass
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Считаю, что Win 2000 SP4 или Win 2003 - подойдет.
Хотите круто - Linux. Но тогда вам необходимо владеть многими промежуточными программами типа Samba и т.д.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638471
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну до кучки в сравнению Sybase IQ, который вроде как не требует администрирования, хранит данные вертикально по полям, а не страничкам позаписно, держит БД в сжатом виде, довольно шустро подгружает данные с удаленных серверов и текстовых файлов, имеет в арсенале ASA-шный диалект WatcomSQL, который много чего умеет и поддерживает кучу всяких специализированных индексов. Так как он изначально ведет себя как полноценная РСУБД (кстати он версионник), то с ним может работать любой инструмент. Основная его задача - это аналитика, как OLTP его использовать нельзя (слишком медленно будут идти операции изменения данных), основное его предназначение - периодически закачивать большие обьемы данных и за максимально короткое время производить выборки. Специальных знаний особо не требуется, так как снаружи это обычный РСУБД с 2 диалектами: WatcomSQL (чем то похож на PL/SQL) и TSQL (совместим с MSSQL и Sybase ASE). Ограничений на кол-во колонок и записей в таблицах особо нет, из за того, что способ физического хранения данных заточен под такие задачи. По словам Sybase-совцев у них вроде как в Монреале успешно крутиться на IQ БД на 26 террабайт (в расжатом виде данные занимают порядка 45 террабайт), однако это любой конкурент может заявить то же самое. Насколько я знаю IQ неплохо крутиться на Украине в банках (по моему и в Первом национальном, я плохо знаю название их банков). В России то же есть успешные внедрения, однако информацией где они были я не располагаю, это наверное нужно спрашивать у Sybase CIS .

P.S. Чуть чуть характеристик по Sybase IQ можно посмотреть в этом документе. В нем правда не сколько рассматривается отдельно IQ, а сравниваются между собой все СУБД от Sybase, но кое какая там информация есть.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638483
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ТихоновХотя нет: OLTP/DSS - 50/50

Оп ля!
Ну если так и все это будет крутиться на одной железке, то того возникает вопрос "Управления ресурсами СУБД".
Для чего имеется Resource Manager в СУБД Oracle.

Пока из-того, что я знаю о конкурентах такой функциональности нет.
Хотя конечно возможен вариант разнесения БД но тогда остро встает вопрос подержания адекватности данных во второй СУБД.
Конечно это сильно связано с условиями задачи, но такое может иметь место.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638493
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...Итак, условия задачи следующие: нужно построить VLDB. Объем - терабайты.
Кто чего думает? В принципе вариантов два:
MSSQL
Oracle
...
есть две отправные точки.
1. Самая важная- сколько дают денег? (ведь вы же терабайты не на пиратской БД будете разворачивать).
2. Какой объем данных из терабайтов будет активно использоваться в транзакциях?
По п.2.
Есть эмпирическое правило: рекомендумый объем кэша как минимум 5-10% от объма "активных" данных. Если нужный объем ОЗУ переползает за 3Гб, то вам нужна 64бит ОС. Если это так, то вам дорога в ORACLE, SYBASE, DB2, INFORMIX на Solaris, AIX, и.т.п. Если нет, то включаем в рассмотрение MSSQL на Windows.
Вариант 64bit Windows+64bit MSSQL/Sybase/DB2 лично я бы еще пару тройку лет не рассматривал бы (технология должна "осесть", отладится, ведь вы же не хотите хранить терабайты на относительно "незрелой" системе).
ПРисоединяюсь к мнению о том, что для больших БД нужны такие фичи
как: партиционирование таблиц, именованные кэши для таблиц и индексов, возможность управлять ресурсами под IO, блокировки, кэши процедур, стратегией эскалации блокировок и пр. и др.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638506
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
авторХотя конечно возможен вариант разнесения БД но тогда остро встает вопрос подержания адекватности данных во второй СУБД.

для терабайтной субд имхо это практически не реально.

гибридная система на блокировочнике mssql не реально, тут DSS будет мешать OLPT задаче или грязное чтение ...

авторХотите круто - Linux. Но тогда вам необходимо владеть многими промежуточными программами типа Samba и т.д.

да без самбы ораклу никак :) еще прокси и квак, тоже очень полезны.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638519
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kesariu - kesarevo. Esli govorit o VLDB, to OLTP/DSS v odnom ne vsegda optimalno. Deneg budet stoit ocen' mnogo.

DSS - Sybase IQ. Dlia menia pocti odnoznachno.

OLTP+DSS v odnom flakone... Terradata. No budet stoit stolko, skolko stoili by 2-3 sistemy tipa: Sybase ASE+IQ ili Oracle+IQ ili MS+IQ.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638549
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo!ну как бы с mssql действительно тяжело сравнивать - у него нет значительной часть фич для VLDB. тут соревнуются db2, terradata & oracle
крупнейшие можно посмотреть сдесь:
http://www.wintercorp.com/vldb/2003_TopTen_Survey/TopTenWinners.asp

ЗЫ. а ос зависит от железа, ораклу по большому счету все равно что за ось.

O Winter'e :
"Sybase IQ won Grand Prize in Windows category comScore #1, #2, #3 largest data warehouses

Sybase IQ won 22 out of 80 awards in Decision Support Systems (DSS) categories – on UNIX & Windows.
More wins than Teradata, DB2, Oracle & Microsoft

Sybase IQ won over Teradata in every category – except the “obesity contest”
Real-world customers need efficiency, not obesity"

O VLDB: 155TB dumaju hvatit? 1 Trillion rows representing 155TB of input(raw) data was loaded in IQ on Solaris platform.

This DW is 15x larger than AMEX DW, 10x larger than Nielsen DW, 15x larger than Teradata at SBC, 3x larger than Teradata at Walmart and is ~15x larger than the largest TPC-H (10TB).

IQ compressed 155TB of input data in 55TB of storage: competition would need 400-1,000TB of storage. Storage savings alone are $30M-$100M.

I eche: http://www.sybase.ru/Syb/corporate/events/iq_30-03-2004.htm
--------------------------
Sorry za takuju kirillicu :)
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638566
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
так Sybase IQ бесполезен в гибридной системе, только в DSS. значит к нему нужет ну допустим mssql для OLPT. представляете скока железа надо для двух терабайтный субд ... + данные синхронизировать а это ж небойсь гигабайты. сложно и не понятно зачем если можно эфективно решать задачу на одном сервере.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638618
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Dog
O Winter'e :
"Sybase IQ won Grand Prize in Windows category comScore #1, #2, #3 largest data warehouses

Sybase IQ won 22 out of 80 awards in Decision Support Systems (DSS) categories – on UNIX & Windows.
More wins than Teradata, DB2, Oracle & Microsoft

Sybase IQ won over Teradata in every category – except the “obesity contest”
Real-world customers need efficiency, not obesity"

O VLDB: 155TB dumaju hvatit? 1 Trillion rows representing 155TB of input(raw) data was loaded in IQ on Solaris platform.

This DW is 15x larger than AMEX DW, 10x larger than Nielsen DW, 15x larger than Teradata at SBC, 3x larger than Teradata at Walmart and is ~15x larger than the largest TPC-H (10TB).

IQ compressed 155TB of input data in 55TB of storage: competition would need 400-1,000TB of storage. Storage savings alone are $30M-$100M.

Производитель СУБД может рассказывать, что хочет ( у него цель продать продукт ) - нужны доказательства.



Остается только найти подтверждение ваших мыслей на
http://www.tpc.org/tpch/results/tpch_perf_results.asp?resulttype=noncluster&version=2%&currencyID=0

И что мы там видим?
На объемах свыше терабайта только MSSQL и Oracle и то на чистом DSS.

А что будет когда 50:50 DSS/OLTP ?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638650
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. V takoj sheme, mozet otpast trebovanie imet terabaity v OLTP.
2. IQ pozvoliaet s'ekonomit na zeleze stolko i supporte, cto v nekotorych slucajach delaet MSSQL/Oracle dlia OLTP 'besplatnym'.
VLDB dlia OLTP/DSS v odnom flakone mozet stoit dopustim 1-2-3-4M$. OLTP+DW: OLTP- 0.2-0.5M$ plius DW - 0.5-1M$ = 1-1.5M$.
Da i ne slysal, chtoby naprimer Terradau , libo voobce warehouse delali vmeste (na tom ze zeleze) cto i OLTP.
Naprimer: http://www.sybase.com/detail?id=1027607
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638659
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneS
http://www.tpc.org/tpch/results/tpch_perf_results.asp?resulttype=noncluster&version=2%¤cyID=0

Вы не в курсе почему Оракла нет в 10 меньше 1000Гб? Он не участвовал? Или участвовали не лучшие проекты? Наверное последнее.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638677
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DSS bez OLTP pohoze nikogda ne byvaet ;)
Po povodu VLDB: http://www.teradata.com/t/pdf.aspx?a=83673&b=117439 neplohaja ssylka.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638706
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vadiminfoВы не в курсе почему Оракла нет в 10 меньше 1000Гб? Он не участвовал? Или участвовали не лучшие проекты? Наверное последнее.

Dumaju - price/performance budet plohim. I chem bolse TB - tem sootnosenie huze.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638780
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ggg-Old: Кто сказал что на 32-bit нельзя поместить данных в кэш почти столько сколько и в 64-bit??? И при памяти более 4ПИ однознача 64-bit. Помоему это слегка бездоказательно.

Дорогой EugeneS как-то вы странно смотрите на тесты tpc-h???
В DSS DB2 почти везде присутствует причем не на последних позициях.

2Dog: Ты очень хорошо подумал когда написал что OLTP+DSS в одно флаконе если не смотреть на денги, то терадата????
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638801
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay Kulikov
2Dog: Ты очень хорошо подумал когда написал что OLTP+DSS в одно флаконе если не смотреть на денги, то терадата????

Ja s IBM malo znakom. Oen' subjektivno, dumaju cto esli govorit' o DSS/OLTP v odnom flakone, to
1. TData
2. IBM.

Vopros s IBM ocen zavisit ot strany/regiona. nemalo mest, gde IBM support/presale na nule. Eto moe mnenie.
Tdata - tam gde oni ucavstvujut - molodcy. Support/presale na vysote (drugoe delo, cto mogo gde ih resenija neprohodiat po cene libo izza specificeskogo HW. ). Ne nado mne rasskazyvat, kak horoso TData krutitsia na HP-UX.

o Sybase IQ: ne pozicioniruetsia kak odin flakon (poka). Ocen prostaja, poniatnaja i bystraja baza. Problemy: Sybase predstavitel'stv - nevidno. Marketinga pocti nol'.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638855
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hotia, Nikolay, ty prav, esli namekaes na to cto TDATA ne pozicioniruetsia kak OLTP.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638890
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Nikolay Kulikov:
Я не утверждал однозначно, что на 32бит системе нельзя использовать кэш более 3Гб. Естественно PAE и AWE даст такую возможность. Но если у организации терабайтная БД и нужно много ОЗУ, та зачем ограничивать себя костылями, а не взять нормальный 64бит сервер? Мне AWE чем-то напоминает DOSовские примочки XMS+EMS. Только мастштаб больше.
Вчера прочитал на сайте IBM про интел сервера, которые поддерживают hot swap память и зеркалирование памяти.
Я в обалдении. Не знал, что так можно. Жалко, что IBM не представлена нормально в Украине. :-(
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638968
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay KulikovGgg-Old: Кто сказал что на 32-bit нельзя поместить данных в кэш почти столько сколько и в 64-bit??? И при памяти более 4ПИ однознача 64-bit. Помоему это слегка бездоказательно.

Дорогой EugeneS как-то вы странно смотрите на тесты tpc-h???
В DSS DB2 почти везде присутствует причем не на последних позициях.

2Dog: Ты очень хорошо подумал когда написал что OLTP+DSS в одно флаконе если не смотреть на денги, то терадата????

Да, я немного не точно выразился.
Поясню.
Я просматривал результаты систем, которые без учета кластеров.
Ну есть у меня определенные предрассудки к калстерам , хотя все уверяют что это реально работает.
При покупке некластерной конфигурации есть большая доля вероятности
"не попасть" в рекламную ловушку.

Если с учетом кластеров , то да DB2 там присутствует, хочу так же добавить , что у IBM есть еще mainfraim, и в последних тестах и вроде ка нет.

Еще раз тесты TPC не панацея , а только один из аргументов.
Я так же люблю еще тесты SAP. Тоже есть с чего выбрать и что посмотреть, хотя конечно нет описание конфигурация систем и их стоимости.


Теперь про TERADATA.
Коллеги,
давайте будем реалистами.
Кто-нибудь работал с TERADATA?
На просторах бывшего CНГ есть представительство этой компании?
Кто-нибудь с ней работал?
А теперь ключевой вопрос,
Вы верите в "чудо", что малоиспользуемый продукт вдруг окажется тем что именно вам надо?

Сомневаюсь однако.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32638969
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну как же офис уже открыли.


А по поводу 32-bit и АWE. Зачем если можно без этого.
Предположим имеем машину 4 процессора 16GB памяти. Запускаем 4 Instance DB2/Informix XPS каждый instance берет свои 4GB и обслуживает свою часть БД. Без всяких AWE.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32639005
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ggg_old2 Nikolay Kulikov:
Я не утверждал однозначно, что на 32бит системе нельзя использовать кэш более 3Гб. Естественно PAE и AWE даст такую возможность. Но если у организации терабайтная БД и нужно много ОЗУ, та зачем ограничивать себя костылями, а не взять нормальный 64бит сервер? Мне AWE чем-то напоминает DOSовские примочки XMS+EMS. Только мастштаб больше.
Вчера прочитал на сайте IBM про интел сервера, которые поддерживают hot swap память и зеркалирование памяти.
Я в обалдении. Не знал, что так можно. Жалко, что IBM не представлена нормально в Украине. :-(

Да, HP тоже умеет.
На 4 проц умеет делать Mirror памяти ,а на 8 проц. RAID 5, хотя стоит это довольно прилично.
Уж HP то представлена в Украине.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32639230
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Eugenes: Нет ты не понял. Без всяких железячных фич можно обойтись.
Каждый Instance это отдельный процесс котрый пользуется 4GB т.е вписывается в лимиты 32-bit. В тоже время они все утилизируют 16 GB в системе. Правда это получается кластер внутри одной машины.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32639315
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay Kulikov2Eugenes: Нет ты не понял. Без всяких железячных фич можно обойтись.
Каждый Instance это отдельный процесс котрый пользуется 4GB т.е вписывается в лимиты 32-bit. В тоже время они все утилизируют 16 GB в системе. Правда это получается кластер внутри одной машины.

Николай, это ты про LPAR's говоришь?
Если не сложно, посоветуй техн.чтиво по HACMP c нуля.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32639332
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тоже предлагаю вариант DB2/Informix XPS .
Только обязательно на рисковом железе.

OLTP/DSS решаются автоматом.
На одном узле сервер конфигурится под OLTP, на другом под DSS.
Таблицы видны прозрачно. Транзакции тоже общие.
Важно чтобы DSS не наступал на хвост OLTP блокировками.
Но это вопрос проектировщика, База все инструменты предоставляет.
Фрагментация поддерживается.
Архитиктура DSA при правильном проектировании приложения
отдает под одну сеcсию все ресурсы сервера, если нужно.
Прикольно смотреть как одна пользовательская сессия грузит 4 процессора на и дисковый массив 100 %.

С уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32639380
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-

Архитиктура DSA при правильном проектировании приложения
отдает под одну сеcсию все ресурсы сервера, если нужно.
Прикольно смотреть как одна пользовательская сессия грузит 4 процессора на и дисковый массив 100 %.

С уважением, onstat-

А как это реализовано? "Одна пользовательская сессия" - это несколько процессов?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32639495
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killed onstat-

Архитиктура DSA при правильном проектировании приложения
отдает под одну сеcсию все ресурсы сервера, если нужно.
Прикольно смотреть как одна пользовательская сессия грузит 4 процессора на и дисковый массив 100 %.

С уважением, onstat-

А как это реализовано? "Одна пользовательская сессия" - это несколько процессов?

Да именно так. Это эсли можно так выразиться своя операционная среда
в которой для пользовательской сессии выделяются нити выполнения сервера
например одна делает join , друга group by, треться сортировку червертая подзапрос in и каждая на своем процессоре.
В двух словах не объяснишь. Поисчите на гугле Informix DSA.

С уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32639634
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ну тогда в целом я наверное понял. В Оракле аналогичная вещь называется PQO - Parallel Query Option. Координатор процесса (сессия, инициирующая паралельную обработку) и слэйв-процессы, которые читают данные в параллель. Результаты работы слэйвов передаются координатору для получения конечного результата.

Смущает только фраза "например одна делает join , друга group by, треться сортировку червертая подзапрос in и каждая на своем процессоре".

Это же конвейер в чистом виде ;) В оракле в основном речь идет о распараллеливании ВВ. Если читаем много, есть запас по CPU и пропускной способности подсистемы ВВ, тогда есть смысл попробовать распараллелить запрос. Только это все плохо сочетается с OLTP.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32639682
andsm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ТихоновИтак, условия задачи следующие: нужно построить VLDB. Объем - терабайты.
Кто чего думает? В принципе вариантов два:

MSSQL

Oracle

Вот и давайте пообсуждаем плюсы и минусы каждого варианта ;-) .
Недавно закончил делать БД которая со временем достигнет терабайта - пока меньше. В основном DSS, плюс немного OLTP. MS SQL2k + MS AS. Пока никаких серьезных проблем нет.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32640475
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay Kulikov
Ну как же офис уже открыли.
А по поводу 32-bit и АWE. Зачем если можно без этого.
Предположим имеем машину 4 процессора 16GB памяти. Запускаем 4 Instance DB2/Informix XPS каждый instance берет свои 4GB и обслуживает свою часть БД. Без всяких AWE.


А что будет, если один и тот же блок понадобиться и в том и в другом инстансе? Как там насчет Interconnect?

Informix говорите?
Это уже мертывй продукт. Я даже не считаю нужным его обсуждать.
Если вы так не считаете, то скажите зачем тогда IBM две СУБД?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32640617
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, в пятницу нашел на MS-сайте очень интересный документ. На конкретном примере рассказывается про построение БД размером 10ТВ . Вот ссылка: http://www.microsoft.com/sql/techinfo/administration/2000/rosetta.asp
Кто-то может дать ссылки на подобные документы от Oracle, IBM и т.д.? Очень хочется почитать...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32640749
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneSА что будет, если один и тот же блок понадобиться и в том и в другом инстансе? Как там насчет Interconnect?


Это shared-nothing. Координирующий агент запросит или даст указание агенту(ам) на другом на другом instance.

EugeneS
Informix говорите?
Это уже мертывй продукт. Я даже не считаю нужным его обсуждать.


Если бы он был мертвым то он не продавался и не выходили бы новые версии,
в конце года будет 9.5
Все бы мертвецы столько денег приносили....

EugeneS
Если вы так не считаете, то скажите зачем тогда IBM две СУБД?


Как сотрудник IBM могу только отослать вас к официальным документам на
http://www.software.ibm.com/data
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32640753
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот нарыл в документации:
Database Clustering Architectures: There are two primary database clustering architectures: shared-disk and shared-nothing. Shared-disk is used by Oracle RAC. DB2 for Linux employs shared-nothing.

In a shared-disk environment, each database node has its own processors but shares the disks with other nodes. Therefore all the processors can access all the disks in the cluster. This introduces additional overhead for coordinating resources and locks between nodes. For example if Node 1 wants to access data on a certain disk that has been locked for update by another node in the cluster, Node 1 must wait for other nodes to complete their operations. While this works well when there are few nodes in the cluster (e.g. mainframe environments), the overhead for distributed lock management and cache coherency issues can severely limit scalability and introduce performance degradation for 4 or more nodes, making it impractical to exploit economies of large clusters on Linux. Furthermore this approach involves specialized hardware and software for shared disk and cache management, making it a lot more expensive than shared-nothing.
Shared-nothing: As the name implies, partitions (nodes) in a shared-nothing environment do not share processors, memory or disks with partitions on other machines. Each partition acts on its own subset of data. Since each partition has its own private resources, this approach does not involve any resource contention with other servers, lending itself to virtually unlimited scalability. This is one reason DB2 for Linux can support up to 1000 partitions. And since there is no coordination overhead for accessing resources, additional machines can easily be added to the cluster with linearly scalable performance, which implies, if doubling of the data volume is matched by the doubling of the cluster resources, the high performance of the database will be maintained at the same level. If one partition in a cluster fails, its resources can dynamically be transferred to another machine, ensuring high availability. Another benefit of the shared nothing approach used by DB2 for Linux is that it does not require specialized hardware, making the solution a lot simpler, less expensive and suitable for Linux based "commodity" hardware.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
Oracle:

+ --------+    +--------+    +--------+   +--------+  
| Node  0  |    | Node  1  |    | Node  2  |   | Node  3  | 
+ ---+----+    +---+----+    +---+----+   +---+----+  
    |             |             |            |
    + -------------+------++-----+------------+ 
     ____________________||__________________
    <________________________________________>
    |                                        |
    |              Shared Storage            |
    |                                        |
    <________________________________________>


DB2:
              High Speed Interconnect

         + -------------+-------------+---------------------+ 
         |             |             |                     |     
    + ----+----+   +----+----+   +----+----+           +----+----+ 
    |Partition|   |Partition|   |Partition|           |Partition|
    |     0     |   |     1     |   |     2     |  .......  |    N    |
    + ----+----+   +----+----+   +----+----+           +----+----+ 
       __|__         __|__         __|__                 __|__   
      <_____>       <_____>       <_____>               <_____>  
      |     |       |     |       |     |               |     |  
      <_____>       <_____>       <_____>               <_____>  


Т.е. чтобы развернуть Оракловский кластер нужно специальное оборудование для реализации Shared Storage. А вроде для IBM кластера нужна куча персоналок + гигабитная связь между ними.


А от о чем говорил г-н Куликов

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
+ --------------------------------------+ 
| + ---------------+  +---------------+ | 
| |+ -----+ +-----+|  |+-----+ +-----+| | 
| || CPU | | CPU ||  || CPU | | CPU || |
| |+ -----+ +-----+|  |+-----+ +-----+| | 
| |+ -------------+|  |+-------------+| | 
| ||   Memory    ||  ||   Memory    || |
| ||             ||  ||             || |
| |+ -------------+|  |+-------------+| | 
| |+ -------------+|  |+-------------+| | 
| || Disks       ||  || Disks       || |
| || ______      ||  || ______      || |
| ||<______>     ||  ||<______>     || |
| ||<______>__   ||  ||<______>__   || |
| ||  <_______>  ||  ||  <_______>  || |
| ||  <_______>  ||  ||  <_______>  || |
| |+ -------------+|  |+-------------+| | 
| |  Partition  0   |  |  Partition  0   | |
| + ---------------+  +---------------+ | 
|              SMP Box  0                |
+ --------------------------------------+ 

Т.е. в SMP машине при большом количестве процессоров производительность
растёт нелинейно. Типа из-за борьбы за разделяемые ресурсы. А в этом случае
каждому разделу базы данных отводятся свои память, диски, процессоры.
Дескать рост производительности должен быть более линейным.
По идее поэкспериментировать с кластером DB2 - подешевле нежели с Ораклом. Все дело упрется в лицензию PDF (Database Partition Feture)
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32640764
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Розетта всё-таки не OLTP система... да и так это было, игрушка, типа "Могём"!
Насколько я понял там взяли действующую системку, часть (очень малую) функционала перелопатили под MS SQL и протестили на розеттовских данных. Поглядели - да, вроде получается. А так, чтобы серъезно... нету там такого... тем более что большая часть запросов там - безиндексные, на полные сканы таблиц...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32640819
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman
Т.е. чтобы развернуть Оракловский кластер нужно специальное оборудование для реализации Shared Storage. А вроде для IBM кластера нужна куча персоналок + гигабитная связь между ними.


Да это будет работать только HA в таком случае не очень. Кстати можно в использовать микс ОС. Одна нода на Sun, другая AIX третья HP-UX, четветая linux на pSeries (Linux и Windows/intel не получится так как big endian, small endian). Только опять проблемы с HA.

gardenman
Т.е. в SMP машине при большом количестве процессоров производительность
растёт нелинейно. Типа из-за борьбы за разделяемые ресурсы. А в этом случае
каждому разделу базы данных отводятся свои память, диски, процессоры.
Дескать рост производительности должен быть более линейным.

Не дескать, а на самом деле. Я беседовал с лабораторией они гоняли кучу тестов и 8 узлов в 32 процессорной машине на DWH workload производительнее на 15 и более %.
gardenman
По идее поэкспериментировать с кластером DB2 - подешевле нежели с Ораклом. Все дело упрется в лицензию PDF (Database Partition Feture)

Можно и на VMWARE все это настроить. Ты не говори про лицензию ты попробуй. За 90 дней обыгаться можно до потери сознания и пульса :)
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32640848
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanВот нарыл в документации:
Database Clustering Architectures: There are two primary database clustering architectures: shared-disk and shared-nothing. Shared-disk is used by Oracle RAC. DB2 for Linux employs shared-nothing.

In a shared-disk environment, each database node has its own processors but shares the disks with other nodes. Therefore all the processors can access all the disks in the cluster. This introduces additional overhead for coordinating resources and locks between nodes. For example if Node 1 wants to access data on a certain disk that has been locked for update by another node in the cluster, Node 1 must wait for other nodes to complete their operations. While this works well when there are few nodes in the cluster (e.g. mainframe environments), the overhead for distributed lock management and cache coherency issues can severely limit scalability and introduce performance degradation for 4 or more nodes, making it impractical to exploit economies of large clusters on Linux. Furthermore this approach involves specialized hardware and software for shared disk and cache management, making it a lot more expensive than shared-nothing.
Shared-nothing: As the name implies, partitions (nodes) in a shared-nothing environment do not share processors, memory or disks with partitions on other machines. Each partition acts on its own subset of data. Since each partition has its own private resources, this approach does not involve any resource contention with other servers, lending itself to virtually unlimited scalability. This is one reason DB2 for Linux can support up to 1000 partitions. And since there is no coordination overhead for accessing resources, additional machines can easily be added to the cluster with linearly scalable performance, which implies, if doubling of the data volume is matched by the doubling of the cluster resources, the high performance of the database will be maintained at the same level. If one partition in a cluster fails, its resources can dynamically be transferred to another machine, ensuring high availability. Another benefit of the shared nothing approach used by DB2 for Linux is that it does not require specialized hardware, making the solution a lot simpler, less expensive and suitable for Linux based "commodity" hardware.
По этому поводу есть оччень интересный документ - сравнение архитектур scale up vs. scale out : http://www.unisys.com/eprise/main/admin/corporate/doc/scale_up.pdf
Там, правда, рассматривается MSSQL. Хотелось бы услышать (а лучше прочитать) нечто подобное по поводу СУБД от IBM...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32640884
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneS

Nikolay Kulikov
Ну как же офис уже открыли.
А по поводу 32-bit и АWE. Зачем если можно без этого.
Предположим имеем машину 4 процессора 16GB памяти. Запускаем 4 Instance DB2/Informix XPS каждый instance берет свои 4GB и обслуживает свою часть БД. Без всяких AWE.


А что будет, если один и тот же блок понадобиться и в том и в другом инстансе? Как там насчет Interconnect?


Что вы подразумеваете по Interconnect?
Логически транзакции и таблицы у серверов общие.


[/quot]
Informix говорите?
Это уже мертывй продукт. Я даже не считаю нужным его обсуждать.
Если вы так не считаете, то скажите зачем тогда IBM две СУБД?[/quot]

Технологии Informix живут и будут жить в продуктах IBM, как эти
продукты будут называться - вопрос десятый.
От том что сам IBM думает по поводу этих технологий есть любопытный документ:
http://] http://www.snt.com.ru/upload/images/downloads/unallocated/informix_white_paper.pdf

По моим данным выход IDS 9.5 выходит в конце этого года.
Сейчас IBM развивает и поддерживает продукты Informix не хуже, чем это делалось до приобретения.

С уважением onstat-.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641105
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IBM говоря о преимуществах shared nothing правда забыл упомянуть о том, как пользователь может работать с данными, находящимися на разных нодах. Как балансировать нагрузку с ростом данных равномерно по срезу кластеров, учитывая общеизвестный принцип Паретто 20/80. Если данные шарятся между кластерами, то как их синхронизировать.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641124
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Kulikov
>>Ты не говори про лицензию ты попробуй. За 90 дней обыгаться можно до потери сознания и пульса :)

Дадут шанс - обязательно попробую. Потому как очень интересно.:)
Во всяком случае поучиться настраиваить подобную систему очень хочу.

Кстати, для всех - DB2 самая легко настраиваемая система. *Это мой субъективный взгляд конешно*

2 Сергей Тихонов.
Просмотрел указанную Вами ссылочку.

With Microsoft SQL Server 2000, scale out is generally accomplished via clustered architectures. In a clustered database architecture, multiple autonomous systems, each containing a copy of the operating system and a copy of the database engine, share a single copy of the database. The multiple copies of the database and operating system coordinate with one another but are controlled separately. This arrangement is generally referred to as a "loose coupling" of the operating systems.

В статье все-же написано что Sharing Nothing - теоретически д.б. более линейно масштабируемой системой.
Из статьи я также понял, что механизмы кластеризации в Windows реализованы для общего случая, а не конкретно под SQL Server, и
и следовательно такое решение не будет столь же хорошо масштабирроваться как для MPP архитектуры, которую предлагают IBM,Sybase,Nonstop SQL.
может именно поэтому в конце статьи дается совет - scale up (нарастить один сервер) прежде чем scale out (делать кластер).

Наверно все дело в реализации.
Основной довод в пользу scale up - кластер работает со скоростью самого медленного узла. Ну что тут сказать?... Правильной балансировкой нагрузки должен заниматься администратор БД.


Искать нечто подобное этой статье и именно от IBM...не возьмусь...)))
Разве что предложу посмотреть эту ссылочку:
http://www-306.ibm.com/software/data/db2/udb/support/manualsNLVv8.html#ru_main
- руководство администратора
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641159
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2killed: Что ты подразумеваешь под синхронизацией в данном случае, пример если не сложно.

P.S. У IBM есть Shared-Disk. Db2 on zSeries, блокировка и контроль конкурентного доступа к ресурсам на аппаратном уровне.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641181
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanНаверно все дело в реализации.
Основной довод в пользу scale up - кластер работает со скоростью самого медленного узла. Ну что тут сказать?... Правильной балансировкой нагрузки должен заниматься администратор БД.
Нет, думаю - смысл не в этом. Смысл в том, что БД легче масштабируются при архитектуре scale up. Дело все в том (помимо прочего), что межсерверные соединения гораздо медленнее, чем внутрисерверные шины. С учетом накладных расходов на обмен данными между узлами, получаем результат :-\\. Об этом, кстати, писали недавно в одном из номеров журнала "Byte Россия"...

ЗЫ
В том же BOL для MSSQL говорится, что роутинг запросов должны организовывать разработчики. Потому как даже если у нас распределенное секционированное представление и СУБД будет обрабатывать только нужные таблицы на нужном сервере, "прокачка" данных через узел, на который пришел запрос, негативно влияет на производительность...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641205
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanВ статье все-же написано что Sharing Nothing - теоретически д.б. более линейно масштабируемой системой.Нет, в статье говорится, что единственный плюс scale out - неограниченная возможность наращивать ресурсы системы. И это все при куче всяких но: администрирование, управление, обслуживание и т.д.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641234
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>>С учетом накладных расходов на обмен данными между узлами, получаем результат

Так по-моему в том и состоит суть архитектуры MPP чтобы сократить такую прокачку до минимума. В идеале на каждом узле д.б. обработаны только свои данные. Причем резутьтат - это не только SELECT, но и INSERT/UPDATE/DELETE.
Это называется межраздельным пареллелизмом.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641276
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Говорить что сейчас основной тормоз в ХД это сеть.
На данный момент не совсем корректно.

Сеть 1GBit это примерно 80МB в секунду с издержками.
Диск это примерно 5МБ в секунду

То бишь если мы копируем какой-нибудь большой файл по сети нам нужно примерно 16 дисков что-бы забить сеть.

В БД конечно все не так, у нас есть кэш и все такое и диски нужно читать реже, но
Это работает пока объем БД сравним с объемом ОЗУ. Когда у нас начинаются хранилища данных и ОЗУ/объем ХД примерно 10%, то ....
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641293
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay KulikovГоворить что сейчас основной тормоз в ХД это сеть.
На данный момент не совсем корректно.

Сеть 1GBit это примерно 80МB в секунду с издержками.
Диск это примерно 5МБ в секунду

То бишь если мы копируем какой-нибудь большой файл по сети нам нужно примерно 16 дисков что-бы забить сеть.

В БД конечно все не так, у нас есть кэш и все такое и диски нужно читать реже, но
Это работает пока объем БД сравним с объемом ОЗУ. Когда у нас начинаются хранилища данных и ОЗУ/объем ХД примерно 10%, то ....
ИМХО, сравнение слегка некорректное. Потому как большие БД - это не 1 диск в 5МБ в секунду, это дисковый массив(ы) - обычно RAID10 со страйпом... Если взять, скажем, Hitachi Data Storage, там канал между стойкой и сервером порядка 2Gbit , так что...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641305
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Сергей Тихонов: Если у тебя в крутом хитачи будет 4 диска (я утрирую) ты не сможешь из них выжать 80 МБ в сек :)
Данные читаются с диска, а не со Storage. И опять же в Shared-Nothing тебе не надо всю "терабайтную таблицу" гонять по сети.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641314
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay Kulikov2killed: Что ты подразумеваешь под синхронизацией в данном случае, пример если не сложно.

P.S. У IBM есть Shared-Disk. Db2 on zSeries, блокировка и контроль конкурентного доступа к ресурсам на аппаратном уровне.

Возможно, я не совсем правильно выразился. Попробую обьяснить свою мысль. Если в архитектуре shared nothing каждый нод хранит лишь свои собственные данные, то синхронизации данных между нодами не нужна. Но в любом случае неизбежны проблемы с балансировкой нагрузки. Администратора не будем рассматривать. Для серьезных продакшн систем, пытаться балансировать данные между нодами вручную - самоубийство. Остается как я понимаю один путь. Увеличивать кластер в тех нодах, которые выпадают по нагрузке. Фактически - это "деление пополам".

Если данные по нодам пересекаются (если это позволяет архитектура), то межнодовая синхронизация нужна. Это с точки зрения здравого смысла. Но как это делается - не знаю. С шаред-нафинг не работал, поэтому могу ошибаться.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641327
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а откуда цифра 5Мб/сек ?

Диск выдает 20-40Мб/сек. Страйпингом поднимаем еще выше. Согласен с Тихоновым, что сейчас альтернативы SAN нету, тем более если речь о хранилище в террабайт
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641337
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
5Мб считал по характеристикам первого попавшегося диска, может где и ошибся.
Я не говорю что SAN это плохо я говорю что сеть не всегда узкое место и не все так однозначно при оптимизации.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641352
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay Kulikov2Сергей Тихонов: Если у тебя в крутом хитачи будет 4 диска (я утрирую) ты не сможешь из них выжать 80 МБ в сек :)
Данные читаются с диска, а не со Storage. И опять же в Shared-Nothing тебе не надо всю "терабайтную таблицу" гонять по сети.Простой пример: если у нас есть 2 таблицы, одна из которых разделена на секции и лежит на разных хостах, и вторая, которая достаточно большая и не может быть по своей природе секционирована (мы можем ее реплицировать если ее объем в пределах разумного, но смысл не меняется): при джоине этих 2 таблиц (запрос запускается на любом из узлов) мы неизбежно имеем ситуацию, когда порция данных должна быть передана с узла на узел (ведь необязательно критерии по секционированной таблице "впишутся" в 1 узел). И даже если оптимизатор правильно определил, откуда и куда лучше это сделать, мы все равно имеем межузловую передачу данных :-\\.
А по поводу скорости дисковой подсистемы - я уже ответил... 2Gbit - это больше, чем 1Gbit Ethernet ;-)) ...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641354
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killedа откуда цифра 5Мб/сек ?

Диск выдает 20-40Мб/сек. Страйпингом поднимаем еще выше. Согласен с Тихоновым, что сейчас альтернативы SAN нету, тем более если речь о хранилище в террабайт

На полном сканировании таблиц да.
На индексном поиске вы страйпингом никогда не поднимите
реальную скорость обмена.

Вопрос в том, что храним? и как ищем? Универсального варианта нет.

С уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641368
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killed
Возможно, я не совсем правильно выразился. Попробую обьяснить свою мысль. Если в архитектуре shared nothing каждый нод хранит лишь свои собственные данные, то синхронизации данных между нодами не нужна. Но в любом случае неизбежны проблемы с балансировкой нагрузки. Администратора не будем рассматривать. Для серьезных продакшн систем, пытаться балансировать данные между нодами вручную - самоубийство. Остается как я понимаю один путь. Увеличивать кластер в тех нодах, которые выпадают по нагрузке. Фактически - это "деление пополам".

Если данные по нодам пересекаются (если это позволяет архитектура), то межнодовая синхронизация нужна. Это с точки зрения здравого смысла. Но как это делается - не знаю. С шаред-нафинг не работал, поэтому могу ошибаться.


Я тоже доконца не понимаю твою точку зрения, но несколько мыслей вслух.
Строки таблицы распределяются по узлам по hash ключу, т.е мы имеем примерно одинаковое количество таблицы на каждой ноде.
Если у нас у двух таблиц одинаковый hash key то join происходит в пределах одной ноды и результаты отправляются на координирующую ноду.

Когда может потребоваться синхронизация - например у нас огромная таблица и куча мелких справочников. Справочники можно сделать (replicated) что бы их не таскать постоянно по сети на все узлы.

P.S. Я знаю одного западноевропейского оператора у него хранилище на DB2 EEE 70Тб дисков, если найду официальную информацию кину ссылку. Продакшн в полный рост.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641392
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Сергей Тихонов: Пример хороший только давай уточнять. Что за такая природа что таблицу нельзя разбить?? И насколько критичен запрос что эту таблицу не держать на каждом узле??? Тут как всегда срабатывает принцип
nothing new, nothing free, no magic
P.S. Давай рассмотрим на конкретном примере, иначе мы перейдем к задаче о сферическом коне в вакууме.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641468
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay Kulikov2Сергей Тихонов: Пример хороший только давай уточнять. Что за такая природа что таблицу нельзя разбить?? И насколько критичен запрос что эту таблицу не держать на каждом узле??? Тут как всегда срабатывает принцип
nothing new, nothing free, no magic
P.S. Давай рассмотрим на конкретном примере, иначе мы перейдем к задаче о сферическом коне в вакууме.Я хотел сказать о том, что при любом секционировании вполне вероятна (и реальна) ситуация, когда в результате запроса нам нужно будет объединить (join) данные c нескольких узлов. И даже в случае оптимального решения СУБД и выбора правильного узла (с точки зрения быстродействия) мы имеем ситуацию, когда данные будут пересылаться с узла на узел для окончательной обработки...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641495
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да ты прав. Пересылать придется. Но не терабайт же :)
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641567
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, не терабайты. Все зависит, конечно, от предметной области, разработчиков БД, самой СУБД. Но ситуация с бутылочным горлышком в виде межсерверных соединений - вполне реальна :-\\...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641735
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat- killedа откуда цифра 5Мб/сек ?

Диск выдает 20-40Мб/сек. Страйпингом поднимаем еще выше. Согласен с Тихоновым, что сейчас альтернативы SAN нету, тем более если речь о хранилище в террабайт

На полном сканировании таблиц да.
На индексном поиске вы страйпингом никогда не поднимите
реальную скорость обмена.

Вопрос в том, что храним? и как ищем? Универсального варианта нет.

С уважением, onstat-

Для хранилища я бы пытался оптимизировать мультиблочные операции чтения (сканирование таблиц и др.) в первую очередь. Кстати страйпинг полезен и для чистого OLTP где 100% - индексный доступ
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641739
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay Kulikov

Я тоже доконца не понимаю твою точку зрения, но несколько мыслей вслух.
Строки таблицы распределяются по узлам по hash ключу, т.е мы имеем примерно одинаковое количество таблицы на каждой ноде.
Если у нас у двух таблиц одинаковый hash key то join происходит в пределах одной ноды и результаты отправляются на координирующую ноду.

Когда может потребоваться синхронизация - например у нас огромная таблица и куча мелких справочников. Справочники можно сделать (replicated) что бы их не таскать постоянно по сети на все узлы.

P.S. Я знаю одного западноевропейского оператора у него хранилище на DB2 EEE 70Тб дисков, если найду официальную информацию кину ссылку. Продакшн в полный рост.

Этот hash ключ учитывает hot spots на этой партиц. таблице? Если нет, то получаем неравномерную нагрузку. Еще момент, если необходимо добавить дополнительный узел в кластер, то для сохранения равномерного распределения данных по *всем* узлам кластера нужно заново "размазать" эту таблицу?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32641776
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто-то может дать ссылку, где почитать про Oracle RAC , каким образом, допустим, тяжелые запросы распараллеливаются между узлами кластера и т.п.?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32642152
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killed
Для хранилища я бы пытался оптимизировать мультиблочные операции чтения (сканирование таблиц и др.) в первую очередь. Кстати страйпинг полезен и для чистого OLTP где 100% - индексный доступ


Может быть, но зависит это от размера блока вашей базы,
количества дисков в массиве и размера страйпа.
в лушчем случае (при минимальном размере страйпа) вы получите туже производительность что и на просто диске или RAID1.

Во вторых а как быть с распаралеливанием ввода вывода, о котором мы говорили несколько постов назад. Мне неизвесны контролеры которые
могут выполнять паралельно операции ввода вывода в пределах одного массива. Будь то RAID5 RAID10 или RAID1.
Тоесть то что база данных пытается паралелить по вводу выводу
Ваш RAID сводит на нет(потому что очередь на операции ВВ в масиве одна).

Я думаю этих аргументов пока достаточно.

Я не имел ввиду индекснй поиск по блобам.

Одноpначно для OLTP многопользовательской базы 10 x RAID1 всегда быстрее
одного 1 x RAID10.

с уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32642163
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ТихоновА кто-то может дать ссылку, где почитать про Oracle RAC , каким образом, допустим, тяжелые запросы распараллеливаются между узлами кластера и т.п.?

Oracle9i Real Application Clusters Concepts
Release 2 (9.2)
Part Number A96597-01

4. Scalability in Real Application Clusters

Data Warehouse Systems and Real Application Clusters
Data warehouse systems perform well on Real Application Clusters because applications with low update activity can access the database through different instances without additional overhead. If the data blocks are not modified, then multiple instances can read the same blocks into their buffer caches and perform queries on the blocks without additional I/O. Data warehouse systems usually benefit from scale up and may experience speed up as well.

Oracle Parallel Execution in Real Application Clusters
Real Application Clusters provides the framework for parallel execution. Parallel execution performs efficiently in Real Application Clusters because it can distribute portions of a large SQL statement across multiple instances. The transaction is completed more quickly because it executes on multiple CPUs.

In Real Application Clusters, Oracle determines at runtime whether it will run parallel execution server processes on only one instance, or whether it will run processes on multiple instances. In general, Oracle tries to use only one instance when sufficient resources are available. This reduces cross-instance message traffic.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32642184
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-
Технологии Informix живут и будут жить в продуктах IBM, как эти
продукты будут называться - вопрос десятый.
От том что сам IBM думает по поводу этих технологий есть любопытный документ:
http://] http://www.snt.com.ru/upload/images/downloads/unallocated/informix_white_paper.pdf

По моим данным выход IDS 9.5 выходит в конце этого года.
Сейчас IBM развивает и поддерживает продукты Informix не хуже, чем это делалось до приобретения.

С уважением onstat-.


Я, cнимаю шляпу перед IBM и низко кланяюсь им за подежку "умирающих продуктов" и выход новых версий никак не противоречит сказаному мной.
А именно вспомните OS/2 IBM подерживала ее много лет и выпускала новые версии, но это не было развитие. Это лишь переиод времени( не спорю очень долгий ) в течении которого заказчики медленно переползут на что-то еще.
Они могут вообще не переползать, ведь не секртет, что деньги IBM делает на консалтинге.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32642190
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги,
ну какого черта вы прицепились к кластерам.
У них, что стоимость, что затраты на сопровождение высокие и самое главное
я ни у кого высоких результатов не видел.
Ну ладно на OLTP и DSS отдельно, но чтобы на смешанных системах это из области фантастики.
Я считаю что следует в нашем случае рассматривать системы c архитектурой SMP, NUMA.
Кроме того давайте определимсяся с цифрами , что такое VLDB.
1. Какой объем ?
2. Сколько OLTP cессий?
3. Сколькл DSS сессий?
После этого можно идти дальше.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32642222
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дискуссия становится интересной. Задам вопросик параллельно с темой, особенно хотелось бы услышать мнение onstat. Есть БД, размер страницы 2к. Есть RAID 10 (по пять винтов на канале). ОС - Windows 2000AS. Какой размер страйпа будет предпочтительней - 4k, 16k, 32k, 64k? Как в этом случае нужно учитывать или выставлять размер кластера на NTFS. Режим работы БД - смешанный, но тюнить надо под OLTP. У меня есть возможность поэкспериментировать. Есть мысль - размер страйпа 4к (был 32), размер кластера по умолчанию оставить 4к.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32642229
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneSOracle9i Real Application Clusters Concepts
Release 2 (9.2)
Part Number A96597-01

4. Scalability in Real Application Clusters
Спасибо за инфо. А можно ссылку на документ или в почту сюда киньте. Хочется поподробнее почитать. Заранее спасибо :-).
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32642231
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Во вторых а как быть с распаралеливанием ввода вывода, о котором мы говорили несколько постов назад. Мне неизвесны контролеры которые
могут выполнять паралельно операции ввода вывода в пределах одного массива. Будь то RAID5 RAID10 или RAID1.
Тоесть то что база данных пытается паралелить по вводу выводу
Ваш RAID сводит на нет(потому что очередь на операции ВВ в масиве одна).

Я думаю этих аргументов пока достаточно.

Я не имел ввиду индекснй поиск по блобам.

Одноpначно для OLTP многопользовательской базы 10 x RAID1 всегда быстрее
одного 1 x RAID10.

с уважением, onstat-


1. Про контроллеры и распараллеливание.
Для того чтобы нормально восспользоваться функцией распараллеливания надо выполнить несколько условий
- число параллельных процессов равно числу процессоров.
- число параллельных процессов равно числу дисковых volume и в свою очередь равно числу дисковых контроллеров.
- на каждом дисковом контроллере в свою очерель строится RAID10 ( в случае если используетя интесивная запись или RAID5 ). Это на сегодня самые распространненые уровни RAID. В случае если у вас есть RAID3 то можно его использовать для чтения , он лучше подходит для последовательного чтения , а RAID5 лучше для случайного чтения.

2. авторОдноpначно для OLTP многопользовательской базы 10 x RAID1 всегда быстрее
одного 1 x RAID10.
Откуда такое утверждение?
Вы сами то рельно пробовали такую конфигурациию?
Наверно нет.
Дело втом что заниматься балансировкой файлов по дисковым разделам очень не благодарное дело.
А кроме того RAID10 имеет одно очень полезное свойство.
При выходе диска из строя производительность практически не падает , чего я не скажу скжаем о RAID 5.

Например RAID10 на 12x72GB на железке типа HP DL380 c контроллером SA6404 на двух каналах дает примерно 150МБ на запись и примерно 100-120
на чтение.

Если очень интерестно почему.
http://otn.oracle.com/deploy/performance/pdf/opt_storage_conf.pdf
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32642234
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneS
Кроме того давайте определимсяся с цифрами , что такое VLDB

Тут скорее нужно по другому пути пойти: для какой платформы какая нагрузка будет считаться предельной.
Хотябы так:
(Количество процессоров, количество (и тип) дисковой подсистемы, RAM)=>(Размер БД в гигах, Кол-во сессий, кол-во OLTP транзакций, кол-во DSS запросов, кол-во записей в самой большой таблице)
Может кто еще критерии предложит?...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32642238
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов EugeneSOracle9i Real Application Clusters Concepts
Release 2 (9.2)
Part Number A96597-01

4. Scalability in Real Application Clusters
Спасибо за инфо. А можно ссылку на документ или в почту сюда киньте. Хочется поподробнее почитать. Заранее спасибо :-).

авторhttp://download-west.oracle.com/docs/cd/B10501_01/rac.920/a96597/psscadtl.htm#1798
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32642252
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ggg_old
Дискуссия становится интересной. Задам вопросик параллельно с темой, особенно хотелось бы услышать мнение onstat. Есть БД, размер страницы 2к. Есть RAID 10 (по пять винтов на канале). ОС - Windows 2000AS. Какой размер страйпа будет предпочтительней - 4k, 16k, 32k, 64k? Как в этом случае нужно учитывать или выставлять размер кластера на NTFS. Режим работы БД - смешанный, но тюнить надо под OLTP. У меня есть возможность поэкспериментировать. Есть мысль - размер страйпа 4к (был 32), размер кластера по умолчанию оставить 4к.

Самый лучший вариант максимальный размер страйпа.
Далеет размер кластера должен быть равен размеру страницы БД.
Размер страйпа должен быть кратен размеру кластера и размеру блокак БД.
Если есть возможность размер страйпа бложен быть равен размеру IO ОС.
Я когда-то слышал что для Win это 1МБ.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32642315
Фотография Ggg_old
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Eugene_S
Мне не очень понятно почему, размер страйпа должен быть как можно больше?
Если БД запрашивает страницу 2к, ОС читает кластер в 4к (типа примитивного read ahead), контроллер читает страйп блок - 32к, а винты читают в свой кэш даже не знаю сколько (все зависит от винтов). Теретически - лишние файловые операции. Практически - эти операции хорошо влияют на чтение последовательных блоков, но здесь все очень зависит от БД и характера ее запросов. А если данные итаются с разных не рядом стоящих блоков, то надо вроде делать наоборот - читать поменьше. Но это конечно все пока теоретические измышления...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32642438
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ggg_old2 Eugene_S
Мне не очень понятно почему, размер страйпа должен быть как можно больше?
Если БД запрашивает страницу 2к, ОС читает кластер в 4к (типа примитивного read ahead), контроллер читает страйп блок - 32к, а винты читают в свой кэш даже не знаю сколько (все зависит от винтов). Теретически - лишние файловые операции. Практически - эти операции хорошо влияют на чтение последовательных блоков, но здесь все очень зависит от БД и характера ее запросов. А если данные итаются с разных не рядом стоящих блоков, то надо вроде делать наоборот - читать поменьше. Но это конечно все пока теоретические измышления...

Насчет страйпа.
Я давал ссылку там выше. В ней все сказано.
Основная идея в том что позиционирование головки диска по времени больше чем время чтения дорожки, а учитывая большой размер кэша вероятность того что эта дорожка будет еще в кэше выше при большом размере кэша..


Вы не правы.
Серверный процесс запрашивает операцию чтения-записи у ОС.
Ядро ОС никогда не выполняет чтение одного блока, а всегда читает с учетом опережающего чтения за исключение случая прямого чтения из дискогово раздела мимо кэша ОС но это отдельная песня.
Значит на каждый запрос на чтение блока размером 2к или 32к со стороны СУБД ядро ОС будет выполнять чтение 1МБ.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32642551
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Размер страйпа не должен быть равен странице БД. Он должен быть кратен extent'y DB, или наорот... Я приболел. Выйду на работу кину пару моментов по этому поводу.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32642682
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу размера страйпа
есть такая работа "Maximizing Performance in a Striped Disk Array" , Peter M. Chen ,David A. Patterson.
Там рассматривается вопрос определения оптимального размера страйпа для систем с разным количество одновременных обращений и разными объемам среднего ситаемого блока данных.
Там приведена зависимость примерно следующего вида: при увеличении размера страйпа при малом количестве пропускная способность падает и наоборот.
Более того, там указан оптимальный размер страйпа "на все случаи жизни" - 128к.
правда, работа достаточно старая, но можно проверить цифирки...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643265
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь про TERADATA.
Коллеги,
давайте будем реалистами.
Кто-нибудь работал с TERADATA?

Да.

На просторах бывшего CНГ есть представительство этой компании?

Да, компания называется NCR. Офис в Москве существует уже более 10 лет.
Teradata - это подразделение компании NCR.

Кто-нибудь с ней работал?

Да.

А теперь ключевой вопрос,
Вы верите в "чудо", что малоиспользуемый продукт вдруг окажется тем что именно вам надо?

По используемости для хранилищ данных больших объёмов - это №1. Это факт. Можно и не верить, если хотите проверить, могу предложить свою помощь.

Сомневаюсь однако.

Задавайте вопросы. Попробуем развеять Ваши сомнения.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643281
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оп ля!
Ну если так и все это будет крутиться на одной железке, то того возникает вопрос "Управления ресурсами СУБД".
Для чего имеется Resource Manager в СУБД Oracle.

Пока из-того, что я знаю о конкурентах такой функциональности нет.

В СУБД Teradata то называется Teradata Priority Scheduler (почитать про него можно в документе Introduction to Teradata's Priority Scheduler ). Существовал с самого начала СУБД Teradata (то есть уже около 20 лет).



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643320
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что будет, если один и тот же блок понадобиться и в том и в другом инстансе? Как там насчет Interconnect?

Если данные, хранящиеся на одном узле нужны на другом (чаще на нескольких других узлах), то происходит перераспределение данных между узлами. Перераспределение данных между узлами чаще всего требуется при проведении операций соединения таблиц. Для этого, действительно, используется Interconnect.

В СУБД Teradata он называется BYNET. Его пропускная способность составляет до 752 мегабайт в секунду на один узел. BYNET является не шиной, а коммутатором, способным передавать данные по протоколу узел-узел или узел-все остальные узлы (broadcast). Соответственно, добавление каждого нового узла в систему приводит к приросту общей пропускной способности системы на 752 мегабайт в секундую Умножьте на количество узлов, которое теоретически поддерживает Teradata (в данный момент - это 512 узлов, таких больших систем в мире нет, самая большая имеет около 300 узлов) - получите теоретическую пропускную способность BYNET. Получается довольно большая цифирь. Соответственно, BYNET не является узким местом в системе.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643349
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов... Дело все в том (помимо прочего), что межсерверные соединения гораздо медленнее, чем внутрисерверные шины. С учетом накладных расходов на обмен данными между узлами, получаем результат :-\\. Об этом, кстати, писали недавно в одном из номеров журнала "Byte Россия"...

А можно ссылочку?


Сергей ТихоновВ том же BOL для MSSQL говорится, что роутинг запросов должны организовывать разработчики. Потому как даже если у нас распределенное секционированное представление и СУБД будет обрабатывать только нужные таблицы на нужном сервере, "прокачка" данных через узел, на который пришел запрос, негативно влияет на производительность...


Проблема решается унификацией производительности узлов и высокоскоростным коммутатором. Система сама должна распределять нагрузку. Разработчики должны пить пиво пока система сама всё делает.



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643374
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, в статье говорится, что единственный плюс scale out - неограниченная возможность наращивать ресурсы системы. И это все при куче всяких но: администрирование, управление, обслуживание и т.д.

Из статьи я понял, что решение shared nothing от Microsoft ещё пока очень слабое. Отсутствие автоматического распределения нагрузки - первый сигнал того, что надо засомневаться в его работоспособности. Действительно, кроме scale out они ничего не предлагают.

Кстати, в статье не увидел ничего про speed up - возможность повышения скорости выполнения запросов путём добавления новых узлов. Есть небольшая глава про Response time, из которой неясно, возможно ли это в случае MS SQL.


В результате знакомства со "слегка недоделанным" решением от Microsoft у читателя создаётся неверное представление о возможностях архитектуры shared nothing в принципе.
Рекмендую поближе познакомиться с тем, как это выглядит в СУБД Teradata. Это снимет Ваши сомнения в возможностях shared nothing (или MPP).



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643382
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийА можно ссылочку?
Запросто: Вертикальное и горизонтальное масштабирование систем

Если честно, про BYNET ничего не понял :-\\... Каким образом добавление узла увеличивает пропускную способность? Где почитать можно?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643384
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenmanТак по-моему в том и состоит суть архитектуры MPP чтобы сократить такую прокачку до минимума. В идеале на каждом узле д.б. обработаны только свои данные. Причем резутьтат - это не только SELECT, но и INSERT/UPDATE/DELETE.
Это называется межраздельным пареллелизмом.

В принципе, так, но эту прокачку не так легко свести до минимума. Операции JOIN всё "портят". Если данные, которые надо соединять, находятся на разных узлах, то их перераспределение неизбежно.
Естественно, это решается. Например, в СУБД Teradata для этого существуют hash-индексы, которые, фактически создают альтернативное перераспределение таблиц с тем, чтобы данные (точнее, индексы) соединяемых таблиц находились на одном узле. join-индексы являются аналогом materialized view и служат для материализации соединений. Ну, и, естественно, правильное аппаратное решение - коммутатор BYNET, способный быстро передавать данные между узлами, если это, всё-таки, необходимо.

С INSEERT проще - там не надо перераспределять данные между узлами, только вставка. UPDATE тоже может привести к переносу записи на другой узел. Единственный способ борьбы - скоростной коммутатор.
DELETE не требует перераспределения данных.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643392
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killedВозможно, я не совсем правильно выразился. Попробую обьяснить свою мысль. Если в архитектуре shared nothing каждый нод хранит лишь свои собственные данные, то синхронизации данных между нодами не нужна. Но в любом случае неизбежны проблемы с балансировкой нагрузки.

Эти проблемы решаются с помощью равномерного распределения данных между узлами. Наиболее продвинутый алгоритм - это хэширование.
Он используется в DB2 и в Teradata. Соответственно, критическое решение, которое сильно влияет на производительность - это выбор столбца (или нескольких столбцов) таблицы, по которым будет осуществляться хэширование для "размазывания" таблицы по узлам.
Поскольку алгоритм хэширования работает автоматически и (как правило) не зависит от администраторов, можно говорить об автоматическом рапределении нагрузки. Другие алгоритмы партишионинга срабатывают не так хорошо, как хэширование. Некоторые из них быстрее для определённых классов запросов, но в целом показывают себя не так хорошо.


killedАдминистратора не будем рассматривать. Для серьезных продакшн систем, пытаться балансировать данные между нодами вручную - самоубийство.

Согласен на 100%.

killedОстается как я понимаю один путь. Увеличивать кластер в тех нодах, которые выпадают по нагрузке. Фактически - это "деление пополам".

Как я уже сказал выше - лучший способ - равномерное распределение данных.
ИМХО.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643421
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneS

1. Про контроллеры и распараллеливание.
Для того чтобы нормально восспользоваться функцией распараллеливания надо выполнить несколько условий
- число параллельных процессов равно числу процессоров.


Не обязательно, бывают спящие процессы.

EugeneS

- число параллельных процессов равно числу дисковых volume и в свою очередь равно числу дисковых контроллеров.


Тоже не обязательно, один контроллер может держать несколько томов.
IHMO Оптимально 3-5 шт.

EugeneS

- на каждом дисковом контроллере в свою очерель строится RAID10 ( в случае если используетя интесивная запись или RAID5 ). Это на сегодня самые распространненые уровни RAID. В случае если у вас есть RAID3 то можно его использовать для чтения , он лучше подходит для последовательного чтения , а RAID5 лучше для случайного чтения.



Я RAID3 & RAID5 не счтаю достойным к рассмотрению в случае работы с OLTP системами. На них можно хранить фильмы или делать бэкапы.


EugeneS

Откуда такое утверждение?
Вы сами то рельно пробовали такую конфигурациию?
Наверно нет.



Да. пробовал.

EugeneS
Дело втом что заниматься балансировкой файлов по дисковым разделам очень
не благодарное дело.

А кроме того RAID10 имеет одно очень полезное свойство.
При выходе диска из строя производительность практически не падает , чего я не скажу скжаем о RAID 5.


Нужно заниваться не балансировкой файлов, а балансировкой нагрузки на ввод вывод между томами. И возможность этого тюнинга предвидеть заранее.
Я неисползую RAID5 для баз данных и не планирую.

EugeneS
Например RAID10 на 12x72GB на железке типа HP DL380 c контроллером SA6404 на двух каналах дает примерно 150МБ на запись и примерно 100-120
на чтение.


Я не верю в то что это работала база данных.
Или в это время производились полные сканирования таблиц.


Результаты того что пробовал я:

IBM FASTT 600 (12х HDD FC 146 Gb)
Обьем базы данных 500 Gb, самая большая таблица ~230 млн записей.
в 8 таблицах больше 100 млн записей.

Объем кеша контроллеров(2шт) 512Mb.
База данных Informix DS 9.4 OS Linux RH 7.2 ядро 2.6.5
Сервер (Какой был под руками) 2хIntel PIII 1GHz 1 Gb Ram

Пробовали размер страйпа 128К.
На построении индексов коэфициент использования кеша контролера 100%
Считай полное сканирование таблиц.
Пиковая скорость 80М/с
Работа OLTP приложения(100 % индкесный поиск), 8 пользовательских сесий.
Кеш контроллера используется на 3-5 %.
Пиковая скорость 10М/с
При уменьшении страйпа до 8К использование кеша контролера повысилось до 30%.
Пиковая скорость 30 M/c
Общая производительность поднялась ~30-40%.
система была не совсем оптимальна, серверу явно не хватало ОЗУ и
быстродействия процессоров. Но какой был на таком и тестили целью было проверить fastt.


EugeneS

Если очень интерестно почему.
http://otn.oracle.com/deploy/performance/pdf/opt_storage_conf.pdf



Там описано то о чем я говорю на этом форме.
То есть ко всему нужно подходить взвешенно. Нет одного рецепта на все случаи жизни.
ihmo Что бы выжать из конфигурации все нужно учитывать каждуюю деталь.
Так как это делают в Формуле 1.

EugeneS

Самый лучший вариант максимальный размер страйпа.
Далеет размер кластера должен быть равен размеру страницы БД.
Размер страйпа должен быть кратен размеру кластера и размеру блокак БД.
Если есть возможность размер страйпа бложен быть равен размеру IO ОС.
Я когда-то слышал что для Win это 1МБ.



Почему вы не правы по поводу размера страйпа я повторяться не буду посмотрите мое сообщение в этой ветке.
http://www.sql.ru/forum/actualthread.aspx?tid=111586

А что такое размер IO OC? или я отстал отжизни :).

Если это то о чем я думаю, то дальше наверное будем говорить о DMA.

С уважением, onstat-


ps Прошу прощения за задержку, запарка на работе.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643424
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killedЭтот hash ключ учитывает hot spots на этой партиц. таблице? Если нет, то получаем неравномерную нагрузку. Еще момент, если необходимо добавить дополнительный узел в кластер, то для сохранения равномерного распределения данных по *всем* узлам кластера нужно заново "размазать" эту таблицу?


На то он и hash-алгоритм, чтобы уметь раскидать близкие значения аргументов на далеко удалённые значения хэш-функции. Соответственно, hash-функция сглаживает эффект hot spots.

Если необходимо добавить новый узел, то нужно взять маленькие кусочки от каждого куска таблицы с каждого присутствующего узла и переместить эти кусочки на новый узел.
Скажем, если у нас было 10 узлов, на каждом из которых хранилось по 110 записей, то при добавлении одиннадцатого узла мы берём по 10 записей с каждого узла, складываем, и кладём на новый узел. Получаем 11 узлов, на каждом из которых хранится по 100 записей.
По карйней мере, так в Терадате. Как в DB2, наверное, расскажет Николай.



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643445
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat- EugeneS

1. Про контроллеры и распараллеливание.
Для того чтобы нормально восспользоваться функцией распараллеливания надо выполнить несколько условий
- число параллельных процессов равно числу процессоров.


Не обязательно, бывают спящие процессы.

EugeneS

- число параллельных процессов равно числу дисковых volume и в свою очередь равно числу дисковых контроллеров.


Тоже не обязательно, один контроллер может держать несколько томов.
IHMO Оптимально 3-5 шт.

EugeneS

- на каждом дисковом контроллере в свою очерель строится RAID10 ( в случае если используетя интесивная запись или RAID5 ). Это на сегодня самые распространненые уровни RAID. В случае если у вас есть RAID3 то можно его использовать для чтения , он лучше подходит для последовательного чтения , а RAID5 лучше для случайного чтения.



Я RAID3 & RAID5 не счтаю достойным к рассмотрению в случае работы с OLTP системами. На них можно хранить фильмы или делать бэкапы.


EugeneS

Откуда такое утверждение?
Вы сами то рельно пробовали такую конфигурациию?
Наверно нет.



Да. пробовал.

EugeneS
Дело втом что заниматься балансировкой файлов по дисковым разделам очень
не благодарное дело.

А кроме того RAID10 имеет одно очень полезное свойство.
При выходе диска из строя производительность практически не падает , чего я не скажу скжаем о RAID 5.


Нужно заниваться не балансировкой файлов, а балансировкой нагрузки на ввод вывод между томами. И возможность этого тюнинга предвидеть заранее.
Я неисползую RAID5 для баз данных и не планирую.

EugeneS
Например RAID10 на 12x72GB на железке типа HP DL380 c контроллером SA6404 на двух каналах дает примерно 150МБ на запись и примерно 100-120
на чтение.


Я не верю в то что это работала база данных.
Или в это время производились полные сканирования таблиц.


Результаты того что пробовал я:

IBM FASTT 600 (12х HDD FC 146 Gb)
Обьем базы данных 500 Gb, самая большая таблица ~230 млн записей.
в 8 таблицах больше 100 млн записей.

Объем кеша контроллеров(2шт) 512Mb.
База данных Informix DS 9.4 OS Linux RH 7.2 ядро 2.6.5
Сервер (Какой был под руками) 2хIntel PIII 1GHz 1 Gb Ram

Пробовали размер страйпа 128К.
На построении индексов коэфициент использования кеша контролера 100%
Считай полное сканирование таблиц.
Пиковая скорость 80М/с
Работа OLTP приложения(100 % индкесный поиск), 8 пользовательских сесий.
Кеш контроллера используется на 3-5 %.
Пиковая скорость 10М/с
При уменьшении страйпа до 8К использование кеша контролера повысилось до 30%.
Пиковая скорость 30 M/c
Общая производительность поднялась ~30-40%.
система была не совсем оптимальна, серверу явно не хватало ОЗУ и
быстродействия процессоров. Но какой был на таком и тестили целью было проверить fastt.


EugeneS

Если очень интерестно почему.
http://otn.oracle.com/deploy/performance/pdf/opt_storage_conf.pdf



Там описано то о чем я говорю на этом форме.
То есть ко всему нужно подходить взвешенно. Нет одного рецепта на все случаи жизни.
ihmo Что бы выжать из конфигурации все нужно учитывать каждуюю деталь.
Так как это делают в Формуле 1.

EugeneS

Самый лучший вариант максимальный размер страйпа.
Далеет размер кластера должен быть равен размеру страницы БД.
Размер страйпа должен быть кратен размеру кластера и размеру блокак БД.
Если есть возможность размер страйпа бложен быть равен размеру IO ОС.
Я когда-то слышал что для Win это 1МБ.



Почему вы не правы по поводу размера страйпа я повторяться не буду посмотрите мое сообщение в этой ветке.
http://www.sql.ru/forum/actualthread.aspx?tid=111586

А что такое размер IO OC? или я отстал отжизни :).

Если это то о чем я думаю, то дальше наверное будем говорить о DMA.

С уважением, onstat-
ps Прошу прощения за задержку, запарка на работе.


1. Я имеею ввиду Parallel Query Option у Oracle и естественно суда не включаются другие сессии, а только сессия которая будет выполнять запрос.


2. Про кол-во дисковых томов на контроллер.
Необязательно но желательно.
Понятно что в реальности все не так, и как правило это нехватка денег тому причиной, ну или когда контроллер имеет независимые каналы .

3. Балансировака нагрузки ввода-вывода как раз и сводится к раскладыванию файлов по дисковым томам в зависимости от ввода-вывода.
Это не так просто на растущей системе.
И очень часто требуется остановка системы.

4. Я говорил о линейном чтении или записи,естественно при случайном чтении и записи цифры ниже порядка 60-70МБ/с

авторА что такое размер IO OC? или я отстал отжизни :).
Это кол-во блоков которые ядро ОС считывает за одну операцию ввода-вывода с файловой системы.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643512
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneS

2. Про кол-во дисковых томов на контроллер.
Необязательно но желательно.
Понятно что в реальности все не так, и как правило это нехватка денег тому причиной, ну или когда контроллер имеет независимые каналы .


Разумно ограничил бы чило дисков до 5 на канал контролера
(Если речь идет о медном SCSI). И неважно сколко там томов.
Я чаще всеро использую 5хRAID1 на двухканальном контролере.
Всего десять дисков по 5 на канал.

EugeneS
3. Балансировака нагрузки ввода-вывода как раз и сводится к раскладыванию файлов по дисковым томам в зависимости от ввода-вывода.
Это не так просто на растущей системе.
И очень часто требуется остановка системы.


Добавление или удаление партиции на таблице как правило не требует
остановки системы. Задав условие партиционирования на другой (свободный по ВВ) том разгружаем систему практически моментально,
но взвешивать все за и против такого хода нужно очень хорошо, откатить назад будет тяжело.
Именно поэтому я говорил о балансировании нагрузки на тома,
а не на файлы БД.
А удаление старых данных просто прелесть, Я за 10 -20 минут удаляю
20 млн записей из 100 млн таблицы путем отсоединения партиций.
Кто быстрее и как?

EugeneS
4. Я говорил о линейном чтении или записи,естественно при случайном чтении и записи цифры ниже порядка 60-70МБ/с


Откуда статистика, это объем чтения который реально читается с диска,
или тот что требуется базой и реально попадает в кеш oracle?
Что говорит spotlite о проценте использования кеша oraclе -ом?
(Я надеюсь вы его используете?)
Какой у Вас размер страйпа? и размер блока базы?

Я приводил скорость попадания необходимых данных в кеш базы.

авторА что такое размер IO OC? или я отстал отжизни :).
Это кол-во блоков которые ядро ОС считывает за одну операцию ввода-вывода с файловой системы.[/quot]

Значит ли это что написав программу которая читает с диска блоками по 2К
(например) винда читает за одну дисковую операцию 1 Mb с диска вместо 2К.
Может это и так, но уверенны ли вы, что базы данных используют это
значение по умолчанию?
Я намекаю на использование кеша фаловой системы для базы данных,
Я надеюсь вы это имели ввиду?

Хотелось бы услышать мнение народа по этому поводу(кеша файловой системы).

с уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643518
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийДа, компания называется NCR. Офис в Москве существует уже более 10 лет.
Teradata - это подразделение компании NCR. А можно несколько вопросов:
Есть ли представительство Teradata в Украине?

Хотелось бы услышать или почитать про примеры успешных внедрений этой СУБД в Украине.

ЗЫ
Данная СУБД действительно не очень распространена и известна только в достаточно узком кругу специалистов. Хотелось бы услышать: если она такая крутая и существует уже порядка 20 лет, то почему о ней так мало известно?
Кстати, а какой кусок пирога мирового рынка СУБД занимает Teradata?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643528
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ggg_old

Дискуссия становится интересной. Задам вопросик параллельно с темой, особенно хотелось бы услышать мнение onstat. Есть БД, размер страницы 2к. Есть RAID 10 (по пять винтов на канале). ОС - Windows 2000AS. Какой размер страйпа будет предпочтительней - 4k, 16k, 32k, 64k? Как в этом случае нужно учитывать или выставлять размер кластера на NTFS. Режим работы БД - смешанный, но тюнить надо под OLTP. У меня есть возможность поэкспериментировать. Есть мысль - размер страйпа 4к (был 32), размер кластера по умолчанию оставить 4к.



Я домаю, что моя полемика сегодня много прояснила,
Если у вас есть конкретные вопросы давайте обсудим.

В вашем случае за раз будет читаться 4*5 = 20К за дисковую операцию.
Если это соответствует вашим данным то наздоровье.
Если же вы храниете фотографи в блобах и ищите их по индексу,
может не нужно ничего менять.
По поводу размера кластера, давайте обсудим, я в на uinix & raw devices сижу.

С уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643539
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat- killed
Для хранилища я бы пытался оптимизировать мультиблочные операции чтения (сканирование таблиц и др.) в первую очередь. Кстати страйпинг полезен и для чистого OLTP где 100% - индексный доступ


Может быть, но зависит это от размера блока вашей базы,
количества дисков в массиве и размера страйпа.
в лушчем случае (при минимальном размере страйпа) вы получите туже производительность что и на просто диске или RAID1.

Во вторых а как быть с распаралеливанием ввода вывода, о котором мы говорили несколько постов назад. Мне неизвесны контролеры которые
могут выполнять паралельно операции ввода вывода в пределах одного массива. Будь то RAID5 RAID10 или RAID1.
Тоесть то что база данных пытается паралелить по вводу выводу
Ваш RAID сводит на нет(потому что очередь на операции ВВ в масиве одна).

Я думаю этих аргументов пока достаточно.

с уважением, onstat-

Вы уж простите, но это тривиальные вещи, которые подразумеваются. Не забывайте, речь шла о терабайтной базе. Какие тут проблемы с количеством дисков? Размер блока - настраивается, размер мультиблочного чтения - настраивается, от него двигаемся к stripe element size, от него - к stripe size.

По распараллеливание - очереди на ВВ будут к *каждому_диску*, а не контроллеру.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643557
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-

авторА что такое размер IO OC? или я отстал отжизни :).

Это кол-во блоков которые ядро ОС считывает за одну операцию ввода-вывода с файловой системы.

Значит ли это что написав программу которая читает с диска блоками по 2К
(например) винда читает за одну дисковую операцию 1 Mb с диска вместо 2К.
Может это и так, но уверенны ли вы, что базы данных используют это
значение по умолчанию?
Я намекаю на использование кеша фаловой системы для базы данных,
Я надеюсь вы это имели ввиду?

Хотелось бы услышать мнение народа по этому поводу(кеша файловой системы).

с уважением, onstat-

Тут промелькнула цифра IO OC = 1M , подозреваю, что речь шла о max_io_size. Кэш файловой системы используется при read ahead, если не используется direct read. На солярисе его можно настраивать, насчет виндовз - не знаю.
Про настройку RAID я писал на оракловом форуме здесь.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643565
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-
А удаление старых данных просто прелесть, Я за 10 -20 минут удаляю
20 млн записей из 100 млн таблицы путем отсоединения партиций.
Кто быстрее и как?



В оракле - это две-три секунды в независимости от объема данных, если под отсоединением понимается удаление партиции или преобразование ее в отдельную таблицу
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643601
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ТихоновЗапросто: Вертикальное и горизонтальное масштабирование систем

Честно говоря, статья не создаёт впечатление профессионально написанной. Системы MPP (горизонтальное масштабирование в версии автора) оказывается, не предназначены для больших баз данных и хранилищ данных. В то время, как Терадата позиционируется исключительно для создания хранилищ данных. А более 35% инсталляций - хранилища размером свыше 1 терабайта. Скорее всего, автор в этом мало что понимает. И разобраться как следует не счёл необходимым.


Если честно, про BYNET ничего не понял :-\\... Каким образом добавление узла увеличивает пропускную способность? Где почитать можно?

Можно почитать статью Born To Be Parallel . В ней рассказываются об архитектурных принципах СУБД Teradata. Про BYNET тоже есть немного.

Здесь про BYNET кратко (цифры немного уже устарели - это про предыдущую версию).

Если и это не поможет - пишите. Попробую объяснить.


А можно несколько вопросов:

Есть ли представительство Teradata в Украине?

Хотелось бы услышать или почитать про примеры успешных внедрений этой СУБД в Украине.

Teradata развивает бизнес в Украине. Поскольку до настоящего времени не было готовности компаний строить крупномасштабные корпоративные хранилища данных, пока состоявшихся внедрений в Украине не существует. Но надо заметить, что компании проявляют интерес к этой технологии.

Если Ваш интерес не праздный, и речь идёт о создании большого хранилища данных, то настоятельно рекомендую рассматривать Терадату.
Опять-таки, если интерес есть, я готов лично рассказать о Терадате. Я буду в Киеве в пятницу. Можем встретиться. Если интересно, киньте мне по мейлу свой телефон, я Вам позвоню, договоримся о встрече.


Данная СУБД действительно не очень распространена и известна только в достаточно узком кругу специалистов. Хотелось бы услышать: если она такая крутая и существует уже порядка 20 лет, то почему о ней так мало известно?
Кстати, а какой кусок пирога мирового рынка СУБД занимает Teradata?

Распространённость Терадаты обусловлена её точным позиционированием - это СУБД позиционируется исключительно как СУБД для (больших) хранилищ данных. Соответственно, количество инсталляций не так велико, как у других СУБД, которые позиционируются для решения задач OLTP. Соответственно, доля рынка СУБД получается не большая. Точной цифры я назвать не готов. Однако в сегменте корпоративных хранилищ данных Терадата лидирует .



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643605
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А удаление старых данных просто прелесть, Я за 10 -20 минут удаляю
20 млн записей из 100 млн таблицы путем отсоединения партиций.
Кто быстрее и как?

То же самое в Терадате. Только не очень понятно, зачем так долго? За 20 минут, как известно, можно добежать до канадской границы :)
За 10-20 минут можно 20 млн записей загрузить в таблицу из текстового файла. А уж партиции подропать - так это секунды.

Делается примерно так:
Код: plaintext
1.
2.
3.
4.
ALTER TABLE SalesTable
MODIFY PRIMARY INDEX (product_code, sales_date, agent_id)
DROP RANGE BETWEEN DATE ‘ 2001 - 06 - 01 ’ AND DATE ‘ 2001 - 06 - 30 ’
EACH INTERVAL ‘ 1 ’ MONTH
WITH DELETE;

Подробности о том, как и почему - здесь .



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643625
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский killedЭтот hash ключ учитывает hot spots на этой партиц. таблице? Если нет, то получаем неравномерную нагрузку. Еще момент, если необходимо добавить дополнительный узел в кластер, то для сохранения равномерного распределения данных по *всем* узлам кластера нужно заново "размазать" эту таблицу?


На то он и hash-алгоритм, чтобы уметь раскидать близкие значения аргументов на далеко удалённые значения хэш-функции. Соответственно, hash-функция сглаживает эффект hot spots.

Если необходимо добавить новый узел, то нужно взять маленькие кусочки от каждого куска таблицы с каждого присутствующего узла и переместить эти кусочки на новый узел.
Скажем, если у нас было 10 узлов, на каждом из которых хранилось по 110 записей, то при добавлении одиннадцатого узла мы берём по 10 записей с каждого узла, складываем, и кладём на новый узел. Получаем 11 узлов, на каждом из которых хранится по 100 записей.
По карйней мере, так в Терадате. Как в DB2, наверное, расскажет Николай.

С уважением,
Константин Лисянский
http://lissianski.narod.ru

1)
Да, но рассматривайте хот спотс (кстати это ведь не обязательно данные "лежащие рядом") с точки зрения приложения в целом, а не на уровне отдельной таблицы. Т.е. с одной стороны данные хот спотс лучше равномерно размазать по нодам, а с другой стороны это потянет за собой дополнительные данные других таблиц (соединения, объединения, подзапросы). Т.е. если обобщить, то партицирую получаем выигрыш по CPU, утилизации памяти, но в довесок также получаем минусы увеличенной межнодовой передачи данных?

2) А представьте, нужно вместо 10 записей, взять по 10 миллионов? Я правильно понимаю, что на время процедуры "репартишина" Терадата не гарантирует получение корректных результатов запросов?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643740
Павел Новокшонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killed

1)
Да, но рассматривайте хот спотс (кстати это ведь не обязательно данные "лежащие рядом") с точки зрения приложения в целом, а не на уровне отдельной таблицы. Т.е. с одной стороны данные хот спотс лучше равномерно размазать по нодам, а с другой стороны это потянет за собой дополнительные данные других таблиц (соединения, объединения, подзапросы). Т.е. если обобщить, то партицирую получаем выигрыш по CPU, утилизации памяти, но в довесок также получаем минусы увеличенной межнодовой передачи данных?

2) А представьте, нужно вместо 10 записей, взять по 10 миллионов? Я правильно понимаю, что на время процедуры "репартишина" Терадата не гарантирует получение корректных результатов запросов?



1) Основное приложение Терадаты это обработка сложных DSS запросов (как произвольных так и запланированных) от многих пользователей на сравнительно больших объемах данных. Хэш-партишонинг и равномерное распределение данных по узлам здесь рулит. В Терадата есть механизмы по оптимизации запросов засчет вторичных индексов и join индексов, котрые также в свою очередь равномерно размазаны по узлам. Подвесить межнодовую шину в Терадата (тобишь Bynet) сложно. Как правило в системах с хорошей загрузкой затырк это CPU и диск. Опять же производительность запроса зависит от многих факторов - кол-ва узлов в кластере, оптимизации запроса при помощи индексов, кол-ва одновременных пользователей в системе, приоритета пользователя, свежести статистики и т.п.

Главные преимущества хэш-партишонинга в Терадата - 1) Параллельная эффективность - данные равномерно раскиданы по узлам и по виртуальным процессорам СУБД. Каждый отвечает за свой кусочек диска и данных. 2) Просто администрить. Не важно таблица 100 ГБ или 1 ТБ - ты отводишь диск под базу, определяешь первичный индекс в таблице, а Терадата сама раскидывает данные при загрузке. Голова не болит, не надо перестраивать индексы, делать реорги и заниматься такого роды фигней. Once the data is there - it is there.

2) При добавлении новых узлов в Терада делается реконфиг и данные автоматичести перераспределяются между узлами в новой конфигурации кластера. Система при этом недоступна для пользователей. Добвалять узлы в кластер дело дорогое, вызванное потребностью "подкачать мускулы". Одним словом бывает это нечасто.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643786
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо, понял
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32643891
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killed onstat- killed
Для хранилища я бы пытался оптимизировать мультиблочные операции чтения (сканирование таблиц и др.) в первую очередь. Кстати страйпинг полезен и для чистого OLTP где 100% - индексный доступ


Может быть, но зависит это от размера блока вашей базы,
количества дисков в массиве и размера страйпа.
в лушчем случае (при минимальном размере страйпа) вы получите туже производительность что и на просто диске или RAID1.

Во вторых а как быть с распаралеливанием ввода вывода, о котором мы говорили несколько постов назад. Мне неизвесны контролеры которые
могут выполнять паралельно операции ввода вывода в пределах одного массива. Будь то RAID5 RAID10 или RAID1.
Тоесть то что база данных пытается паралелить по вводу выводу
Ваш RAID сводит на нет(потому что очередь на операции ВВ в масиве одна).

Я думаю этих аргументов пока достаточно.

с уважением, onstat-

Вы уж простите, но это тривиальные вещи, которые подразумеваются. Не забывайте, речь шла о терабайтной базе. Какие тут проблемы с количеством дисков? Размер блока - настраивается, размер мультиблочного чтения - настраивается, от него двигаемся к stripe element size, от него - к stripe size.

По распараллеливание - очереди на ВВ будут к *каждому_диску*, а не контроллеру.

Для меня они уже давно тривиальные.
1. Посмотрите в операциооной
системе sar если у вас unix или performance monitor если винда
и скажите сколько очередей на один диск(массив). На то они и очередь чтобы в ней стоять. :)

2. Учтите что в кеш контролера попадает минимум srtipe* количество дисков объем данных. Как быстро он забьется не нужным базой мусором? А темболее
на терабайтной базе. И переписывается тоже этот весь объем в случае изменения. Посмотрите мои предидущие посты там исследовалась база в пол терабайта.

3.Обьясните как паралелится очередь на каждый диск если 1 операция
ВВ читает одновременно страйпы со всех дисков, и операция длится
до тех пор пока линейка страйпов не будет обработана на всех дисках.
Паралельно можно читать только то что записано а не то что хочет база.
В чем тут паралелизм?


С уважением, onstat
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32644079
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killed1) Да, но рассматривайте хот спотс (кстати это ведь не обязательно данные "лежащие рядом") с точки зрения приложения в целом, а не на уровне отдельной таблицы. Т.е. с одной стороны данные хот спотс лучше равномерно размазать по нодам, а с другой стороны это потянет за собой дополнительные данные других таблиц (соединения, объединения, подзапросы). Т.е. если обобщить, то партицирую получаем выигрыш по CPU, утилизации памяти, но в довесок также получаем минусы увеличенной межнодовой передачи данных?

Как я уже писал выше, межнодовая передача - естественное явление. Вы правильно заметили, что определённые операции требуют перераспределения данных между узлами.
Для этого в СУБД Терадата существует коммутатор BYNET с довольно высокой пропускной способностью на узел. Кроме того, что он умеет просто передавать данные и сообщения, он ещё и обладает определённым интеллектом, позволяющим более эффективно распараллеливать некоторые операции. Например, возьмём сортировку. Понятное дело, что сначала сортировка выполняется локально на каждом узле. Но ведь, результат должен быть отсортирован глобально, не так ли? Если бы узли были связаны, скажем, с помощью Ethernet, то для окончательной сортировки все данные нужно было бы гнать на один узел. В случае СУБД Teradata окончательную сортировку выполняет сам BYNET. Кроме сортировки, BYNET реализует механизм семафоров, которые использутся для координации работы узлов.

Ещё одно замечание по поводу hot spots - действительно, иногда с точки зрения производительности хорошо хранить данные, находящие рядом логически (например, за один и тот же день), рядом и физически например, для удобства сканирования таблиц. Для этого в терадате существует механизм PARTITIONED PRIMARY INDEX. Это двухуровневый партишионинг таблиц. Если этот механизм используется, то данные в пределах узлов хранятся по партициям, которые мы назначаем при создании или изменении таблицы (см. мой пример про удаление строк выше), а внутри партиций данные упорядочиваются по значениям хэш-индекса.
Использование этого механизма позволяет в определённых случаях довольно сильно повысить производительность при сканировании или соединении таблиц за счёт partition elimination.


2) А представьте, нужно вместо 10 записей, взять по 10 миллионов? Я правильно понимаю, что на время процедуры "репартишина" Терадата не гарантирует получение корректных результатов запросов?

10 миллионов - это детский объём для Терадаты. Как написал Павел, Терадата, действительно, недоступна во время операции добавления узла. Я думаю, любая другая система также будет недоступна при изменении конфигурации железяки, на которой она работает.



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32644269
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский
Как я уже писал выше, межнодовая передача - естественное явление. Вы правильно заметили, что определённые операции требуют перераспределения данных между узлами.
Для этого в СУБД Терадата существует коммутатор BYNET с довольно высокой пропускной способностью на узел. Кроме того, что он умеет просто передавать данные и сообщения, он ещё и обладает определённым интеллектом, позволяющим более эффективно распараллеливать некоторые операции. Например, возьмём сортировку. Понятное дело, что сначала сортировка выполняется локально на каждом узле. Но ведь, результат должен быть отсортирован глобально, не так ли? Если бы узли были связаны, скажем, с помощью Ethernet, то для окончательной сортировки все данные нужно было бы гнать на один узел. В случае СУБД Teradata окончательную сортировку выполняет сам BYNET. Кроме сортировки, BYNET реализует механизм семафоров, которые использутся для координации работы узлов.

10 миллионов - это детский объём для Терадаты. Как написал Павел, Терадата, действительно, недоступна во время операции добавления узла. Я думаю, любая другая система также будет недоступна при изменении конфигурации железяки, на которой она работает.


С уважением,
Константин Лисянский
http://lissianski.narod.ru

Ну вообще-то если мы про кластера, то добавление узла в Oracle RAC проходит без остановки , как и его изъятие, правда у Oracle архитектура Shared-disk.

То есть если я правильно понял коммутатор BYNET еще и ускоритель сортировки.
Будет ли логичным наличие этих свойств ( аппаратная сортировка ) с аналогичными устройствами для ускорения скажем дополнительный криптовальный процессор?

Сдается мне TERADATA следует рассматривать как узкоспециализированое решение для определенных задач.

Да, кроме того в условиях задачи сказано , что система у нас смешаная.
А что нам предлагает TERADATA для систем OLTP?

Хотелось бы иметь хоть какое-то представление о стоимости таких решений.
Я готов согласиться что для определенных задач использование ТERADATA вполне оправдано, но как насчет цифр.
Такими цифрами для меня являются например данные приведенные в тестах TPC-C или TPC-H.
Я допускаю что TERADATA "The best" для DSS систем, но где цифры тестов.

То что продукт используется для серьезных решений - это не трудно узнать, но где цифры?
Поймите меня правильно.
Утверждение что компания А использует продукт Х не является доказательством для компании B того факта что продукт X лучше чем продукт Y. Обычно для этого используют тесты.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32644329
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский А удаление старых данных просто прелесть, Я за 10 -20 минут удаляю
20 млн записей из 100 млн таблицы путем отсоединения партиций.
Кто быстрее и как?

То же самое в Терадате. Только не очень понятно, зачем так долго? За 20 минут, как известно, можно добежать до канадской границы :)


Это максимальное время в моей базе данных которое необходимо на
актуализацию индексов.
Если же индексы партиционированы по томуже условию что и данные
это занимает секунды.

Константин Лисянский
За 10-20 минут можно 20 млн записей загрузить в таблицу из текстового файла. А уж партиции подропать - так это секунды.


С уважением,
Константин Лисянский
http://lissianski.narod.ru


Да не вопрос, все зависит от производительности системы ввода вывода.

с уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32644355
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IMHO, kogda rec o TB informacii, testy (tpc) eto tolko 5% pri vybore sistemy. ~80% eto pilotnyj projekt + cena 3-5 let ekspluatacii.

Moi sovet, Sergej, pocitaite/pogovorite bolse s Sybase, TDATA, IBM. Na segmente VLDB, ne tak vse ocevidno kak na rynke SMB. Sybase (IQ), TData- akcentiryjut sebja kak VLDB sdelanye s nulia, specialno dlia VLDB i DWH.

I Sybase IQ i TDATA konkurirujut ocen silno. Dostoinstvo TData - opyt (20let, >1000 DWH, specializacija - tolko DWH, baza udachnyh vnedrenii). Dlia nekotoryh otraslej bolhoi plius naliche horosei modeli dannyh dlia EDW (konkurenty Sybase IWS i IBM). Nedostatok - cena i sloznost/unikalnost HW.

Dostoinstvo IQ - prostota, cena, vozmoznost nacat na zeleze s 1CPU/Win, krutit na takom zeleze 100-150+GB raw data (cto v Oracle u vas zaimet gigabaitov 500-700 ili bolshe, pricem budete imet ~5 indeksov, a v IQ kazdoe pole avtomaticheski index), lineino rasti (linear scalability) - MPP ne obespecit takogo urovnia scalability. Takze est ocen horosie refference. Minus - IQ prosto baza, bez ETL, bez generatorov otcetov, mozet rabotat kak OLTP, no medlenno (kazetsia ~5000tranzakcii/cas) i t.d.

Mne v principe vse ravno, no posovetoval by vstretitsia s Konstantinom i pozvonit v local Sybase, hotite v IBM mozete tohe pozvonit. A to neserjezno kakto vygliadit. Napominaet : ja znaju MS+Oracle na etom i budu delat. A esli ktoto MySQL znaet - cto, na nem pisat?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32644374
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
авторТакими цифрами для меня являются например данные приведенные в тестах TPC-C или TPC-H.
Я допускаю что TERADATA "The best" для DSS систем, но где цифры тестов.

вроде бы они когда-то были самые крутые в tpc-h, но потом ушли, у оракла где-то даже документ был почему они уходят. в тот момент когда ушли они были в переди но оракл слишком быстро нагонял ...

теперь у них 4% рынка против 51% оракла.
http://www.oracle.com/solutions/business_intelligence/giga_dw.html
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32644408
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-
Разумно ограничил бы чило дисков до 5 на канал контролера
(Если речь идет о медном SCSI). И неважно сколко там томов.
Я чаще всеро использую 5хRAID1 на двухканальном контролере.
Всего десять дисков по 5 на канал.


Мы пока использем 2 и 4 канальные контроллеры.
На каждом канале 6-8 дисков, но делается один большой RAID0+1 впределах либо 2-4 каналов ( зависит от контроллера).


onstat-
Добавление или удаление партиции на таблице как правило не требует
остановки системы. Задав условие партиционирования на другой (свободный по ВВ) том разгружаем систему практически моментально,
но взвешивать все за и против такого хода нужно очень хорошо, откатить назад будет тяжело.
Именно поэтому я говорил о балансировании нагрузки на тома,
а не на файлы БД.
А удаление старых данных просто прелесть, Я за 10 -20 минут удаляю
20 млн записей из 100 млн таблицы путем отсоединения партиций.
Кто быстрее и как?


Это несколько не то.
Я могу обяснить в терминах Oracle.
Таблица лежит в табличном пространстве, которое состоит из определенного кол-ва файлов. Померяв ввод-вывод на файлы, нужно раскладывать эти файлы по дискам ( не важно это Физический диск или логичексий( RAID1 например). Причем тут партиции?
Я понимаю что можно разложить на партиции по числу дисков, но смысла особого я в этом не вижу.


EugeneS
4. Я говорил о линейном чтении или записи,естественно при случайном чтении и записи цифры ниже порядка 60-70МБ/с



onstat-
Откуда статистика, это объем чтения который реально читается с диска,
или тот что требуется базой и реально попадает в кеш oracle?
Что говорит spotlite о проценте использования кеша oraclе -ом?
(Я надеюсь вы его используете?)
Какой у Вас размер страйпа? и размер блока базы?

Я приводил скорость попадания необходимых данных в кеш базы.


Данные получены sar или iostat.
страйп 256к размер блока 8к.
Вы наверно подразумевает в ваших высказываниях чистый OLTP?
Я никогда не настраиваю систему только под OLTP.
Ну не видел я в своей жизни чистых систем OLTP. Cмешанных сколько угодно.
А вот если говорить о чистом OLTP тогда имеет смысл маленький размер страйпа я с этим согласен, и то это очень сильно зависит от того какой объем поступает в БД.
OLTP тоже быват разные.
Пример биллинговая система телефонной компании.
Программа тарификатор выполняет загрузку файлов в БД при этом на каждую вставляемую запись "дергает" справочники и таких несколько потоков, но и данные вставляет в БД скажем 20млн.

В результате используя подхож SAME дешевле все сложить на один большой RAID0+1. Пока все мои попытки доказать себе обратное не увенчались успехом.


авторА что такое размер IO OC? или я отстал отжизни :).
Это кол-во блоков которые ядро ОС считывает за одну операцию ввода-вывода с файловой системы.[/quot]

onstat-
Значит ли это что написав программу которая читает с диска блоками по 2К
(например) винда читает за одну дисковую операцию 1 Mb с диска вместо 2К.
Может это и так, но уверенны ли вы, что базы данных используют это
значение по умолчанию?
Я намекаю на использование кеша фаловой системы для базы данных,
Я надеюсь вы это имели ввиду?
с уважением, onstat-

ДА, значит если чтение идет с файловой системы, без специальных условий монтирования или использования RAW-device.
100%.
Для Oracle в этом леко убедиться
http://www.ixora.com.au/scripts/sql/multiblock_read_test.sql
В результате выясняем размр io_max_size он в большинстве случаев равем 1МБ. В ранних версиях систем может быть равен 64к или 256к.
Например на Solaris это размер можно менять от 1МБ до 4МБ.

Использование фаловой системы для хранения данных подразумевает двойную буфферизацию.
Избежать этого можно но не всегда эффективно получается.
1. Некоторые файловые системы позволяют монтироваться в режиме DIRECT_IO, но честно скажу не пробовал.
2. Использовать RAW-device, что довольно геморно и требует гораздо больших затрат на администрирование, часто проскакивает информация о том что такой режим дает до 20% выйгрыша.
Пробовал, но отказались именно из-за трудности сопровождения.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32644767
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_DogIMHO, kogda rec o TB informacii, testy (tpc) eto tolko 5% pri vybore sistemy. ~80% eto pilotnyj projekt + cena 3-5 let ekspluatacii.

Moi sovet, Sergej, pocitaite/pogovorite bolse s Sybase, TDATA, IBM. Na segmente VLDB, ne tak vse ocevidno kak na rynke SMB. Sybase (IQ), TData- akcentiryjut sebja kak VLDB sdelanye s nulia, specialno dlia VLDB i DWH.

I Sybase IQ i TDATA konkurirujut ocen silno. Dostoinstvo TData - opyt (20let, >1000 DWH, specializacija - tolko DWH, baza udachnyh vnedrenii). Dlia nekotoryh otraslej bolhoi plius naliche horosei modeli dannyh dlia EDW (konkurenty Sybase IWS i IBM). Nedostatok - cena i sloznost/unikalnost HW.

Dostoinstvo IQ - prostota, cena, vozmoznost nacat na zeleze s 1CPU/Win, krutit na takom zeleze 100-150+GB raw data (cto v Oracle u vas zaimet gigabaitov 500-700 ili bolshe, pricem budete imet ~5 indeksov, a v IQ kazdoe pole avtomaticheski index), lineino rasti (linear scalability) - MPP ne obespecit takogo urovnia scalability. Takze est ocen horosie refference. Minus - IQ prosto baza, bez ETL, bez generatorov otcetov, mozet rabotat kak OLTP, no medlenno (kazetsia ~5000tranzakcii/cas) i t.d.

Mne v principe vse ravno, no posovetoval by vstretitsia s Konstantinom i pozvonit v local Sybase, hotite v IBM mozete tohe pozvonit. A to neserjezno kakto vygliadit. Napominaet : ja znaju MS+Oracle na etom i budu delat. A esli ktoto MySQL znaet - cto, na nem pisat?
Большое спасибо за совет, возможно, я им воспользуюсь...

ИМХО, лучше делать на том, что знаешь, чем на том, чего не знаешь... В любом случае при выполнении проекта максимум - что будет возможно - это консультации со спецами вендора. Отдавать проект на сторону мы не будем.

ЗЫ
Ни Terradata, ни SyBase не подходят под условия:
быть распространенной и известной

на рынке труда должно существовать достаточное количество грамотных специалистов, способных администрировать и поддерживать эту СУБД

с RAD-средствами тут тоже не все однозначно...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32644847
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneS

Это несколько не то.
Я могу обяснить в терминах Oracle.
Таблица лежит в табличном пространстве, которое состоит из определенного кол-ва файлов. Померяв ввод-вывод на файлы, нужно раскладывать эти файлы по дискам ( не важно это Физический диск или логичексий( RAID1 например). Причем тут партиции?
Я понимаю что можно разложить на партиции по числу дисков, но смысла особого я в этом не вижу.


В терминах Oracle я это имел ввиду:

Oracle8i Concepts Release 2 (8.1.6)

Partitioning addresses the key problem of supporting very large tables and indexes by allowing you to decompose them into smaller and more manageable pieces called partitions. Once partitions are defined, SQL statements can access and manipulate the partitions rather than entire tables or indexes. Partitions are especially useful in data warehouse applications, which commonly store and analyze large amounts of historical data.
.......................
CREATE TABLE sales ( acct_no NUMBER(5),
acct_name CHAR(30),
amount_of_sale NUMBER(6),
week_no INTEGER )
PARTITION BY RANGE ( week_no ) ...
(PARTITION sales1 VALUES LESS THAN ( 4 ) TABLESPACE ts0,
PARTITION sales2 VALUES LESS THAN ( 8 ) TABLESPACE ts1,
...
PARTITION sales13 VALUES LESS THAN ( 52 ) TABLESPACE ts12 );




EugeneS

Использование фаловой системы для хранения данных подразумевает двойную буфферизацию.



100% истина. RESPECT. И никакая база уважающая себя база не использует
кеш файловой ситемы для ввода вывода.
Данные через DMA попадают в адресное пространство базы.
А с кеша ФС еще memcpy делать нужно, а это уже не DMA это нагрузка на процесор.

С уважением,
onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32644876
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО, лучше делать на том, что знаешь, чем на том, чего не знаешь...

Сергей, вообразите на секунду, что всё, что Вы знаете - это MS Access. Вы стали бы делать на нём терабайтное хранилище?
Смотрели фильм "Последний самурай"? Там в конце батальная сцена, где всех самураев таки расстреляли из пулемёта. К сожалению, несмотря на то, что они виртуозно владели мечами и луками.

авторНи Terradata, ни SyBase не подходят под условия:
быть распространенной и известной

Если ограничить объём данных снизу терабайтом, то Терадата -распространённая и известная. А если ограничить системы только хранилищами данных - то доминирующая.

на рынке труда должно существовать достаточное количество грамотных специалистов, способных администрировать и поддерживать эту СУБД

Администрируется не сложнее MS SQL (в отличие от Oracle, например). Большинство операций производится автоматически. Система поставляется уже установленной и сконфигурированной. Сервер имеет средства для удалённого подключения для мониторинга и предупреждения о возможных отказах оборудования.


с RAD-средствами тут тоже не все однозначно...

Если речь идёт о DSS, то RAD - понятие не очень широко используемое в этой области. Есть куча визуальных тулзов для администрирования и разработки приложений. Есть продукты партнёров класса OLAP/Reporting, есть свои средства класса Data Mining.

Организуйте тендер, пригласите производителей. Обычно серьёзные системы так выбираются.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32645072
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский

Организуйте тендер, пригласите производителей. Обычно серьёзные системы так выбираются.


vot vot. tolko k sozaleniju mne kazetsia cto Sergej ne zakazcik a prosto hocet ne poteriat klienta.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32645080
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot Сергей Тихонов
ЗЫ
Ни Terradata, ни SyBase не подходят под условия:
быть распространенной и известной

на рынке труда должно существовать достаточное количество грамотных специалистов, способных администрировать и поддерживать эту СУБД

с RAD-средствами тут тоже не все однозначно...[/quot]

1. Absoliutno neserjozno. V VLDB eto igroki s desiatkami klientov v telco, bankah, retail i t.d. ( VLDB s TB dannyh - eto toze silno rasprostranennaja sistema?)
2. Eto - da. Sybase IQ mozet administrirovat liuboi tolkovyi administrator Sybase ASA (jadro IQ - ASA). Training mense nedeli. Cenu admina dlia ASA, mozete predstavit. Podderzka i proektirovanie ... delat VLDB na RDBMS sozdannoi dlia togo ctoby byt VLDB - legce.
3. Po povodu TD ne znaju, po povodu IQ - problem net (konecno ne Oracle RAD:) Povtorius, ni TData ni IQ ne pozicionirujutsia kak OLTP. Tut bolee aktualna podderzka BObjects, Cognos, Microstrategy, Excell i t.d. i t.p.

Strah cto vendor zahocet zabrat project - eto sami smotrite. Znaju, cto TData ocen liubit prodat sama. Obsluzivanie posle prodazi - raznye varianty.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32645580
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat- killed

Вы уж простите, но это тривиальные вещи, которые подразумеваются. Не забывайте, речь шла о терабайтной базе. Какие тут проблемы с количеством дисков? Размер блока - настраивается, размер мультиблочного чтения - настраивается, от него двигаемся к stripe element size, от него - к stripe size.

По распараллеливание - очереди на ВВ будут к *каждому_диску*, а не контроллеру.

Для меня они уже давно тривиальные.
1. Посмотрите в операциооной
системе sar если у вас unix или performance monitor если винда
и скажите сколько очередей на один диск(массив). На то они и очередь чтобы в ней стоять. :)

2. Учтите что в кеш контролера попадает минимум srtipe* количество дисков объем данных. Как быстро он забьется не нужным базой мусором? А темболее
на терабайтной базе. И переписывается тоже этот весь объем в случае изменения. Посмотрите мои предидущие посты там исследовалась база в пол терабайта.

3.Обьясните как паралелится очередь на каждый диск если 1 операция
ВВ читает одновременно страйпы со всех дисков, и операция длится
до тех пор пока линейка страйпов не будет обработана на всех дисках.
Паралельно можно читать только то что записано а не то что хочет база.
В чем тут паралелизм?


С уважением, onstat

1. Видите ли, sar - это уровень ОS, он по определению не знает, что там скрывается за этими массивами. Поэтому смотреть на него в этом разрезе нет смысла. Если следовать вашей логике, то если у меня два массива, то степень распараллеливания ВВ = 2. А это неверно.

2. Понимаете, кэшу контроллера по большому счету наплевать, чего там в него попадает. Страйпы там, мирроры. Что такое "не нужный базе мусор" ? Ну не храните на дисках контроллера данных не относящихся к базе - не будет мусора.
К чему этот пункт? Я не совсем понял. Ну есть кэш контроллера, для простоты считайте, что его нету. Этакий небольшой бонус при проектировании подсистемы ВВ.
3. Вы не забывайте, что система многопользовательская. У каждого диска в массиве своя очередь запросов. Если один пользователь читает блок с первого зеркала RAID10, что мешает другому читать параллельно с зеркала N того же массива? Это параллелизм? Да.

Мультиблочная операция чтения, которая покрывает всю ширину страйпа - она использует параллелизм ВВ ? Да, благодаря страйпингу.
Кстати по вашей логике такая операция - неделима на аппаратном уровне (все остальные ждут, пока не отработает), я так не считаю.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32647568
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killed onstat- killed

Вы уж простите, но это тривиальные вещи, которые подразумеваются. Не забывайте, речь шла о терабайтной базе. Какие тут проблемы с количеством дисков? Размер блока - настраивается, размер мультиблочного чтения - настраивается, от него двигаемся к stripe element size, от него - к stripe size.

По распараллеливание - очереди на ВВ будут к *каждому_диску*, а не контроллеру.

Для меня они уже давно тривиальные.
1. Посмотрите в операциооной
системе sar если у вас unix или performance monitor если винда
и скажите сколько очередей на один диск(массив). На то они и очередь чтобы в ней стоять. :)

2. Учтите что в кеш контролера попадает минимум srtipe* количество дисков объем данных. Как быстро он забьется не нужным базой мусором? А темболее
на терабайтной базе. И переписывается тоже этот весь объем в случае изменения. Посмотрите мои предидущие посты там исследовалась база в пол терабайта.

3.Обьясните как паралелится очередь на каждый диск если 1 операция
ВВ читает одновременно страйпы со всех дисков, и операция длится
до тех пор пока линейка страйпов не будет обработана на всех дисках.
Паралельно можно читать только то что записано а не то что хочет база.
В чем тут паралелизм?


С уважением, onstat

1. Видите ли, sar - это уровень ОS, он по определению не знает, что там скрывается за этими массивами. Поэтому смотреть на него в этом разрезе нет смысла. Если следовать вашей логике, то если у меня два массива, то степень распараллеливания ВВ = 2. А это неверно.



Через узкое горлышко большую бутылку можно наполнять очень долго. Может здесь все зависит от драйвера RAID, но я не думаю что в emulex криво зделали эмуляцию SCSI в fiber channel. При запасе производительносит в SAN и на дисковой стойке средняя скорость 15Мбайт/с на логический диск,
не зависимо от того какой там масив собран. Пробовали RAID1 & RAID10
Общая скорость ввода вывода росла практически линейно до 6 томов RAID1(дальше не пробовали). то есть в моем случае 6ХRAID1 оказались быстрее
RAID10 такого же объема ровно в количество раз равное количеству дисков/2
Незначительное снижение скорости(10%) наблюдалось при страйпировании
этих RAID1 средствами OS.
Проверялось на 4Х PIV Xeon OS Win2000AS.


killed
2. Понимаете, кэшу контроллера по большому счету наплевать, чего там в него попадает. Страйпы там, мирроры. Что такое "не нужный базе мусор" ? Ну не храните на дисках контроллера данных не относящихся к базе - не будет мусора.
К чему этот пункт? Я не совсем понял. Ну есть кэш контроллера, для простоты считайте, что его нету. Этакий небольшой бонус при проектировании подсистемы ВВ.


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

Если по поводу атомарности я не ошибаюсь, и бонус всетаки имеется то
Если размер страйпа в десятки раз привышет размер блока базы,
вероянтость попадания другого блока по индексу в этом страйпе ничтожно мал
на терабайтной базе. Т.Е. весь страйп кроме одного блока базы прочитан неперед, но использован не будет. И весь страйп будет вытеснен из кеша(бонуса) в ближаешее время. Эти не используемые базой в данный момент блоки этого страйпа я и называл "мусором".
В raw device тяжело хранить еще что нибудь помимо базы данных.

killed

3. Вы не забывайте, что система многопользовательская. У каждого диска в массиве своя очередь запросов. Если один пользователь читает блок с первого зеркала RAID10, что мешает другому читать параллельно с зеркала N того же массива? Это параллелизм? Да.
Мультиблочная операция чтения, которая покрывает всю ширину страйпа - она использует параллелизм ВВ ? Да, благодаря страйпингу.
Кстати по вашей логике такая операция - неделима на аппаратном уровне (все остальные ждут, пока не отработает), я так не считаю.


Гугл очень много толковых ссылок дал по этому поводу,
Вы правы, Снимаю шляпу.


С уважением, onstat
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32647723
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Через узкое горлышко большую бутылку можно наполнять очень долго. Может здесь все зависит от драйвера RAID, но я не думаю что в emulex криво зделали эмуляцию SCSI в fiber channel. При запасе производительносит в SAN и на дисковой стойке средняя скорость 15Мбайт/с на логический диск,
не зависимо от того какой там масив собран. Пробовали RAID1 & RAID10
Общая скорость ввода вывода росла практически линейно до 6 томов RAID1(дальше не пробовали). то есть в моем случае 6ХRAID1 оказались быстрее
RAID10 такого же объема ровно в количество раз равное количеству дисков/2
Незначительное снижение скорости(10%) наблюдалось при страйпировании
этих RAID1 средствами OS.
Проверялось на 4Х PIV Xeon OS Win2000AS.


Тут вот какое дело. Если шина - чистый SCSI , ее довольно легко забить. Кстати, на OLTP это сделать проще, вопреки распространненому мнению. SAN SCSI-FC - промежуточный вариант - "SAN для бедных". А вот чистый FC (2 канала по 2Гбит/сек.) сделать узким местом будет трудно. По меньшей мере я просто не встречался пока с таким случаем.

По поводу 15Мб/сек. - это все очень индивидуально, host-specific, поэтому трудно с чем-то сравнивать эту цифру.

По поводу RAID1 vs RAID10. У вас может быть система с преимущественно одноблочным чтением (не работает страйпинг) и я так предполагаю, тестировали с небольшим кол-вом пользователей. Поэтому такой результат. Правда позже у вас будет болеть голова по поводу ручной балансировки ВВ между этими 6 RAID1, о чем вам уже писали выше.


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


Это относится только к RAID3, RAID5 при записи из-за пересчета четности и то не всегда (предмет оптимизации для контроллера).
Кэш есть у всех за исключением ну уж совсем дешевых простейших контроллеров. Разумеется больше ширины страйпа, сейчас гигабайтные кэшы обычная практика.

Не имеет смысла - я говорил в контексте планирования БД. Т.е. будет ли использован RAID1 или RAID10 - или их комбинация - какая разница?
Вы когда кэш конфигурируете у вас не так много параметров для его настройки. Понятно, что контролер использует различные алгоритмы для оптимизации ВВ (префетчинг, рид эхед, трансляция в многоблочное чтение и т.д.), но это все настолько вендор-специфик, что на мой взгляд закладываться на эти вещи при проектировании конкретной системы просто не стОит.


Если по поводу атомарности я не ошибаюсь, и бонус всетаки имеется то
Если размер страйпа в десятки раз привышет размер блока базы,
вероянтость попадания другого блока по индексу в этом страйпе ничтожно мал
на терабайтной базе. Т.Е. весь страйп кроме одного блока базы прочитан неперед, но использован не будет. И весь страйп будет вытеснен из кеша(бонуса) в ближаешее время. Эти не используемые базой в данный момент блоки этого страйпа я и называл "мусором".
В raw device тяжело хранить еще что нибудь помимо базы данных.


У оракла есть варианты мультиблочного чтения индекса (Fast Full Index Scan, Full Index Scan) - все зависит от природы конкретного запроса, чаще - это действительно одноблочное чтение.

Весь страйп (целая полоса) в этом случае не будет прочитан. Чтобы он был прочитан (целиком или частично), нужно чтобы с уровня ОС пришла запрос на чтение кол-ва смежных блоков, достаточного, чтобы покрыть страйп (целиком или частично). Если речь о stripe unit size (порция на одном диске) - думаю зависит от контроллера. Возможно некоторые дешевые контроллеры так и поступают. Здесь ориентироваться нужно на блок (страницу) памяти кэша, для контролера это и есть юнит памяти, в которых он оперирует.

Raw devices - имхо оптимально для баз данных. То что базы на raw тяжело администрить - обычно говорят те, кто не пробовал. Реально больших неудобств нет, зато надежность, пефоманс выше. Что-то еще кроме БД хранить на тех же дисках - нет смысла. Ну если уж очень надо - смонтируйте на отдельной партиции фс и храните на здоровье.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32648691
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killed
Через узкое горлышко большую бутылку можно наполнять очень долго. Может здесь все зависит от драйвера RAID, но я не думаю что в emulex криво зделали эмуляцию SCSI в fiber channel. При запасе производительносит в SAN и на дисковой стойке средняя скорость 15Мбайт/с на логический диск,
не зависимо от того какой там масив собран. Пробовали RAID1 & RAID10
Общая скорость ввода вывода росла практически линейно до 6 томов RAID1(дальше не пробовали). то есть в моем случае 6ХRAID1 оказались быстрее
RAID10 такого же объема ровно в количество раз равное количеству дисков/2
Незначительное снижение скорости(10%) наблюдалось при страйпировании
этих RAID1 средствами OS.
Проверялось на 4Х PIV Xeon OS Win2000AS.



Тут вот какое дело. Если шина - чистый SCSI , ее довольно легко забить. Кстати, на OLTP это сделать проще, вопреки распространненому мнению.



Потому что мультиблочных операций меньше,
соотношение объема ВВ к количеству операций ВВ меньше поэтому накладные расходы на ВВ выше чем в DSS. Оптом читать и писать всегда дешевле.
Для OLTP более важным критерием есть максимальное количество операций ВВ, чем максимальная скорость ВВ при прочих равных.


SAN SCSI-FC - промежуточный вариант - "SAN для бедных". А вот чистый FC (2 канала по 2Гбит/сек.) сделать узким местом будет трудно. По меньшей мере я просто не встречался пока с таким случаем.


OFF: Кстате FC это коммуникационный протокол(читай протокол маршрутизации),
а не протокол работы с перефирийными устройствами.
Поэтому SCSI-FC связка существует всегда при подключении
FC диской системы (реализация FC-SCSI реализована в дисковой стойке или
на контролере диска).
FC - это протокол носитель, который инкапсулирует в себе
протокол более высокого уровня в часности SCSI.
Я не понял, что вы имели ввиду под вариантом "для бедных",
он дешевле чего? и за счет чего?
======================================================

Ни FC сеть ни массивы ни диски(которые тоже FC) небыли слабым местом.
Узким местом был драйвер и его очередь. И распаралелив ВВ между логическими дисками(очередями) драйвера мы получили линейное повышение производительности ВВ.




По поводу 15Мб/сек. - это все очень индивидуально, host-specific, поэтому трудно с чем-то сравнивать эту цифру.

По поводу RAID1 vs RAID10. У вас может быть система с преимущественно одноблочным чтением (не работает страйпинг) и я так предполагаю, тестировали с небольшим кол-вом пользователей. Поэтому такой результат. Правда позже у вас будет болеть голова по поводу ручной балансировки ВВ между этими 6 RAID1, о чем вам уже писали выше.



У меня чистый OLTP.
Балансировку ввода вывода по табличным пространствам я считаю
прямой обязаностью ДБА, вот пускай и делает свое дело, я как ДБА
от эту работу переложить на плечи контролера не пытаюсь.
При этом экономлю для своей организации десятки тысяч $$ $$$
на покупке нового железа.

Здесь может рассудить только специальное тестирование, без его результатов
я не вижу смысла развивать дальше эту полемику.



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


Это относится только к RAID3, RAID5 при записи из-за пересчета четности и то не всегда (предмет оптимизации для контроллера).
Кэш есть у всех за исключением ну уж совсем дешевых простейших контроллеров. Разумеется больше ширины страйпа, сейчас гигабайтные кэшы обычная практика.




Если по поводу атомарности я не ошибаюсь, и бонус всетаки имеется то
Если размер страйпа в десятки раз привышет размер блока базы,
вероянтость попадания другого блока по индексу в этом страйпе ничтожно мал
на терабайтной базе. Т.Е. весь страйп кроме одного блока базы прочитан неперед, но использован не будет. И весь страйп будет вытеснен из кеша(бонуса) в ближаешее время. Эти не используемые базой в данный момент блоки этого страйпа я и называл "мусором".
В raw device тяжело хранить еще что нибудь помимо базы данных.


У оракла есть варианты мультиблочного чтения индекса (Fast Full Index Scan, Full Index Scan) - все зависит от природы конкретного запроса, чаще - это действительно одноблочное чтение.


понятное дело.



Весь страйп (целая полоса) в этом случае не будет прочитан. Чтобы он был прочитан (целиком или частично), нужно чтобы с уровня ОС пришла запрос на чтение кол-ва смежных блоков, достаточного, чтобы покрыть страйп (целиком или частично). Если речь о stripe unit size (порция на одном диске) - думаю зависит от контроллера. Возможно некоторые дешевые контроллеры так и поступают. Здесь ориентироваться нужно на блок (страницу) памяти кэша, для контролера это и есть юнит памяти, в которых он оперирует.


согласен.


Raw devices - имхо оптимально для баз данных. То что базы на raw тяжело администрить - обычно говорят те, кто не пробовал. Реально больших неудобств нет, зато надежность, пефоманс выше. Что-то еще кроме БД хранить на тех же дисках - нет смысла. Ну если уж очень надо - смонтируйте на отдельной партиции фс и храните на здоровье.


Я так и делаю на протяжении последних 5 лет.

С уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32649090
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killed
Тут вот какое дело. Если шина - чистый SCSI , ее довольно легко забить. Кстати, на OLTP это сделать проще, вопреки распространненому мнению. SAN SCSI-FC - промежуточный вариант - "SAN для бедных". А вот чистый FC (2 канала по 2Гбит/сек.) сделать узким местом будет трудно. По меньшей мере я просто не встречался пока с таким случаем.


И где это такую траву продают?
1. UltraSCSI320 - это есть ни что иное как 320МБ/с поскольку интерфейс параллельный.
2. FC-AL 2Gb/c ( Гигабит в секунду ) - интерфейс последовательный.
Пересчитывает:
2*1024*1024*1024/8192 = 262,144/1024=256МБ/с

http://]http://www.sun.com/storage/white-papers/fc_comp.html

Fibre Channel Arbitrated Loop
Fibre Channel is an industry-standard, high-speed serial data transfer interface that can be used to connect systems and storage in point-to-point or switched topologies. Fibre Channel Arbitrated Loop (FC-AL), developed with storage connectivity in mind, is a recent enhancement to the standard that supports copper media and loops containing up to 126 devices, or nodes. Like SSA, FC-AL loops are hot-pluggable and tolerant of failures.
The FC standard supports bandwidths of 133 Mb/sec., 266 Mb/sec., 532 Mb/sec., 1.0625 Gb/sec., and 4 Gb/sec. (proposed) at distances of up to ten kilometers. Gigabit Fibre Channel's maximum data rate is 100 MB/sec. (200 MB/sec. full-duplex) after accounting for overhead.

In addition to its strong channel characteristics, Fibre Channel also provides powerful networking capabilities, allowing switches and hubs to enable the interconnection of systems and storage into tightly-knit clusters. These clusters will be capable of providing high levels of performance for file service, database management, or general purpose computing. Because it is able to span up to 10 kilometers between nodes, Fibre Channel will allow the very high speed movement of data between systems that are greatly separated from one another.

The FC standard defines a layered protocol architecture consisting of five layers, the highest defining mappings from other communication protocols onto the FC fabric. Protocols supported include:


Small Computer System Interface (SCSI)
Internet Protocol (IP)
ATM Adaptation Layer for computer data (AAL5)
Link Encapsulation (FC-LE)
IEEE 802.2
Because the details of the FC technology are hidden by the protocol interfaces, the impact on system software is minimal.
Remarkably, all supported protocols can be used simultaneously. For example, an FC-AL loop running IP and SCSI protocols can be used for both system-to-system and system-to-peripheral communication, sharing a communication path that is as fast as most mainframe backplanes. This capability eliminates the need for separate I/O controllers, dramatically reducing costs, cabling complexity, and board count. (This is especially an advantage over SCSI installations, in which controller proliferation can become a significant problem.) Furthermore, users who have already invested in FC for their system interconnection can leverage that investment to meet their peripheral interconnection needs as well.



Так что большой привет, насчет скорости FC-AL.
кол-во устройств и расстяние , это далеко не производительность.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32649452
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneS
Так что большой привет, насчет скорости FC-AL.
кол-во устройств и расстяние , это далеко не производительность.

Я согласен, что U320 по скорости приближается к FC.
Только Вы burst rate привели. Для скази умножьте это примерно на 0.6. Это будет ближе к истине.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32649454
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-
OFF: Кстате FC это коммуникационный протокол(читай протокол маршрутизации),
а не протокол работы с перефирийными устройствами.
Поэтому SCSI-FC связка существует всегда при подключении
FC диской системы (реализация FC-SCSI реализована в дисковой стойке или
на контролере диска).
FC - это протокол носитель, который инкапсулирует в себе
протокол более высокого уровня в часности SCSI.
Я не понял, что вы имели ввиду под вариантом "для бедных",
он дешевле чего? и за счет чего?


Да, коряво сказал. Я имел в виду сопряжение с дисками в стойке. Разница в цене. Дешевле за счет использования SCSI-дисков вместо FC-дисков
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32650107
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ребята, мне, как автору топика, все же хотелось бы, чтобы мы обсуждали не преимущества/недостатки страйпинга и уровней RAID, а архитектуру БД. Я вот нашел интересную статью в инете: Clustering for Scalability и предлагаю ее обсудить. Так все-таки: Shared-disk или Shared-nothing ?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32650141
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здесь 2 линка от Sybase:
The Simplification of Data Warehouse Design
http://www.sybase.com/content/1010008/rcubes_wp_L01496-v2.pdf

A New Data Warehousing Paradigm for User and Data Scalability
http://www.sybase.com/content/1008841/iq_wp_l01411-v2.pdf
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32650399
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, а каким образом в архитектуре IBM DB2 определяется, какой узел (узлы) будут обрабатывать запрос? Каким образом осуществляется балансировка нагрузки на узлы: на уровне СУБД или другого софта? Где почитать можно?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32650453
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, а каким образом в архитектуре IBM DB2 определяется, какой узел (узлы) будут обрабатывать запрос? Каким образом осуществляется балансировка нагрузки на узлы: на уровне СУБД или другого софта? Где почитать можно?

Если речь идёт о массивно-параллельной архитектуре (shared nothing), то запрос обрабатываться должен одновременно (параллельно) всеми узлами. В этом заключается суть использования архитектуры MPP для СУБД.
Соответственно, балансировка нагрузки должна обеспечиваться на уровне СУБД. По карйней мере, так делается в Терадате. В DB2 должно быть то же самое.

Вот, что IBM пишет в статье:

IBMClustering for high availability is a task that can be done by the operating system for any data service like a database. Clustering for scalability requires "smarts" in the database engine as well.

Естественно, база должна быть умной и понимать, в какой среде она работает.
Для эффективной балансировки нагрузки должно выполняться одно важное условие - данные таблиц должны быть равномерно распределены по узлам системы.
Кстати, и availability тоже не только задача операционной системы, но и СУБД должна тоже понимать, что это такое, и как её достичь.


Так все-таки: Shared-disk или Shared-nothing

Для хранилищ данных больших объёмов пока ничего лучше shared nothing не придумали. По крайней мере, пока.



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32650476
Фотография Я и ёжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов. Так все-таки: Shared-disk или Shared-nothing ?

А почему "или"? Мне кажется значительно интереснее вариант "и".
Федеративная база с Shared-disk узлами.
Например, имеем кластер о 8-головах и 4 базы данных работающие как федеративная база данных. В чистом Shared-nothing варианте, 4 головы заняты, 4-простаивают в ожидании аварии. Теперь берем смешанный вариант,
над кадой базой по две головы, никто не простаивает, и имеем очень гибкую систему:
1) при аварии одной из голов достаточно переключить пользователей на работающую голову над той-же базой, время восстановления минимально.
2) возможно гибкое перераспределение вычислительной мощности, допустим на ночь передаем дополнительные головы оним узлам( на которых больше нагрузка) днем другим.
3) имеем преимущество федеративного распределения нагрузки по узлам ( базам).

Таким образом мы получаем надежность, скорость восстановления и гибкость при распределении вычеслительной мощности Shared-disk и производительность и распределение нагрузки Shared-nothing.

Данный вариант возможен на Oracle. И я думаю на DB2, если не ошибаюсь на Mainframe ( какойто DB2 поддерживает Shared-disk).
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32650489
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей, не получится ли так, что для Вас главным ограничителем окажется бюджет проекта (бюджет будет заставит использовать то или иное решение)?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32650509
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В чистом Shared-nothing варианте, 4 головы заняты, 4-простаивают в ожидании аварии.

Это не так. В чистом Shared-nothing (каковым IBM объявил только Терадату - см. статью на которую ссылается Сергей) работают все узлы системы. Они полностью равноправны и никакой из них не простаивает в ожидании аварии. Это было бы очень неэффективно. При аварии производительность уменьшается пропорционально количеству потерянных узлов.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32650558
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ТихоновРебята, мне, как автору топика, все же хотелось бы, чтобы мы обсуждали не преимущества/недостатки страйпинга и уровней RAID, а архитектуру БД. Я вот нашел интересную статью в инете: Clustering for Scalability и предлагаю ее обсудить. Так все-таки: Shared-disk или Shared-nothing ?


Я, все же не понимаю зачем вы пытаетесь решать эту задачу с помощью кластера?

Поскльку у вас смешанная нагрузка 50:50 (OLTP + DSS ), то мне кажется ваше задача должна решаться с использованием аппаратного партицирования.
Я так понимаю оно присутствует у большинства производителей железа.
То есть я все же за железо типа SuperDoom от HP или Sun Fire E25K.
Почему?

1. Минимальный гемор с балансировкой по сравнению с кластерами.
2. Динамическая реконфигурация железа.
Ну необходимо вам сейчас увеличить пропускную способность OLTP части, добавили процессоров, нужно для DSS части опять же оторвали в одном месте добавили в другом.
3. Все так же пока не понятно, это будет одна и таже БД или все же два єкземпляра?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32650870
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneSЯ, все же не понимаю зачем вы пытаетесь решать эту задачу с помощью кластера? Потому что это более отказоустойчивое решение. Я хочу совместить Availability и Scalability ...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651048
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
За счет чего shared nothing кластер будет более отказоустойчив? Теряем один нод, что тогда?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651050
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот и мне интересно...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651132
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если у нодов - независимые подсистемы ВВ, то по идее потеряете доступ к части данных.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651240
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов EugeneSЯ, все же не понимаю зачем вы пытаетесь решать эту задачу с помощью кластера? Потому что это более отказоустойчивое решение. Я хочу совместить Availability и Scalability ...

Ага, именно по этому такие ребята, как Visa и EuroPay их не используют.
А используют mainframe-ы.

Дело в том, что кластеринг для СУБД - это такая рекламная компания, для увеличения продаж СУБД, ну прям как Java, NET и другие "звездные продукты".
Шума много, а начнешь выяснять доказательств маловато или не убедительно.
Как говорится в "в мутной воде проще рыбку впоймать" , вот софтверные конторы и поднимаю такую муть, для увеличения доходности.

Пример возмем кластера от Oracle.
1. Только начиная с 9i у него появился Cache Fusion , который позволяет передавать болоки не через диск , а по интерконнекту между кэшами отдельных узлов.
2. Подразумевалось что использование кластеров позволит снизить затраты компании на hardware, при этом почему-то умалчивается что затраты на кластеринг тоже растут. ( Oracle EE стоит 40к на процессор, для того чтобы его использовать в кластерной конфигурации надо еще 20к итого 60к * число узлов. А уж если ван нужно партицирование или еще что-то то эта сумма и того выше).
Идея была конечно хорошей ,но это банальное перераспределение денег.
Тем более многопроцессорные системы вобще-то лучше ведут себя и под нагрузкой и при параллельном доступе, а динамическое партицирование вообще их делает "The best". Недостаток их конечно в больших первоначальных затратах.

3. Использование кластера от Oracle (shared-disk) подразумевает использование очень не слабой дисковой подсистемы, дешевеньким продуктом вы тут не отделаетесь, поскольку дисковая система как раз самое узкое место кластера от Oracle, поэтому в итоге необходимо иметь второй экземпляр дисковой системы для failover-а, иначе при выходе из строя дисковой подсистемы , весь кластер упадет.
4. Еще про отказоустойчивость.
Что вы имеете ввиду? Любая оказоустойчивость подразумевает дубляж.
То наличие двух хостов , двух дисковых подсистем.
Кластеры в минимальной конфиугации этого не продоставляют, скорей лучшим решением является standby БД.

Аналогично можно сказать и про кластерные системы конкурентов.
То есть кластерные решения конечно работают, но в очень специфических условия, а ваши условия точно не для них.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651271
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В данном случае нельзя быть и умным и красивым односременно.
В случае shared-disk мы имеем перегрузку(overload) в случае отказа
одной из нод, в случае shared nothing мы будем иметь потерю доступа
к части данных(на время востановления узла) без потери
общей производительности.
Что в данном случае важнее зависит от приложения.
Это аварийная ситуация и как ее обрабатывать
без знания предметной области сказать тяжело.
За немерянные деньги можно заказать систему с полным резервированием,
но при этом часть ресусов будут простиаивать до наступления
аварийной ситуацииb, оправдает ли себя система такой стоимости тоже
зависит от приложения.

С уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651276
gardenman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
Ага, именно по этому такие ребята, как Visa и EuroPay их не используют.

Насколько я помню *конечно может уже неправ* но VISA в Bank Of America стоит на BASE 24, Tandem, NonStop SQL. Да и во многих процесинговых центрах стоит эта система. Типа супер - отказоустойчивая. Именно - кластарная. Как реализована отказоустойчивость - это нужно уже архитектуру смотреть. Можно ведь каждую ноду сдублировать.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651289
c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Da, a v City Corp - Mainframe's claster..
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651297
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-В данном случае нельзя быть и умным и красивым односременно.
В случае shared-disk мы имеем перегрузку(overload) в случае отказа
одной из нод, в случае shared nothing мы будем иметь потерю доступа
к части данных(на время востановления узла) без потери
общей производительности.
С уважением, onstat-

Да, в случае с Oracle просто коннекты будут разбросаны по другим нодам и возможен даже вариант, когда пользователь этого даже не заметит, то есть все его наработки останутся.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651319
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
gardenman автор
Ага, именно по этому такие ребята, как Visa и EuroPay их не используют.

Насколько я помню *конечно может уже неправ* но VISA в Bank Of America стоит на BASE 24, Tandem, NonStop SQL. Да и во многих процесинговых центрах стоит эта система. Типа супер - отказоустойчивая. Именно - кластарная. Как реализована отказоустойчивость - это нужно уже архитектуру смотреть. Можно ведь каждую ноду сдублировать.

У них несколько другие кластеры.
Наверно речь идет о Failover кластере.
То есть два узла, но зато всем узлам узлы.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651337
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
За счет чего shared nothing кластер будет более отказоустойчив? Теряем один нод, что тогда?

Всё просто - узлы объединяются в группы (в Терадате это называется клика), узлы в клике имеют доступ к дискам друг друга на случай выхода узла из строя. Если это происходит, виртуальные процессы, работавшие на упавшем узле, перезапускаются на оставшихся. Данные при этом не теряются. Теряются запросы, которые выполнялись в то время, когда падает узел.

Следующий механизм - защита от отказа дисковой подсистемы. Естественно, дублирование необходимо (как основа любой системы обеспечения отказоустойчивости). Я уже написал о кликах, так вот, если в системе больше одной клики, то её можно сконфигурировать так, что таблицы базы данных будут дублироваться. Этот механизм называется FALLBACK и доступен как на уровне базы данных, так и на уровне отдельных таблиц.
Принцип простой - альтернативный портишонинг одной и той же таблицы с тем, чтобы один и тот же партишион хранился (дублироваля) на дисках двух разных клик. Тогда, если падает дисковый массив целой клики, система всё равно остаётся работоспособной.

Есть и ещё один механизм - называется dual active. Это когда две системы полностью дублируют друг друга, но работают при этом обе в активном режиме. Но, естественно, это решение для mission critical-приложений.

Непонятны ваши сомнения. Неужели вы думаете, что в архитектуре, которой уже более 20 лет не предусмотрены механизмы обеспечения отказоустойчивости? Рекомендую почитать статьи про архитектуру Терадаты, ссылки на которые я приводил выше. У меня сложилось впечатление, что вы поленились их почитать.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651345
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneSТолько начиная с 9i у него появился Cache Fusion , который позволяет передавать болоки не через диск , а по интерконнекту между кэшами отдельных узлов. Замечательно, уже даже Oracle 10g есть...
EugeneSИспользование кластера от Oracle (shared-disk) подразумевает использование очень не слабой дисковой подсистемы ИМХО, когда речь идет о больших объемах данных, это и так понятно. Тут что с Oracle, что без него...
EugeneSЛюбая оказоустойчивость подразумевает дубляж.
То наличие двух хостов , двух дисковых подсистем. Нормально. Взрослые дисковые стойки и так имеют в себе дублирование компонентов, далее идем по архитектуре SAN и топологиям - два SAN-свича, два HBA в каждый сервер. И приходим к ситуации no single point of failure

А что делать, если один большой шкаф с тучей процов и памяти перестанет работать :-\\?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651364
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов EugeneSТолько начиная с 9i у него появился Cache Fusion , который позволяет передавать болоки не через диск , а по интерконнекту между кэшами отдельных узлов. Замечательно, уже даже Oracle 10g есть...
EugeneSИспользование кластера от Oracle (shared-disk) подразумевает использование очень не слабой дисковой подсистемы ИМХО, когда речь идет о больших объемах данных, это и так понятно. Тут что с Oracle, что без него...
EugeneSЛюбая оказоустойчивость подразумевает дубляж.
То наличие двух хостов , двух дисковых подсистем. Нормально. Взрослые дисковые стойки и так имеют в себе дублирование компонентов, далее идем по архитектуре SAN и топологиям - два SAN-свича, два HBA в каждый сервер. И приходим к ситуации no single point of failure

А что делать, если один большой шкаф с тучей процов и памяти перестанет работать :-\\?

1. В таком шкафу вы вряд-ли найдете хоть один компонент который не дублируется.
2. Вам ничего не мешает иметь два шкафа, но это уже для случая missio-critical.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651371
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что делать, если один большой шкаф с тучей процов и памяти перестанет работать :-\\?

Курить бамбук :) И ждать пока его починят.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651389
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский А что делать, если один большой шкаф с тучей процов и памяти перестанет работать :-\\?

Курить бамбук :) И ждать пока его починят.


С уважением,
Константин Лисянский
http://lissianski.narod.ru

Когда кластер завалится , вы тоже узнаете всю правду, только вряд ли это вам уже поможет.
:)
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651408
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneS1. В таком шкафу вы вряд-ли найдете хоть один компонент который не дублируется.
2. Вам ничего не мешает иметь два шкафа, но это уже для случая missio-critical.
Вопрос еще и в том, что хочеся "строить" систему из стандартных "строительных" блоков, которые есть на рынке. Ну, т.е. понятно, что это будут крупные мощные серверы, но выходить на уровень мэйнфреймов что-то пока не хочется...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651412
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский А что делать, если один большой шкаф с тучей процов и памяти перестанет работать :-\\?

Курить бамбук :) И ждать пока его починят.


С уважением,
Константин Лисянский
http://lissianski.narod.ru

Когда кластер завалится , вы тоже узнаете всю правду, только вряд ли это вам уже поможет.
:)
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651419
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийКурить бамбук :) И ждать пока его починят. Позволю себе пошутить: это кредо TeraData или ваше личное ;-) ?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651431
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneSКогда кластер завалится , вы тоже узнаете всю правду, только вряд ли это вам уже поможет. :) Ну, это все к тому же вопросу: scale-up (увеличение мощности одного узла) или scale-out (наращивание количества узлов)?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651446
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов EugeneSКогда кластер завалится , вы тоже узнаете всю правду, только вряд ли это вам уже поможет. :) Ну, это все к тому же вопросу: scale-up (увеличение мощности одного узла) или scale-out (наращивание количества узлов)?

Я надеюсь вы не подразумеваете двух-узловую конфигурацию?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651464
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
в оракле ноды можно подключать на лету, нагрузка распределяется тоже на лету, в shared nothing - как я понимаю нужно размазывать бд ручками.

db2 cluster vs RAC
http://www.oracle.com/technology/products/database/clustering/pdf/RACvDB2.pdf
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651469
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
вот еще взгляд от оракла:
http://www.oracle.com/technology/deploy/performance/pdf/FederatedvsClustered.pdf
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651649
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Позволю себе пошутить: это кредо TeraData или ваше личное ;-) ?

Личное. Шутка.

в оракле ноды можно подключать на лету, нагрузка распределяется тоже на лету, в shared nothing - как я понимаю нужно размазывать бд ручками.

При добавлении узла в Терадате система сама перераспределяет данные. Автоматически. В плане ручек - надо будет запустить процесс реконфигурации после добавления узла. Об этом уже писал Павел Новокшонов выше.



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651667
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
тут ?
автор
2) При добавлении новых узлов в Терада делается реконфиг и данные автоматичести перераспределяются между узлами в новой конфигурации кластера. Система при этом недоступна для пользователей. Добвалять узлы в кластер дело дорогое, вызванное потребностью "подкачать мускулы". Одним словом бывает это нечасто.

не понятно какие данные перераспределяются, все ? т.е. по какому принципу сервер определяет что вот эту таблицу нужно резать ?

PS.а такое умеют mssql & db2 ?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651712
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понятно какие данные перераспределяются, все ? т.е. по какому принципу сервер определяет что вот эту таблицу нужно резать ?

Ещё раз повторю то, что писал немного выше:


Если необходимо добавить новый узел, то нужно взять маленькие кусочки от каждого куска таблицы с каждого присутствующего узла и переместить эти кусочки на новый узел.
Скажем, если у нас было 10 узлов, на каждом из которых хранилось по 110 записей, то при добавлении одиннадцатого узла мы берём по 10 записей с каждого узла, складываем, и кладём на новый узел. Получаем 11 узлов, на каждом из которых хранится по 100 записей.


Таким образом, перераспределяется только часть данных, которая идёт на вновь подключённый узел.


В Терадате каждая таблица "режется", включая таблицы системного каталога. Соответственно, сервер знает всегда что любую таблицу надо резать.
Принцип, по которому она режется - хэш-партишионинг. Об этом тоже было выше. Не сочтите за труд, пожалуйста, просмотреть мои посты этого топика.



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651781
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский
Непонятны ваши сомнения. Неужели вы думаете, что в архитектуре, которой уже более 20 лет не предусмотрены механизмы обеспечения отказоустойчивости? Рекомендую почитать статьи про архитектуру Терадаты, ссылки на которые я приводил выше. У меня сложилось впечатление, что вы поленились их почитать.


С уважением,
Константин Лисянский
http://lissianski.narod.ru

Статью пока не прочел, но и без нее понятно, каким образом в теории можно повысить отказоустойчивость кластера. Вопрос денег. Сколько это будет стоить, какие порядки денег для озвученного вами варианта с обеспечением отказоустойчивости каждого узла кластера?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651784
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов EugeneSТолько начиная с 9i у него появился Cache Fusion , который позволяет передавать болоки не через диск , а по интерконнекту между кэшами отдельных узлов. Замечательно, уже даже Oracle 10g есть...
EugeneSИспользование кластера от Oracle (shared-disk) подразумевает использование очень не слабой дисковой подсистемы ИМХО, когда речь идет о больших объемах данных, это и так понятно. Тут что с Oracle, что без него...
EugeneSЛюбая оказоустойчивость подразумевает дубляж.
То наличие двух хостов , двух дисковых подсистем. Нормально. Взрослые дисковые стойки и так имеют в себе дублирование компонентов, далее идем по архитектуре SAN и топологиям - два SAN-свича, два HBA в каждый сервер. И приходим к ситуации no single point of failure

А что делать, если один большой шкаф с тучей процов и памяти перестанет работать :-\\?

Для Оракла вам фактически нужно иметь 2 таких SAN'a желательно разнесенных удаленно в разные датацентры. И разумеется всю инфраструктуру, которая обеспечит прозрачное переключение на другой датацентр
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651803
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killedДля Оракла вам фактически нужно иметь 2 таких SAN'a желательно разнесенных удаленно в разные датацентры. И разумеется всю инфраструктуру, которая обеспечит прозрачное переключение на другой датацентр Ну, это уже из разряда катастрофоустойчивых систем. Об этом пока речь не идет... ;-)
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651840
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вам по-любому, если речь об оракл, придется делать стендбай. Так пусть он будет таким же по качеству, как основная система :)
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651843
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo!вот еще взгляд от оракла:
http://www.oracle.com/technology/deploy/performance/pdf/FederatedvsClustered.pdf Прочитал. В принципе, достаточно аргументированное и серьезное сравнение СУБД. Иногда правда с маленькими перегибами, но у кого их нет... ;-)

ЗЫ
Спасибо за ссылки.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32651847
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killedа вам по-любому, если речь об оракл, придется делать стендбай. Так пусть он будет таким же по качеству, как основная система :) Не совсем понял.
Если у меня серьезная дисковая стойка, в которой нет single point of failure и массивы на ней построены с избыточностью, плюс дублирование по SAN-свичам, плюс дублирование HBA в серверах, что еще дублировать?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32652170
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов killedа вам по-любому, если речь об оракл, придется делать стендбай. Так пусть он будет таким же по качеству, как основная система :) Не совсем понял.
Если у меня серьезная дисковая стойка, в которой нет single point of failure и массивы на ней построены с избыточностью, плюс дублирование по SAN-свичам, плюс дублирование HBA в серверах, что еще дублировать?

standby это сервер дублирующий данные, он находится
в состоянии readonly для пользователей все изменения делаются накатыванием журналов в реальном режиме времени с основного сервера.
И в случае аварии основного он в течении нескольких секунд поднимается в режим на полный доступ.
Также нужно учесть что у этого сервера свое дисковое пространство
(оно тоже дублируется).
Oracle & informix это делают с полпинка.
Решение о необходимости такого сервера standby всеравно принимать Вам.
Я, например, без него обхожусь.

С уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32652179
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов killedа вам по-любому, если речь об оракл, придется делать стендбай. Так пусть он будет таким же по качеству, как основная система :) Не совсем понял.
Если у меня серьезная дисковая стойка, в которой нет single point of failure и массивы на ней построены с избыточностью, плюс дублирование по SAN-свичам, плюс дублирование HBA в серверах, что еще дублировать?

Не пускать уборщицу в помещение где все это стоит.
Иначе никакой дубляж не поможет.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32652186
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов killedа вам по-любому, если речь об оракл, придется делать стендбай. Так пусть он будет таким же по качеству, как основная система :) Не совсем понял.
Если у меня серьезная дисковая стойка, в которой нет single point of failure и массивы на ней построены с избыточностью, плюс дублирование по SAN-свичам, плюс дублирование HBA в серверах, что еще дублировать?


А если серьезно, то наличие дублирующих компонент совсем не спасает от таких вещей как:
- "маски шоу"
- разгневаные пользователи которым не понравился сервис вашей компании.
- пожары и наводнения.
- просто другие варианты физического уничтожения офиса где все это стоит.
и т.д. и т.п.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32652218
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneS Сергей Тихонов killedа вам по-любому, если речь об оракл, придется делать стендбай. Так пусть он будет таким же по качеству, как основная система :) Не совсем понял.
Если у меня серьезная дисковая стойка, в которой нет single point of failure и массивы на ней построены с избыточностью, плюс дублирование по SAN-свичам, плюс дублирование HBA в серверах, что еще дублировать?


А если серьезно, то наличие дублирующих компонент совсем не спасает от таких вещей как:
- "маски шоу"
- разгневаные пользователи которым не понравился сервис вашей компании.
- пожары и наводнения.
- просто другие варианты физического уничтожения офиса где все это стоит.
и т.д. и т.п.

По моим данным в одной из сейсмоопасных стран один комплект дублирующего
оборудования(3-й) стоит в фуре под зданием. В случае форсмажора
трак уезжает в безопасное место и в течении 30 мин через спунтик
продолжает работать в штатном режиме.
Если ниформация того стоит то почему -бы и не купить дополнительный
комплект оборудования & SAT NET фуру тягач и электостанцию.
Вопрос в деньгах.

С уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32653025
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем.

В DB2 добавлять узлы online пока нельзя. Требуется перезапуск стсемы.
http://www.databasejournal.com/features/db2/article.php/10896_1598301_3

В Db2 обязательно дублировать только узел на котором находится каталог (hot stad by) все остальные могут быть зарезервированными другими рабочими узлами (mutual takeover). Но балансированное резервирование достигается через выделение одной ноды в hot-standby и она указывается как резервная для нескольких

Берем какой-нибудь blade center. и делаем каждый 6 сервер как hot standby или как вам нравится.

P.S. Я болею на частые ответы не ждите ответа
P.P.S. По поводу выполнения запроса несколькими узлами в Oracle (Oracle Paralell Query). Там что-то было не очень красиво. Кажется где-то в документации было написано что Oracle Parallel Query не использует buffer cache, и читает с диска. где-то в Oracle performance tuning guide.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32653049
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов killedа вам по-любому, если речь об оракл, придется делать стендбай. Так пусть он будет таким же по качеству, как основная система :) Не совсем понял.
Если у меня серьезная дисковая стойка, в которой нет single point of failure и массивы на ней построены с избыточностью, плюс дублирование по SAN-свичам, плюс дублирование HBA в серверах, что еще дублировать?

Ну вот навскидку два сценария.
1) Появление bad-блоков.
2) Пользователь по ошибке удалил критичные данные
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32653095
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay Kulikov
P.P.S. По поводу выполнения запроса несколькими узлами в Oracle (Oracle Paralell Query). Там что-то было не очень красиво. Кажется где-то в документации было написано что Oracle Parallel Query не использует buffer cache, и читает с диска. где-то в Oracle performance tuning guide.

Навскидку вот не припомню такого. С чего бы ему не использовать кэш-буффер?
Он еще дополнительную память помимо кэш-буфера использует для взаимодействия со слейвами. Это да.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32653171
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killedНу вот навскидку два сценария.
1) Появление bad-блоков.
2) Пользователь по ошибке удалил критичные данные По первому пункту - отпадает, потому что избыточность в массиве + в современных серьезных стойках есть фича, которая вообще прогнозирует отказы винтов и т.д.
По поводу удаления - ИМХО легче решить на уровне протоколирования изменений критичных данных на триггерах.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32653201
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первый пункт не может отпасть, поскольку ошибки могут быть и на уровне Оракла. Т.е. с точки зрения ОС это может быть вполне корректный блок, с точки зрения Оракла - неконсистентный.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32653215
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killed Сергей Тихонов killedа вам по-любому, если речь об оракл, придется делать стендбай. Так пусть он будет таким же по качеству, как основная система :) Не совсем понял.
Если у меня серьезная дисковая стойка, в которой нет single point of failure и массивы на ней построены с избыточностью, плюс дублирование по SAN-свичам, плюс дублирование HBA в серверах, что еще дублировать?

Ну вот навскидку два сценария.
1) Появление bad-блоков.
2) Пользователь по ошибке удалил критичные данные

1. Дисковый контроллер эти вопросы решает автоматически для каждого диска
если собран массив с избыточной целостностью. На каждом диске для этого есть соответствующий объем резервных блоков.

2. Здесь standby не поможет.
Нужно востанавливаться и катить журналы. Можно катить журналы на
standby в ручном режиме но это не чистый standby. Время поднятия системы равна времени наката всех журналов, и standby нельзя использовать ползователям на чтение(информация там не актуальна).

С уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32653288
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
автор2. Здесь standby не поможет.
Нужно востанавливаться и катить журналы. Можно катить журналы на
standby в ручном режиме но это не чистый standby. Время поднятия системы равна времени наката всех журналов, и standby нельзя использовать ползователям на чтение(информация там не актуальна).


в 10ке есть "recycle bin", я долго не мог понять кому она может понадобится :)
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32653293
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killedПервый пункт не может отпасть, поскольку ошибки могут быть и на уровне Оракла. Т.е. с точки зрения ОС это может быть вполне корректный блок, с точки зрения Оракла - неконсистентный.

Наступали и на такие грабли. Как правило в это возникает в случае
коллизий в SCSI шине если контроллер не умеет их(колизии) правильно обрабатывать. Помогает замены SCSI кабелей и/или отключение отложенной записи в кеше контролера.
Кстате на FC дисках я с таким не встречался.
С уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32653332
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo! автор2. Здесь standby не поможет.
Нужно востанавливаться и катить журналы. Можно катить журналы на
standby в ручном режиме но это не чистый standby. Время поднятия системы равна времени наката всех журналов, и standby нельзя использовать ползователям на чтение(информация там не актуальна).


в 10ке есть "recycle bin", я долго не мог понять кому она может понадобится :)

Я пока не читал концепт на 10-ку, Чем это отличается от обычного
ролбэк сегмента, и какая разница если транзакция закомичена.Как производится чистка корзины. Это новый тип транзакции
в часности для DDL операторов?
Для юзабельности это решение, для производительности - нет.
Я выбираю производительность, как отключить?

С уважение, onstat-

p.s I like informix more then other.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32653370
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов killedНу вот навскидку два сценария.
1) Появление bad-блоков.
2) Пользователь по ошибке удалил критичные данные По первому пункту - отпадает, потому что избыточность в массиве + в современных серьезных стойках есть фича, которая вообще прогнозирует отказы винтов и т.д.
По поводу удаления - ИМХО легче решить на уровне протоколирования изменений критичных данных на триггерах.

"Фантастика на втором этаже"
Вы никогда не видели как умирает контроллер или его начинает глючить а
вместе с ним и весь RAID.
А еще есть такая фитча как "битая память" которая потому сервером БД переносится в файлы БД и привет получаем сorrupted block.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32653375
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat- killed Сергей Тихонов killedа вам по-любому, если речь об оракл, придется делать стендбай. Так пусть он будет таким же по качеству, как основная система :) Не совсем понял.
Если у меня серьезная дисковая стойка, в которой нет single point of failure и массивы на ней построены с избыточностью, плюс дублирование по SAN-свичам, плюс дублирование HBA в серверах, что еще дублировать?

Ну вот навскидку два сценария.
1) Появление bad-блоков.
2) Пользователь по ошибке удалил критичные данные

1. Дисковый контроллер эти вопросы решает автоматически для каждого диска
если собран массив с избыточной целостностью. На каждом диске для этого есть соответствующий объем резервных блоков.

2. Здесь standby не поможет.
Нужно востанавливаться и катить журналы. Можно катить журналы на
standby в ручном режиме но это не чистый standby. Время поднятия системы равна времени наката всех журналов, и standby нельзя использовать ползователям на чтение(информация там не актуальна).

С уважением, onstat-

1. Контроллер здесь нипричем. Речь об оракловых багах.
2. Поможет, если накатывать логи на стендбай с задержкой по времени. Вопрос сводится к тому, чтобы успеть эту ситуацию обнаружить в эту дельту времени и принять решение о дальнейших действиях.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32653401
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Контроллер здесь нипричем. Речь об оракловых багах.
2. Поможет, если накатывать логи на стендбай с задержкой по времени. Вопрос сводится к тому, чтобы успеть эту ситуацию обнаружить в эту дельту времени и принять решение о дальнейших действиях.

Ну вообще-то избежать можно установив вычисление checksum, вот только производительность упадет, и обычно это не делают а только тогда когда появляется проблема..
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32653412
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneS

"Фантастика на втором этаже"
Вы никогда не видели как умирает контроллер или его начинает глючить а
вместе с ним и весь RAID.
А еще есть такая фитча как "битая память" которая потому сервером БД переносится в файлы БД и привет получаем сorrupted block.



1.Пользуйтесь правильными контролерами или делайте сохранение конфигурации на дискету.
Мои контроллеры (не FC) хранят свою конфигурацию в служебных секторах диска и замена контроллера происходит прозрачно.
Рекламой заниматься не буду.

2. Как правило к битым блокам базы приводят колизии в SCSI шине, я уже об этом писал. Я думаю у вас память с контролем четности на сервере, если нет, то кто вам виноват, что вы экономите на надежности сервера,
Если это дествительно проблема с RAM то это будет проявляться не
только в битых блоках базы.

с уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32653423
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat- EugeneS

"Фантастика на втором этаже"
Вы никогда не видели как умирает контроллер или его начинает глючить а
вместе с ним и весь RAID.
А еще есть такая фитча как "битая память" которая потому сервером БД переносится в файлы БД и привет получаем сorrupted block.



1.Пользуйтесь правильными контролерами или делайте сохранение конфигурации на дискету.
Мои контроллеры (не FC) хранят свою конфигурацию в служебных секторах диска и замена контроллера происходит прозрачно.
Рекламой заниматься не буду.

2. Как правило к битым блокам базы приводят колизии в SCSI шине, я уже об этом писал. Я думаю у вас память с контролем четности на сервере, если нет, то кто вам виноват, что вы экономите на надежности сервера,
Если это дествительно проблема с RAM то это будет проявляться не
только в битых блоках базы.

с уважением, onstat-


1. Ну хорошо глючный драйвер контроллера.
Короче ситуация "развалившийся массив" такая же нормальная внештатная ситуация , хотя и происходит реже чем выход из строя диска.

2. Это было не у меня .. но я потом эту базу поднимал.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32653433
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1 & 2.

Это все не важно. Если упадет, то бизнесу будет наплевать, что там за глюк был
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32653455
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killed onstat-

2. Здесь standby не поможет.
Нужно востанавливаться и катить журналы. Можно катить журналы на
standby в ручном режиме но это не чистый standby. Время поднятия системы равна времени наката всех журналов, и standby нельзя использовать ползователям на чтение(информация там не актуальна).

С уважением, onstat-

2. Поможет, если накатывать логи на стендбай с задержкой по времени. Вопрос сводится к тому, чтобы успеть эту ситуацию обнаружить в эту дельту времени и принять решение о дальнейших действиях.

Имненно эту ситуацию я и имел ввиду под но это не чистый standby.

с уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32653468
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да он такой же чистый. Вы просто обеспечиваете транспорт + накат скриптами. Для Оракла принципиальной разницы нет.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32653476
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в терминах оракла это standby и managed standby соответственно.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32653554
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В терминах может и нет, а в использовании ресурсов,
и скорости востановления работоспособности системы есть,
я просто на это хотел обратить внимание.

С уважением, onstat-

зы В любом случае ко всему нужно подходть взвешенно.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655057
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей ТихоновВсем привет.

Итак, условия задачи следующие: нужно построить VLDB. Объем - терабайты.
Кто чего думает? В принципе вариантов два:

MSSQL

Oracle

Вот и давайте пообсуждаем плюсы и минусы каждого варианта ;-) .

ЗЫ
В случае c Oracle вопрос выбора ОС также открыт...


Копий уже поломано не мало, но 1-й вариант(MSSQL) пока так и не обсуждался.
Позволю себе пару мыслей по этому поводу(для продолжения беседы)
исходя из обьемов базы

1. На Win2000AS количество процессоров ограничено 4 мя( О datacenter отделно).
2. Обьем непрырывно адресуемого пространства RAM 4 Gb.
3. Количество узлов кластера 2.
4. Количество логических дисков ограничено буквами алфавита.:)
5. Datacenter - позволяет обойти практически все эти ограничения
кроме памяти и логических дисков, что тоже немаловажно.
Он поставляется только под определенную сертифицированную
конфигурацию железа(апргрейд затруднен).
Патчи против всяких там "ползучих гадов" выходят крайне долго.

6. 64 - разрядную винду в промышленной эксплуатации наверное еще никто не видел, исходя из имперического правила, что на следующую
версию (платформу) M$ можно переходить только после выхода 3-го сервиспака этот вариант я рассматривать не хочу.

То есть , как по мне, M$ еще не доросли.......

С уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655210
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat- Сергей ТихоновВсем привет.

Итак, условия задачи следующие: нужно построить VLDB. Объем - терабайты.
Кто чего думает? В принципе вариантов два:

MSSQL

Oracle

Вот и давайте пообсуждаем плюсы и минусы каждого варианта ;-) .

ЗЫ
В случае c Oracle вопрос выбора ОС также открыт...


Копий уже поломано не мало, но 1-й вариант(MSSQL) пока так и не обсуждался.
Позволю себе пару мыслей по этому поводу(для продолжения беседы)
исходя из обьемов базы

1. На Win2000AS количество процессоров ограничено 4 мя( О datacenter отделно).
2. Обьем непрырывно адресуемого пространства RAM 4 Gb.
3. Количество узлов кластера 2.
4. Количество логических дисков ограничено буквами алфавита.:)
5. Datacenter - позволяет обойти практически все эти ограничения
кроме памяти и логических дисков, что тоже немаловажно.
Он поставляется только под определенную сертифицированную
конфигурацию железа(апргрейд затруднен).
Патчи против всяких там "ползучих гадов" выходят крайне долго.

6. 64 - разрядную винду в промышленной эксплуатации наверное еще никто не видел, исходя из имперического правила, что на следующую
версию (платформу) M$ можно переходить только после выхода 3-го сервиспака этот вариант я рассматривать не хочу.

То есть , как по мне, M$ еще не доросли.......

С уважением, onstat-

Одназначно не доросли.
А если выудить цену на DataCenter из тестов TPC-C, то так-то вообще надо посылать их в сад, как решение причем целиком.

http://www.tpc.org/results/individual_results/HP/hp_superdome_win64_exsum_030828.pdf
Microsoft Windows Server 2003,
Datacenter edition (64-bit) 1 T2372A opt064 $128,000
Это для 64 проц. конфигурации

http://www.tpc.org/results/individual_results/Unisys/unisys_es7000-540_304K_es.pdf
O/S: Windows 2003 Srvr, Datacenter Edtn,32P, 1yr Lsub. WND2332-TSP 2 1
$70,224
для 32 проц

Таким образом получаем стоимость ОС 128к/64= 2к за процессор.

Смотрим для Linux
http://www.tpc.org/results/individual_results/NEC/nec.express5800.1320xd.c5.3.040628.es.pdf

Для Solaris
http://www.tpc.org/results/individual_results/Fujitsu/fujitsu_pw2500_20040106_es.pdf
Multilingual Solaris(TM) 8 2/02 OE Media B23PT40H0H 1 1 100.00
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655455
locky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>4. Количество логических дисков ограничено буквами алфавита.:)
это шутка или серъезно? ежели серъезно, то причем тут логические диски и буквы алфавита?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655486
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-Копий уже поломано не мало, но 1-й вариант(MSSQL) пока так и не обсуждался.
Позволю себе пару мыслей по этому поводу(для продолжения беседы)
исходя из обьемов базы

1. На Win2000AS количество процессоров ограничено 4 мя( О datacenter отделно).
2. Обьем непрырывно адресуемого пространства RAM 4 Gb.
3. Количество узлов кластера 2.
4. Количество логических дисков ограничено буквами алфавита.:)
5. Datacenter - позволяет обойти практически все эти ограничения
кроме памяти и логических дисков, что тоже немаловажно.
Он поставляется только под определенную сертифицированную
конфигурацию железа(апргрейд затруднен).
Патчи против всяких там "ползучих гадов" выходят крайне долго.

6. 64 - разрядную винду в промышленной эксплуатации наверное еще никто не видел, исходя из имперического правила, что на следующую
версию (платформу) M$ можно переходить только после выхода 3-го сервиспака этот вариант я рассматривать не хочу.

То есть , как по мне, M$ еще не доросли.......

С уважением, onstat-
Ну во-первых - процессоров 8 и RAM тоже 8 в Win2000AS по максимуму может быть
Во-вторых, думаю что на платформу 64-bit уже смотреть можно.
В-третьих, 2 узла в кластере тут ни при чем, потому как MSSQL - это shared-nothing и только failover-cluster . Проблема не в операционке...

Выводы (для меня во всяком случае) следующие: пока что я рассматриваю только Oracle вместе с RAC , как СУБД, подходящую для моего проекта...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655490
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-4. Количество логических дисков ограничено буквами алфавита.:) Оно то так, но никто не мешает использовать mount points .
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655496
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
locky>4. Количество логических дисков ограничено буквами алфавита.:)
это шутка или серъезно? ежели серъезно, то причем тут логические диски и буквы алфавита?

Любой путь на патформе Виндоуз начинаестя с

a:\
b:\
c:\
..
z:\

буква это логический диск.
Каким способом их количество можно зделать больше чем букв в алфавите?


С уважением, onstat-
ps речь идет о базе данных больше терабайта, кстате.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655499
Городовой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
onstat- Сергей ТихоновВсем привет.

Итак, условия задачи следующие: нужно построить VLDB. Объем - терабайты.
Кто чего думает? В принципе вариантов два:

MSSQL

Oracle

Вот и давайте пообсуждаем плюсы и минусы каждого варианта ;-) .

ЗЫ
В случае c Oracle вопрос выбора ОС также открыт...


Копий уже поломано не мало, но 1-й вариант(MSSQL) пока так и не обсуждался.
Позволю себе пару мыслей по этому поводу(для продолжения беседы)
исходя из обьемов базы

1. На Win2000AS количество процессоров ограничено 4 мя( О datacenter отделно).
2. Обьем непрырывно адресуемого пространства RAM 4 Gb.
3. Количество узлов кластера 2.
4. Количество логических дисков ограничено буквами алфавита.:)
5. Datacenter - позволяет обойти практически все эти ограничения
кроме памяти и логических дисков, что тоже немаловажно.
Он поставляется только под определенную сертифицированную
конфигурацию железа(апргрейд затруднен).
Патчи против всяких там "ползучих гадов" выходят крайне долго.

6. 64 - разрядную винду в промышленной эксплуатации наверное еще никто не видел, исходя из имперического правила, что на следующую
версию (платформу) M$ можно переходить только после выхода 3-го сервиспака этот вариант я рассматривать не хочу.

То есть , как по мне, M$ еще не доросли.......

С уважением, onstat-
Профессионал сразу заметен и издалека! Не могли бы вы указать ссылку на источник про RAM в 4 Gb и ограничение в 4 процессора для Windows 2000 Advanced Server?
Заранее спасибо!
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655507
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneSОдназначно не доросли.
А если выудить цену на DataCenter из тестов TPC-C, то так-то вообще надо посылать их в сад, как решение причем целиком.

http://www.tpc.org/results/individual_results/HP/hp_superdome_win64_exsum_030828.pdf
Microsoft Windows Server 2003,
Datacenter edition (64-bit) 1 T2372A opt064 $128,000
Это для 64 проц. конфигурации Эта цифра блекнет на фоне того, сколько надо заплатить за СУБД... ;-))
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655512
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot onstat-]буква это логический диск.
Каким способом их количество можно зделать больше чем букв в алфавите?/quot] Я уже написал - mount points
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655520
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-ps речь идет о базе данных больше терабайта, кстате.
http://www.microsoft.com/sql/techinfo/administration/2000/rosetta.asp
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655549
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
процесоров действительно 8.

http://www.microsoft.com/windows2000/server/howtobuy/pricing/pricingwindows.asp

А вот про память я писал

автор
2. Обьем непрырывно адресуемого пространства RAM 4 Gb.


это ровно 2 в степени 32 бит.

С уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655555
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов EugeneSОдназначно не доросли.
А если выудить цену на DataCenter из тестов TPC-C, то так-то вообще надо посылать их в сад, как решение причем целиком.

http://www.tpc.org/results/individual_results/HP/hp_superdome_win64_exsum_030828.pdf
Microsoft Windows Server 2003,
Datacenter edition (64-bit) 1 T2372A opt064 $128,000
Это для 64 проц. конфигурации Эта цифра блекнет на фоне того, сколько надо заплатить за СУБД... ;-))

Я конечно понимаю, что блекнут, но сэкономить 100к никогда не вредно.
После того как появились тесты на Linux на 32 проц системе, мне очень тяжело найти повод почему я должен использовать не Unix cистему в качестве сервера БД.

Лично мой выбор, это: Solaris,HP,Linux
Конечно я бы попробовал OpenVMS, но это такой раритет, хотя насколько я слышал системы c OpenVMS имеют показатели отказоустойчивости повыше чему у кластерных систем или около того.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655591
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-это ровно 2 в степени 32 бит. Угу. Только есть еще такие фичи, как PAE и AWE ...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655608
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов onstat-это ровно 2 в степени 32 бит. Угу. Только есть еще такие фичи, как PAE и AWE ...

То есть вы хотите сказать, что на 32 разрядной платформе можно
непрерывно адресовать больше чем 2 в степени 32 байт.
Странно почему new, malloc и прочие ограничены разрядностью платформы?

С уважением, onstat-

Чем больше понимаешь, тем больше осознаешь, что ничего не понимаешь.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655613
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-То есть вы хотите сказать, что на 32 разрядной платформе можно
непрерывно адресовать больше чем 2 в степени 32 байт.
Странно почему new, malloc и прочие ограничены разрядностью платформы? Насчет непрерывно или нет - не знаю, но адресовать можно. Поищите инфо в хелпе винды (только версии AS или DC) или в инете по этим аббревиатурам (см. выше).
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655640
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов onstat-То есть вы хотите сказать, что на 32 разрядной платформе можно
непрерывно адресовать больше чем 2 в степени 32 байт.
Странно почему new, malloc и прочие ограничены разрядностью платформы? Насчет непрерывно или нет - не знаю, но адресовать можно. Поищите инфо в хелпе винды (только версии AS или DC) или в инете по этим аббревиатурам (см. выше).

То что ОС поддерживает я знаю и так.
Я в своей жизни не видел 32 разрадного приложения которому можно былобы отдать больше чем 3GB оперативной памяти. А 4 Gb теоретически возможный предел(IHMO). То есть как ее будет использовать MSSQL аж целых почти 8 Gb.
Для кого покумаем еще 4 Gb памяти с контролем четности.
А что такое 3Gb оперативки для базы данных в терабайт.

С уважением, onstat-
з.ы. Отозвитесь кто отдавал MSSQL больше 3Gb оперативки и как?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655671
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-Отозвитесь кто отдавал MSSQL больше 3Gb оперативки и как? Я отдавал. На сервере с 4 ГБ памяти MSSQL отдано ~3,35 ГБ. И работает - аж нарадоваться не могу ;-).

Другое дело, что MSSQL эту память только под буферный кэш юзает (возможно, еще под что-то, сейчас не помню). Т.е. создание индексов, построение хеш-таблиц для джоинов, сортировка, планы запросов и т.д. работают в обычном режиме. Собственно, этим и отличается 32-разрядная версия MSSQL 2000 от 64-bit.

ЗЫ
А как вы думали, топовые результаты в TPC-C для MSSQL 2000 получены для 32-bit? :-)
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655678
Городовой
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
onstat- Сергей Тихонов onstat-То есть вы хотите сказать, что на 32 разрядной платформе можно
непрерывно адресовать больше чем 2 в степени 32 байт.
Странно почему new, malloc и прочие ограничены разрядностью платформы? Насчет непрерывно или нет - не знаю, но адресовать можно. Поищите инфо в хелпе винды (только версии AS или DC) или в инете по этим аббревиатурам (см. выше).

То что ОС поддерживает я знаю и так.
Я в своей жизни не видел 32 разрадного приложения которому можно былобы отдать больше чем 3GB оперативной памяти. А 4 Gb теоретически возможный предел(IHMO). То есть как ее будет использовать MSSQL аж целых почти 8 Gb.
Для кого покумаем еще 4 Gb памяти с контролем четности.
А что такое 3Gb оперативки для базы данных в терабайт.

С уважением, onstat-
з.ы. Отозвитесь кто отдавал MSSQL больше 3Gb оперативки и как?
А вот сюда http://support.microsoft.com/default.aspx?scid=kb;en-us;274750 смотрите и пробуете. Про всякие тонкости, это уж отдельно. Но для терабайтных OS проблема все равно не разрешится.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655687
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов
Выводы (для меня во всяком случае) следующие: пока что я рассматриваю только Oracle вместе с RAC , как СУБД, подходящую для моего проекта...

А с ораклом ранее работали?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655702
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killedА с ораклом ранее работали?
C RAC - еще нет...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655709
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Городовой
А вот сюда http://support.microsoft.com/default.aspx?scid=kb;en-us;274750 смотрите и пробуете. Про всякие тонкости, это уж отдельно. Но для терабайтных OS проблема все равно не разрешится.


Спасибо, но ограничение в 4GB всеравно остается.
Т.Е. однозначно для баз более терабайта нужна 64 разрядная платформа,
Или про нормальную производительность можно забыть.

с уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655737
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-...однозначно для баз более терабайта нужна 64 разрядная платформа, или про нормальную производительность можно забыть. Абсолютно согласен :-).
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655742
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов onstat-...однозначно для баз более терабайта нужна 64 разрядная платформа, или про нормальную производительность можно забыть. Абсолютно согласен :-).

Добрался и посмотрел в Ваш профиль.
Так SUN для Вас самое то, и ходить далеко не нужно,
просто набрать внутренний номер.


С уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655759
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-...Так SUN для Вас самое то...Почему так однозначно? SUN - один из вариантов...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655764
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов onstat-...Так SUN для Вас самое то...Почему так однозначно? SUN - один из вариантов...

Вопервых по моим сведениям ваша организация самый крупный поставщик
SUN в Украине(Это не реклама).
Во вторых специалистов у Вас полно.
В третих ну сами понимаете ..... и вобще как это будет выглядеть если генеральный поставщик SUN в Украине покупает у IBM или HP RISK сервер для своих целей.

С уважением, onstat-
ps язык мой - враг мой :)
pps А мне всеравно больше нравится Informix, кстате IBM до сих пор ведет разработку под SUN.
ppps ЭТО НЕ РЕКЛАМА.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655768
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-
...однозначно для баз более терабайта нужна 64 разрядная платформа, или про нормальную производительность можно забыть.

Абсолютно согласен :-).


Позвольте усомниться. Подавляющее количество клиентов Teradata работает на 32-битной платформе. Порядка 200 клиентов имеют базы размером свыше терабайта.
При чём здесь память? Базы данных - это приложения, ориентированные на работу с дисками, а не памятью.
Производительность СУБД, на мой взгляд, всё же, определяется архитектурой системы, эффективным распараллеливанием обработки и балансировкой нагрузки, продвинутым оптимизатором и в целом хорошим движком sql, а не тем, сколько памяти операционка отводит приложению.



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655776
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский onstat-
...однозначно для баз более терабайта нужна 64 разрядная платформа, или про нормальную производительность можно забыть.

Абсолютно согласен :-).


Позвольте усомниться. Подавляющее количество клиентов Teradata работает на 32-битной платформе. Порядка 200 клиентов имеют базы размером свыше терабайта.
При чём здесь память? Базы данных - это приложения, ориентированные на работу с дисками, а не памятью.
Производительность СУБД, на мой взгляд, всё же, определяется архитектурой системы, эффективным распараллеливанием обработки и балансировкой нагрузки, продвинутым оптимизатором и в целом хорошим движком sql, а не тем, сколько памяти операционка отводит приложению.



С уважением,
Константин Лисянский
http://lissianski.narod.ru

Тем не менее, сейчас кэш-буферы в несколько гигабайт скорее обычная практика, чем исключение. Память в общем-то не так дорого стоит, грех не воспользоваться. На 32бит платформах (Win, Linux), чтобы адресовать больше памяти придется использовать механизмы трансляции адресов (принцип у всех общий). А это дополнительные издержки. Спрашивается зачем, если можно работать с 64бит и не иметь различных ограничений по определению.

А те клиенты, которых вы упомянули, видимо они уже довольно давно сидят на Террадате. У них был выбор 32 vs 64 в момент покупки? А то ведь и для Оракла можно говорить, что большинство до сих пор сидит на 32 бита и ничего, как то работают.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32655788
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дас :) ... Сергей, как автор топика, скажите : Вас все же альтернативы МС и Оракле интересуют или уже нет? А то получится скоро как в ОЛАП форуме с тов. Юрием(ака Cognos.narod): Вы начали с МС и Оракл, а мы Вас Терадату, IQ, IBM пытаемся уговорить попробовать/оценить... Может хватит? :)

killed: Да по-другому там многое. И скорости и железо и design и т.д. Потому что это базы для VLDB и DWH - начиная с ядра, кончая оптимизатором. Допустим агрегированные таблицы могут вообще быть не нужны, partitioning - когда база станет ~2ТБ(или ХХХмлн rows), тюнинга постоянного не надо, загрузка ХХГБ/час и т.д.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656047
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat- Сергей Тихонов onstat-...однозначно для баз более терабайта нужна 64 разрядная платформа, или про нормальную производительность можно забыть. Абсолютно согласен :-).

Добрался и посмотрел в Ваш профиль.
Так SUN для Вас самое то, и ходить далеко не нужно,
просто набрать внутренний номер.
С уважением, onstat-


Я, тоже посмотрел, так мы почти соседи, если вы конечно сидите
У Индустриального моста.

Но мое личное мнение насчет Sun.
1. дела у них идут не очень
2. Очень дорогой support, да еще и без локальных складов.
3. Интерес могут представлять только железо с числом процессоров больше 8 иначе железки на Intel-ах имееют предпочтение.
4. Кластер если уж вы решитесь строить точно не стоит строить на Sun-ах.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656059
Павел Новокшонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.Е. однозначно для баз более терабайта нужна 64 разрядная платформа, Или про нормальную производительность можно забыть.


Чепуха это батенька.

Приезжайте к нам в соседний Арканзас, там ХД у компании Вол-Март за сотню терабайт прекрасно работает в 32-разрядной архитектуре.

Немного за жизнь. Объем памяти в интелловском серваке от NCR скажем 4 ГБ max. К примеру кластер состоит из 14 узлов. 14Х4=56 ГБ на систему. Объем данных у меня в базе порядка 1 Терабайта. Данные лежат в 3-й нормальной форме и есть несколько десятков больших таблиц каждая из которых может быть порядка 20-30 ГБ. О каком кэше можно говорить когда пользователи выполняют в среднем 10000-15000 DSS запросов в день, объединяя большие таблицы,
используя самые различные условия выборки, выгружая большие объемы данных для построения многомерных кубов PowerPlay и тулзов по визуализации данных. Количество пользователей в ХД около 1000, данные собираются со всех 26 казино компании. Вся производительность на уровне железа определятся кол-вом узлов в системе, скоростью CPU в этих узлах и скоростью дисковой подсистемы (EMC Symmetrix). Оптимизация индексами, приоритеты и пр. это уже отдельные
приблуды.

Кэш конечно же хорош для OLTP запросов и приложений, но не всегда
полезен в терабайтных ХД с большим кол-ом пользователей и самое главное
с неограниченными возможностями строить любые запросы при помощи тулзов типа Cognos или Business Objects конечными пользователями.

Кстати у нас в хранилище работает ряд OLTP приложений где "легкие" запросы фиксировыны, очень неплохо кэшируются и выполняются в секундном диапазоне.

По поводу Оракла RAC есть ряд вопросов. Насколько его тяжело администрить в многоузловом кластере? Если это 20 узлов, означает ли это что у меня есть 20 инстансов Оракла на каждом узле? Нужно ли создовать dbspace'ы, tablespace'ы, добавлять дисквое пространство, по необходимости, делать реорги, перестраивать индексы и т.п. Скажем в Информиксе и DB2 (версии для OLTP систем) это приходится делать постоянно. В Терадате всего этого нет в принципе. Сущность CУБД одна в независимости от кол-ва узлов.

Насколько хорошо RAC может обрабатывать 20-50 одновременных тяжелых запросов пользователей? Можно ли при этом подгружать данные в хранилище? Данные могут быть в 3 НФ или же это должна быть многомерная
структура? Какие ограничения на ко-во узлов в кластере RAC?

Вопрос сложности администрирования совсем не праздный скажем в Штатах, где хороший DBA получает 80-100K в год и менеджмент учитывает сколько DBA'ев требуется в отдел для поддержки той или иной системы.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656060
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский

onstat-
...однозначно для баз более терабайта нужна 64 разрядная платформа, или про нормальную производительность можно забыть.

Абсолютно согласен :-).


Позвольте усомниться. Подавляющее количество клиентов Teradata работает на 32-битной платформе. Порядка 200 клиентов имеют базы размером свыше терабайта.



Что значит подавляющее? значит есть есть версия терадаты 64 бит.
Я обращаю ваше внимание на 64 разрядное приложение, а не возможность работать 32 разрдному серверу терадаты на 64 разрядной платформе.
А это очень большая разница.

Константин Лисянский
При чём здесь память? Базы данных - это приложения, ориентированные на работу с дисками, а не памятью.


Память очень даже причем, если у вас на индексные деревья
нехватает памяти о чем можно дальше говорить. А на join-ах >100 милионных
таблиц вы обязательно с этим столкнетесь.

Константин Лисянский
Производительность СУБД, на мой взгляд, всё же, определяется архитектурой системы, эффективным распараллеливанием обработки и балансировкой нагрузки, продвинутым оптимизатором и в целом хорошим движком sql, а не тем, сколько памяти операционка отводит приложению.


Если мы говорим о паралелизме, то лучше RISK платформы я не знаю.
Там паралелизм заложен аппаратно. Я также незнаю промышленно
выпускаемых сейчас 32 разрядных RISK систем.
IHMO SMP на Intel32 платформе производительность ограничена
частотой системной шины в случае работы с большими объемами данных(в кешах процессров ничего не задерживается).

С уважением onstat-

Хорошая у нас дискусия, однако.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656068
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов onstat-Отозвитесь кто отдавал MSSQL больше 3Gb оперативки и как? Я отдавал. На сервере с 4 ГБ памяти MSSQL отдано ~3,35 ГБ. И работает - аж нарадоваться не могу ;-).

Другое дело, что MSSQL эту память только под буферный кэш юзает (возможно, еще под что-то, сейчас не помню). Т.е. создание индексов, построение хеш-таблиц для джоинов, сортировка, планы запросов и т.д. работают в обычном режиме. Собственно, этим и отличается 32-разрядная версия MSSQL 2000 от 64-bit.

ЗЫ
А как вы думали, топовые результаты в TPC-C для MSSQL 2000 получены для 32-bit? :-)


Я вот недавно с одним знакомым общался , у него были проблемы на win32 платформа с Oracle тоже.
Проблема выглядит примерно так.
Поскольку реализация Oracle под Windows мультитредовая , а не мультизадачная как в Unix-like cистемах,то Oracle под Windows -это один процесс , который не может адресовать больше чем 4GB памяти, пользовательские сессии - это треды внутри этого процесса, следовательно число сессий ограничено таки 4GB.
В Unix же пользовательский серверный процесс - у каждого свой ( в Dedicated mode ) и каждый процесс может адресовать 4GB памяти.
Собственно это и есть причина почему 32 разрядность не так давит в Unix-like системах.
Но однозначно для вас 64-bit система - это решение.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656110
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел Новокшонов
1.По поводу Оракла RAC есть ряд вопросов. Насколько его тяжело администрить в многоузловом кластере? Если это 20 узлов, означает ли это что у меня есть 20 инстансов Оракла на каждом узле? Нужно ли создовать dbspace'ы, tablespace'ы, добавлять дисквое пространство, по необходимости, делать реорги, перестраивать индексы и т.п. Скажем в Информиксе и DB2 (версии для OLTP систем) это приходится делать постоянно. В Терадате всего этого нет в принципе. Сущность CУБД одна в независимости от кол-ва узлов.

2.Насколько хорошо RAC может обрабатывать 20-50 одновременных тяжелых запросов пользователей? Можно ли при этом подгружать данные в хранилище? Данные могут быть в 3 НФ или же это должна быть многомерная
структура? Какие ограничения на ко-во узлов в кластере RAC?

3.Вопрос сложности администрирования совсем не праздный скажем в Штатах, где хороший DBA получает 80-100K в год и менеджмент учитывает сколько DBA'ев требуется в отдел для поддержки той или иной системы.


1. Поскольку в Oracle Rac используется shared-disk, то на узлах будет только кэш и серверные процессы.
То есть это выглядит как несколько хостов разделяющие общее дисковое пространство. То есть реально набор файлов БД, просто он монтируется несколькими экземплярами ( кэш+ системные процессы ).
Все остальное как и везде, необходимо. Перестройка индексов и управление пространство и пр.
2. Этого не знает никто, потому я и настоятельно рекомендовал автору поста использовать "большую железку" для его задачи.

3. А что они еще не отдали все это на outsourcing индусам?
Ну ничего у них еще все впереди.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656124
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_DogДас :) ... Сергей, как автор топика, скажите : Вас все же альтернативы МС и Оракле интересуют или уже нет? А то получится скоро как в ОЛАП форуме с тов. Юрием(ака Cognos.narod): Вы начали с МС и Оракл, а мы Вас Терадату, IQ, IBM пытаемся уговорить попробовать/оценить... Может хватит? :)
Может быть и хватит :-)
Во всяком случае для меня доводы и прочитанные документы (см. ссылки выше) в пользу Oracle выглядят убедительнее...

ЗЫ
В любом случае огромное спасибо всем за активное участие в обсуждении топика. Было очень приятно пообщаться и услышать мнения умных людей.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656134
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле надо понимать что в Teradata c 32-bit имеет buffer cache более 4 GB потому что это shared-nothing на каждом узле по 2GB например, и 32-bit Db2 может тоже самое и Informix XPS etc...

Но с другой стороны в shared-nothing 64-bit помогает очень так как можно выделить больше места для bufferpools (shared cache) хотя толку от них в ХД мало, ибо все равно терабайтную БД не засунешь в кэш. A вот то что можно больше памяти выделить под области сортировки, это очень помогает ибо не надо создавать каждный раз временную таблицу и иметь дополнительный IO для сортивоки этого самого терабайта :), a делать все в памяти.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656167
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу высокой доступоности и преимуществ Oracle. Для меня не все так очевидно. Так как основное время в процессе восставноление сбоя есть определение того что соседний узел точно умер. Причем это время в гораздо больше или сопоставимо с DB2 Start и Recovery.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656220
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
авторПо поводу высокой доступоности и преимуществ Oracle. Для меня не все так очевидно. Так как основное время в процессе восставноление сбоя есть определение того что соседний узел точно умер. Причем это время в гораздо больше или сопоставимо с DB2 Start и Recovery.

это вам собственный опыт подсказал или отдел маркетинга из IBM ? ;)
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656291
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мой собственный опыт. Если залезешь и посмотришь в мой профайл то поймешь что я в IBM и работаю, только не в отделе маркетинга :)

И самая большая жопа в HA это определение того что другой узел точно умер.
У тебя что shared disk что shared nothing должны это определять. Потому как тебе полюбому надо делать recovery, что делала умершая нода можно понять только по log'am для приведения БД в consistent state. Не знаю как в 10-ке в 9-ке точно надо было читать REDO logs.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656319
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
т.е. вы сертифицированый oracle DBA ? ;)

если я правильно понял вы пытаетеcь убедить что откат транзакций упавшей оракловой ноды сопастовим с полного востановлением инстанса ноды дб2 ? оракловый RAC переживет потерб бойца, а shared-nothing обязан востановить ноду.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656500
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneS

Я вот недавно с одним знакомым общался , у него были проблемы на win32 платформа с Oracle тоже.
Проблема выглядит примерно так.
Поскольку реализация Oracle под Windows мультитредовая , а не мультизадачная как в Unix-like cистемах,то Oracle под Windows -это один процесс , который не может адресовать больше чем 4GB памяти, пользовательские сессии - это треды внутри этого процесса, следовательно число сессий ограничено таки 4GB.
В Unix же пользовательский серверный процесс - у каждого свой ( в Dedicated mode ) и каждый процесс может адресовать 4GB памяти.
Собственно это и есть причина почему 32 разрядность не так давит в Unix-like системах.
Но однозначно для вас 64-bit система - это решение.


Теоретически это возможно,
но процессам нужно обмениваться информацией это возможно
1.через разделяемую памаять
2. pipe
3.диск. (это не рассматриваем).

Прикиньте производительность вашей сесии и всего oracle
если он таблицу, индексы начнет тащить через pipe.
Мы кажется вопросы двойной буферизации уже обсуждали.
и продолжать думаю не стоит.
То есть используется доступ через разделяемую память и семафоры.
Системные вызовы shm* всеравно ограничены разрядностью платформы.
Так, что глобально это ничего не решает.

с уважением, onstat-

ps я тоже unix люблю больше.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656526
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не сертифицированный но документации и материалов читаю много. В том числе и по Oracle :)

Расскажи как будет переживать потерю бойца RAC? Что он будет делать со страницами которые изменил где-то в БД упавший узел?? Eму совсем не надо делать восстановление??? Если да - за счет чего это достигается опиши механизмы????
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656567
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что значит подавляющее? значит есть есть версия терадаты 64 бит.
Я обращаю ваше внимание на 64 разрядное приложение, а не возможность работать 32 разрдному серверу терадаты на 64 разрядной платформе.
А это очень большая разница.

Teradata Database Version 2 Release 5.1 for 32-bit W2K and MP-RAS and 64-bit HP-UX and WS03.


Память очень даже причем, если у вас на индексные деревья
нехватает памяти о чем можно дальше говорить. А на join-ах >100 милионных
таблиц вы обязательно с этим столкнетесь.

В Терадате нет индексных деревьев. Индексы - это те же таблицы, которые так же хэшируются и обрабатываются параллельно. Они параллельно создаются, параллельно обновляются, параллельно сканируются так же, как и обычные таблицы.

По поводу джойнов 100-миллионных таблиц. В Терадате есть алгоритм nonsort-merge join, который не требует предварительной сортировки (поскольку данные всегда хранятся отсортированными по значению хэш-значения), поэтому память для сортировки не нужна.

Кстати, в соседнем форуме я приводил результаты своих упражнений с таблицами с более 100 млн записей.
Почитайте здесь, может будет интереснро.


Если мы говорим о паралелизме, то лучше RISK платформы я не знаю.
Там паралелизм заложен аппаратно.
Здесь, мне кажется, Вы слишком низко опускаетесь. Кроме аппаратного параллелизма должен ещё быть программный. Можно говорить о разных видах приложений - например, приложения, ориентированные на паралельные вычисления - это одно, приложения, ориентированные на параллельную обработку данных (СУБД) - немного другое.


Я также незнаю промышленно
выпускаемых сейчас 32 разрядных RISK систем.

Полно таких. Intel StrongARM, например. Да, ещё куча всяких других.


IHMO SMP на Intel32 платформе производительность ограничена
частотой системной шины в случае работы с большими объемами данных(в кешах процессров ничего не задерживается).

Любой SMP, а не только Intel страдает потерей линейной масштабируемости при количестве процессоров более 4. Это, на мой взгляд, основная проблема SMP при обработке больших объёмов данных.
Для преодоления этого ограничения существует архитектура MPP.
А данные в кэше для DSS-приложений не имеют такого критического значения, как для OLTP. Об этом коллеги уже говорили выше.

Хорошая у нас дискусия, однако.

Да, надеюсь, что и полезная тоже.

Кстати, прошу обратить внимание на посты Павла Новокшонова. У него единственного из всех здесь присутствующих есть очень солидный опыт работы с хранилищем терабайтного объёма и нехилой нагрузкой.
Поспрашивайте его поподробнее о том, как это всё работает.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656595
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
Расскажи как будет переживать потерю бойца RAC? Что он будет делать со страницами которые изменил где-то в БД упавший узел?? Eму совсем не надо делать восстановление??? Если да - за счет чего это достигается опиши механизмы????

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

http://www.oracle.com/technology/products/database/clustering/pdf/rac_building_ha_rel2.pdf

Database Recovery in ORAC environment
The Database Instance relies on all of these components to implement instance
recovery for failed instances, in addition to handling normal database operations.
When a database instance or a node in the cluster fails, Oracle cluster database
needs to do recovery for the database just as it does for a single instance database.
Since other nodes in the cluster is still providing services to the clients, Oracle
cluster database makes sure the recovery time is as little as possible through
concurrent recovery operations.
The global cache service (GCS) maintains global cache resources status to insure
the consistency of database. If a node fails, it needs to rebuild the global cache
resource information. Recovery cannot start until the GCS finishes rebuilding the
information. Effectively, the whole database is “frozen” during this time. Since the
cache resources for database blocks are distributed among the cluster nodes, the
time needed for rebuilding GCS information is minimized. Only the cache
resources that reside or are mastered by the GCSs on the failed nodes need to be
rebuilt or re-mastered. This phase takes only a few seconds on average.
Furthermore, Oracle9i uses a two-pass database recovery scheme, where the first
pass of redo log scan decides data blocks to recover and then the second pass
only accesses the marked blocks to speed up instance crash recovery. Oracle9i,
can initiate the first pass of this recovery process concurrently with GCS rebuild
process. After the first pass, database is made available for service for data blocks
that are not impacted by the failure.
Oracle9i also gives you the ability to specify the amount of time a recovery should
take, which eliminates potential problems caused by uncertainty about time
needed for recovery.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656632
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский

Любой SMP, а не только Intel страдает потерей линейной масштабируемости при количестве процессоров более 4. Это, на мой взгляд, основная проблема SMP при обработке больших объёмов данных.

Можно ссылочку?

Для преодоления этого ограничения существует архитектура MPP.
В IQ архитектура Мultiplex позволяет решить эту задачу на простом SMP, не усложняя систем I/O, намного дешевле.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656709
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский

Память очень даже причем, если у вас на индексные деревья
нехватает памяти о чем можно дальше говорить. А на join-ах >100 милионных
таблиц вы обязательно с этим столкнетесь.

В Терадате нет индексных деревьев. Индексы - это те же таблицы, которые так же хэшируются и обрабатываются параллельно. Они параллельно создаются, параллельно обновляются, параллельно сканируются так же, как и обычные таблицы.


DSA архитектура informix делает тоже самое там есть технология PDQ
которя паралелит все операции.
С точки зрения скорости индексного поска дерево гораздо выгоднее чем список(таблица), На это есть соответствующие выкладки,
ссылок под руками нет. Для меня это само собой разумеещееся.
В качестве примера посмотрите на библиотеку STL С++.


Константин Лисянский

По поводу джойнов 100-миллионных таблиц. В Терадате есть алгоритм nonsort-merge join, который не требует предварительной сортировки (поскольку данные всегда хранятся отсортированными по значению хэш-значения), поэтому память для сортировки не нужна.


Зато память нужна для хранения хеша который по размеру соизмерим с обьемом индекса. В принципе это индексное объединение таблиц, только по искуственному индексу(хешу). Принципиальных отличий я не вижу.

Константин Лисянский
Кстати, в соседнем форуме я приводил результаты своих упражнений с таблицами с более 100 млн записей.

Почитайте здесь, может будет интереснро.


Спасибо, Обязательно загляну.

Константин Лисянский
Если мы говорим о паралелизме, то лучше RISK платформы я не знаю.
Там паралелизм заложен аппаратно.

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


DSA & PDQ меня полностью устраивают в качестве програмной реализации
паралелизма обработки баз данных.

Константин Лисянский

IHMO SMP на Intel32 платформе производительность ограничена
частотой системной шины в случае работы с большими объемами данных(в кешах процессров ничего не задерживается).

Любой SMP, а не только Intel страдает потерей линейной масштабируемости при количестве процессоров более 4. Это, на мой взгляд, основная проблема SMP при обработке больших объёмов данных.
Для преодоления этого ограничения существует архитектура MPP.
А данные в кэше для DSS-приложений не имеют такого критического значения, как для OLTP. Об этом коллеги уже говорили выше.


Я не видел реализации MPP для интел,
наверное потому что аппаратная часть подгуляла :)
Помоему MPP работает только на РИСКах.
Мне про DSS тяжело судить потому что у меня чистый OLTP ( 500Gb)
и практического опыта в DSS таких обьемов нет.
Мне кажется, что если мою базу превратить
в DSS и нарезать OLAP кубов
по критерия необходимым для бизнеса база вырастет до 3 Tb.
Лишних пару миллионов на аналитику реководство не дает,
но это их проблемы.
А опыт наверное появится на другой работе .

С уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656796
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dog_В IQ архитектура Мultiplex позволяет решить эту задачу на простом SMP, не усложняя систем I/O, намного дешевле.

У меня есть небольшие сомнения на этот счёт - по-моему IQ позволяет достичь scale-up, то есть, добавив новый сервер, повысить количество пользователей/запросов, которые обрабатываются параллельно. А как у него насчёт speed-up? Можно ли добавлением нового сервера повысить скорость выполнения запроса (линейно)? И если да, то за счёт чего?
В MPP понятно за счёт чего достигается и scale-up и speed-up. А вот IQ - не очень понятно.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656836
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С точки зрения скорости индексного поска дерево гораздо выгоднее чем список(таблица), На это есть соответствующие выкладки,
ссылок под руками нет. Для меня это само собой разумеещееся.

Для меня - не очень. В противном случае деревья уже бы давно использовались в Терадате (напомню, продукту уже чуть более 20 лет).

Использование таблиц даёт определённые преимущества, а именно - возможность обрабатывать индексы параллельно. Как распараллеливается обработка древовидных индексов я, честно сказать, не знаю, поэтому сравнить, наверное, не смогу.

авторЗато память нужна для хранения хеша который по размеру соизмерим с обьемом индекса. В принципе это индексное объединение таблиц, только по искуственному индексу(хешу). Принципиальных отличий я не вижу.

Не совсем так. Хэш как индекс хранить не надо. Хэш - это функция.
Другое дело, что хэш-значение входит в ROWID и хранится вместе с записью -это так. Но первичный хэш-индекс никогда не хранится, а вычисляется.

Я не видел реализации MPP для интел,
наверное потому что аппаратная часть подгуляла :)
Помоему MPP работает только на РИСКах.

1. Терадата MPP работает ТОЛЬКО на Intel.
2. Что значит подгуляла?
3. Ещё раз - нет :)



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656871
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat
Теоретически это возможно,
но процессам нужно обмениваться информацией это возможно
1.через разделяемую памаять
2. pipe
3.диск. (это не рассматриваем).

Прикиньте производительность вашей сесии и всего oracle
если он таблицу, индексы начнет тащить через pipe.
Мы кажется вопросы двойной буферизации уже обсуждали.
и продолжать думаю не стоит.
То есть используется доступ через разделяемую память и семафоры.
Системные вызовы shm* всеравно ограничены разрядностью платформы.
Так, что глобально это ничего не решает.

с уважением, onstat-
ps я тоже unix люблю больше.


Ну так у Oracle обмен происходит насколько я
понимаю через shared memory и семафоры.
Я просто констатировал факт насчет Win платформы.

Я даже и не пытаюсь сравнивать 32-бит и 64-бит.
У 32-бит систем просто нет никаких шансов.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32656895
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский
Любой SMP, а не только Intel страдает потерей линейной масштабируемости при количестве процессоров более 4. Это, на мой взгляд, основная проблема SMP при обработке больших объёмов данных.
Для преодоления этого ограничения существует архитектура MPP.
А данные в кэше для DSS-приложений не имеют такого критического значения, как для OLTP. Об этом коллеги уже говорили выше.

С уважением,
Константин Лисянский
http://lissianski.narod.ru


Ну вообще-то не только MPP.
Это не единственная возможность, есть еще NUMA.
Если правильно понимаю, то Sun хоть и говорит, что у него SMP на 128 проц, реально это все же NUMA.

Ну и второй подход интеграция нескольких процессорных ядер на одном чипе.
Тут пока IBM чемпион.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657120
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский Dog_В IQ архитектура Мultiplex позволяет решить эту задачу на простом SMP, не усложняя систем I/O, намного дешевле.

У меня есть небольшие сомнения на этот счёт - по-моему IQ позволяет достичь scale-up, то есть, добавив новый сервер, повысить количество пользователей/запросов, которые обрабатываются параллельно. А как у него насчёт speed-up?

Замечание очень хорошее. Прямой ответ(теоретически) - нет. В реальности,
1. С IQ никогда не вставала задача speed-up, т.к. когда имеешь ответ на любой запрос <1сек ... хх сек, это обычно устраивает. Необходимость ХХ-ХХХк$ инвестиций, как и тюнинга - отпадает. Добиться скорости на начальном этапе в памках <хх сек для 90+% запросов - можно. Потом эту скорость просто надо сохранить.

2. Все кейсы, в которых учавствовал начинались при объеме данных в Оракле/МССКЛ/Сайбейсе порядка 50-300Гб(на 2-4CPU). IQ, с 1CPU/Интел с этим объемом справляется хорошо (п.1). Теперь у клиентов базы 100-300Гб (в стандартной RDBMS было бы ~500Gb..>1Tb). То, что писет сам Сайбейс (победы на ХХТБ базах, 500тб база и т.д.) - не трогаю.

3. IQ позволяет начать с 1CPU (п.1), надо - добавить еще CPU; надо - добавить еще один нод или поставить SUN рядом с Интел сервером. При этом скорость останется в рамках п.1. Какой MPP на 1-2CPU?

Вообще, обычно чадо смотреть - чего надо достичь (скорость ответов, размер базы, число юзеров), а потом смотреть на железо. I'm lucky, с доброй половиной вопросов типа кластеры, РАЦ и т.п. встречаться не приходится. Обычные вопросы - 1-2?4? CPU, число юзеров? SAN или RAID? Интел/СУН/Линух-Юних? фронтэнд (каждый фронтэнд по разному использует ресурсы), где данные, ЕТL, и т.д.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657173
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EugeneS onstat
Теоретически это возможно,
но процессам нужно обмениваться информацией это возможно
1.через разделяемую памаять
2. pipe
3.диск. (это не рассматриваем).

Прикиньте производительность вашей сесии и всего oracle
если он таблицу, индексы начнет тащить через pipe.
Мы кажется вопросы двойной буферизации уже обсуждали.
и продолжать думаю не стоит.
То есть используется доступ через разделяемую память и семафоры.
Системные вызовы shm* всеравно ограничены разрядностью платформы.
Так, что глобально это ничего не решает.

с уважением, onstat-
ps я тоже unix люблю больше.


Ну так у Oracle обмен происходит насколько я
понимаю через shared memory и семафоры.
Я просто констатировал факт насчет Win платформы.

Я даже и не пытаюсь сравнивать 32-бит и 64-бит.
У 32-бит систем просто нет никаких шансов.

А shared memory для 32бит ограничена где-то в районе 1.8 G.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657260
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_DogЗамечание очень хорошее. Прямой ответ(теоретически) - нет. В реальности,
1. С IQ никогда не вставала задача speed-up, т.к. когда имеешь ответ на любой запрос <1сек ... хх сек, это обычно устраивает. Необходимость ХХ-ХХХк$ инвестиций, как и тюнинга - отпадает. Добиться скорости на начальном этапе в памках <хх сек для 90+% запросов - можно. Потом эту скорость просто надо сохранить.

Может и так. Но есть правило Парето. В данном случае можно его сформулировать так: "80% ценных решений принимаются на основе 20% запросов". В целом, чем сложнее запрос, тем более точная информация получается, и тем точнее можно принимать решения. Это я веду к тому, что вот эти самые оставшиеся 10% запросов в Вашем случае могут захотеть ускорить. А возможности нету...


2. Все кейсы, в которых учавствовал начинались при объеме данных в Оракле/МССКЛ/Сайбейсе порядка 50-300Гб(на 2-4CPU). IQ, с 1CPU/Интел с этим объемом справляется хорошо (п.1). Теперь у клиентов базы 100-300Гб (в стандартной RDBMS было бы ~500Gb..>1Tb). То, что писет сам Сайбейс (победы на ХХТБ базах, 500тб база и т.д.) - не трогаю.

1 CPU = availability - ???
Можно, наверное, датамарт некритичный к остановам и сбоям сделать, но корпоративное хранилище данных - вряд ли.


3. IQ позволяет начать с 1CPU (п.1), надо - добавить еще CPU; надо - добавить еще один нод или поставить SUN рядом с Интел сервером. При этом скорость останется в рамках п.1. Какой MPP на 1-2CPU?

Опять-таки, это для витрин данных решение. Где высокая надёжность и как она обеспечивается?


Вообще, обычно чадо смотреть - чего надо достичь (скорость ответов, размер базы, число юзеров), а потом смотреть на железо. I'm lucky, с доброй половиной вопросов типа кластеры, РАЦ и т.п. встречаться не приходится. Обычные вопросы - 1-2?4? CPU, число юзеров? SAN или RAID? Интел/СУН/Линух-Юних? фронтэнд (каждый фронтэнд по разному использует ресурсы), где данные, ЕТL, и т.д.

Я рад за Вас. Дай Бог, чтобы всё нормально продолжалось.


Да, кстати, ещё что-то там с транзакционеностью было вроде бы не очень хорошо у IQ. По-моему, он не очень хорошо умеет апдейты делать.
Это так?

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


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657318
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo!
The global cache service (GCS) maintains global cache resources status to insure
the consistency of database. If a node fails, it needs to rebuild the global cache
resource information. Recovery cannot start until the GCS finishes rebuilding the
information. Effectively, the whole database is “frozen” during this time. Since the
cache resources for database blocks are distributed among the cluster nodes, the
time needed for rebuilding GCS information is minimized. Only the cache
resources that reside or are mastered by the GCSs on the failed nodes need to be
rebuilt or re-mastered. This phase takes only a few seconds on average.


Имеем вся БД недоступна пока идет восстановление ноды. Few seconds это сколько ??? В shared nothing восстановление потерянной ноды это тоже few seconds.

ftp://ftp.software.ibm.com/software/data/pubs/papers/10sfailover.pdf
http://www-106.ibm.com/developerworks/db2/library/techarticle/dm-0407nikolopoulou

Это правда результаты без DPF (Distributed Partition feature)

Но с ней не на много больше.

Примерные результаты

Fail detection time = FD
Resource Takeover time = RT
DB2 Start time = DS
DB2 Recovery time = DR

Код: plaintext
1.
2.
3.
4.
5.
6.
                FD    RT    DS   DR  TOTAL
AIX w/DPF        20      15      4      2     41 
AIX wo/DPF       10      8       4      2     24 
Linux w/DPF      14      6       12     10    42 
Linux wo/DPF     13      9       4      8     34        
HP-UX wo/DPF     2       27      2      2     35 
Ну еще есть и за 10 на lifekeeper, но в ущерб производительности [/src]
P.S. Все вышесказанное моя личная точка зрения.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657348
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский

Может и так. Но есть правило Парето. В данном случае можно его сформулировать так: "80% ценных решений принимаются на основе 20% запросов". В целом, чем сложнее запрос, тем более точная информация получается, и тем точнее можно принимать решения. Это я веду к тому, что вот эти самые оставшиеся 10% запросов в Вашем случае могут захотеть ускорить. А возможности нету....

Это решает заказчик - 10 или меньше. ROI вложения в дополнительный нод длия получения ответа за 1 минуту вместо 2-х...??? Для моих клиентов ХХк$ это деньги.

До сих пор ни одной проблемы небыло.

1 CPU = availability - ???
Можно, наверное, датамарт некритичный к остановам и сбоям сделать, но корпоративное хранилище данных - вряд ли.

До сих пор ни одной проблемы небыло. Надо (есть деньги) - можно сделать HA любого уровня.
EDW его HA- отдельная тема. IQ ee не боится :)


Опять-таки, это для витрин данных решение. Где высокая надёжность и как она обеспечивается?

не о том речь, IQ ето может, ТДата нет.

Да, кстати, ещё что-то там с транзакционеностью было вроде бы не очень хорошо у IQ. По-моему, он не очень хорошо умеет апдейты делать.
Это так?

Ну и IQ (как и ТД) - не OLTP базы. По поводу проблем - очень широкии вопрос. Какой DWH без апдейтов. Пока всюду есть.

А ещё слышал, что с утилитами у него не очень здорово - всё надо руками делать.

Сложно сказать что имеете ввиду.

Какие у разработчика есть инструменты - план запроса можно посмотреть (графически),
да

индекс-визарды есть какие-нибудь, средства мониторинга базы данных

Сайбейс считает что есть :) Я не очень согласен :) Но в новои версии (будет очень скоро) все есть.

, средства управления ресурсами СУБД (для разных пользователей разные ресурсы чтобы выделялись),

средства администрирования какие?

Да, стандартный Central+ISQL.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657350
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский
С точки зрения скорости индексного поска дерево гораздо выгоднее чем список(таблица), На это есть соответствующие выкладки,
ссылок под руками нет. Для меня это само собой разумеещееся.

Для меня - не очень. В противном случае деревья уже бы давно использовались в Терадате (напомню, продукту уже чуть более 20 лет).

Использование таблиц даёт определённые преимущества, а именно - возможность обрабатывать индексы параллельно. Как распараллеливается обработка древовидных индексов я, честно сказать, не знаю, поэтому сравнить, наверное, не смогу.


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

Как быть с разделением доступа к данным индекса между процессами
в случае списка мне неизвесно, но алгоритм там явно сложнее.
По каким критериям таблица(список) делятся между процессами
и сколько их будет тоже вопрос. Как блокируется таблица для многопользовательского доступа?
Как производится в ставка нового индексного значения?
Для меня пока вопросов больше чем ответов,
в первую очередь потому что это не логично.
Я конечно могу чего то недопонимать.

Константин Лисянский
авторЗато память нужна для хранения хеша который по размеру соизмерим с обьемом индекса. В принципе это индексное объединение таблиц, только по искуственному индексу(хешу). Принципиальных отличий я не вижу.

Не совсем так. Хэш как индекс хранить не надо. Хэш - это функция.
Другое дело, что хэш-значение входит в ROWID и хранится вместе с записью -это так. Но первичный хэш-индекс никогда не хранится, а вычисляется.
[/quot ]

То есть вы имеете ввиду кластерный индекс.
Тогда на вставке удалении вы потеряете в 10 крат.
Как быть с другими индексами? связка таблиц делается не обязательно по
первичному ключу.

Константин Лисянский
[quot ]Я не видел реализации MPP для интел,
наверное потому что аппаратная часть подгуляла :)
Помоему MPP работает только на РИСКах.

1. Терадата MPP работает ТОЛЬКО на Intel.
2. Что значит подгуляла?
3. Ещё раз - нет :)



MPP это апаратная платформа, кто именно производит такое железо
на чипах intel . Какие процессора и чипы используются,
какие ОС работают ?
Если можно ссылки.

С уважением, onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657383
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
авторИмеем вся БД недоступна пока идет восстановление ноды. Few seconds это сколько ??? В shared nothing восстановление потерянной ноды это тоже few seconds.


да но есть небольшая разница - в shared nothing нада к каждой ноде по standby серверу ... ??
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657416
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Имеем вся БД недоступна пока идет восстановление ноды. Few seconds это сколько ???

Few - это обычно меньше десяти ;-))

БД недоступна не пока идет восстановление ноды, а "until the GCS finishes rebuilding the information". Синхронизация GCS - это операции с памятью и интерконнектом. Прошла синхронизация, дальше восстановление упавшего нода другим не мешает.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657450
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MPP это апаратная платформа, кто именно производит такое железо
на чипах intel . Какие процессора и чипы используются,
какие ОС работают ?
Если можно ссылки.

Можно:
Железяки здесь .
ОС:
1. NCR UNIX MP-RAS (он же AT&T SVR4)
2. W2K
3. В следующем году обещают Linux поддерживать.
4. Есть ещё версия для WS03 и HP-UX (это я уже писал выше). Но это, по-моему, только в SMP на любых сертифицированных платформах.

Железо производит NCR.

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657518
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну-ну...
авторRecovery cannot start until the GCS finishes rebuilding the
information.

А кэш не начнет синхронизироваться пока не определим что боец умер. Это как минимум 10 секунд. Синхронизация а потом recovery... Может быть приведем какие нибудь более менее официальные результаты??? Я могу найти презентацию с Oracle User Group где один из заказчиков Oracle говорит что у него время failover это 51 sec....
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657535
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
еще раз ораклу эта нода не нужна, он без нее обойдется, а дб2 обязан каждую ноду дублировать.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657548
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин согласись что большой недостаток Teradata это железо производства только NCR, кстати почему у них все время количество процессоров в узле уменьшается в 3600 помоему 16 было, а сейчас в 5300 2 кажется??? SMP на 4 процессорах не плохо смотрится.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657566
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нода не нужна. А то что она в базу писала нужно и как ты это вытащишь что закомичено что нужно откатить, если ты не хочешь получить нецелостные данные.
Нужно делать RECOVERY черным по белому написано в документации.

Еще раз говорю каждую ноду дублировать не надо. Можно как в RAID 3 - одна нода дублирует 4-ре. Опять же есть Mutual takeover. Когда рабочие ноды могут взять ноды с упавшей машины, с понижением производительности.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657573
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat-
Как быть с разделением доступа к данным индекса между процессами
в случае списка мне неизвесно, но алгоритм там явно сложнее.


Тут всё достаточно просто. Список, на самом деле, даже с бытовой точки зрения понять проще, чем дерево. Это же линейная вещь. И алгоритмы, соответственно, должны быть проще (сам их не пишу, но с точки зрения здравого смысла, наверное, так).

По каким критериям таблица(список) делятся между процессами
и сколько их будет тоже вопрос.

Таблица делится между всеми виртуальными процессами (VAMP - virtual access module process) путём хэширования значения индексной группы столбцов.
Количество VAMP задаётся при конфигурировании системы.
Например, у меня сейчас в наличии двухпроцессорная машина с десятью зеркальными парами, каждрй из которых занимается отдельный VAMP (то есть, их 10).
Соответственно, в моей конфигурации каждая таблица (обычная или индексная) распределяется путём хэширования между этими 10 единицами параллелизма.


Как блокируется таблица для многопользовательского доступа?

На уровне виртуальных процессов. То бишь, каждый VAMP занимается блокировками своей части таблицы.


Как производится в ставка нового индексного значения?

Путём хэширования индексного столбца (столбцов) определяется на какой VAMP пойдёт эта запись. Дальше она туда шлётся и добавляется к индексной таблице.


Для меня пока вопросов больше чем ответов,
в первую очередь потому что это не логично.
Я конечно могу чего то недопонимать.

На самом деле всё довольно логично, если немного вникнуть.
Процитирую кусочек статьи, может, это поможет понять, что и как:

Структуры, используемые для индексирования
Первичный индекс (Primary index)
В СУБД Терадата имеется два типа первичных индексов: уникальный первичный индекс (Unique Primary Index) и неуникальный первичный индекс (Non Unique Primary Index). Как известно, индексы используются для быстрого извлечения строк из таблиц БД, при этом можно избежать полного сканированиявсей таблицы.

Первичный индекс в СУБД Терадата - это механизм, использующий алгоритм хэширования, для поставки каждой строки таблицы БД конкретному виртуальному процессору АМР, а также применяемый для быстрого извлечения строк. Это позволяет большинство операций с БД выполнять очень быстро. В любой таблице БД имеется уникальный или неуникальный первичный индекс. Далее, при доступе к строке по первичному индексу или при вставке строки, используя некий "зашитый" алгоритм хэширования, система прогоняет через него значение первичного индекса. На выходе получается некое число из 32-х бит (т.н. Row hash). Первые 16 бит, называемые hash bucket, определяют, к какому виртуальному процессору AMP пойдет вставляемая строка. Значение hash bucket варьируется от 0 до 65535. Данные значения равномерно распределены между всеми АМР в системе. Таким образом, каждый АМР знает, какие значения hash bucket к нему относятся.

Если все значения колонки первичного индекса уникальны или почти уникальны, то данные будут равномерно распределены между всеми АМР. Все, что требуется от администратора БД, - это правильно выбрать колонку (или колонки) под первичный индекс.

Существует два уровня индексирования хэш-кодов. Первый уровень хранится в памяти. Это гарантирует, что в наихудшем с точки зрения оптимизации случае, при обращении к одной строке потребуются всего две операции ввода/вывода. При кешировании ввода/вывода обеспечивается высокая вероятность того, что индекс второго уровня попадет в кеш-память, и что блок данных также окажется в памяти. Такой механизм хранения данных гарантирует, что при вставке или изменении строк не будут увеличиваться накладные расходы, связанные с выполнением этих операций (наличие хэш-цепочеки, block extensions и т.п.). Кроме того, работают специальные фоновые задачи, которые по мере необходимости устраняют фрагментацию.

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

Вторичные индексы (Secondary index)
В СУБД Teradata используются два типа вторичных индексов: уникальные и неуникальные вторичные индексы. Данные в колонке (или в колонках), объявленных как вторичный индекс, поставляются в алгоритм хэширования. Получающийся на выходе Row Hash, указывает на строки в индексной подтаблице, в которой в свою очередь хранится индентификатор (Row ID) базовой строки. Таким образом, как и в случае первичных индексов, для быстрого поиска строк по вторичным индексам используется алгоритм хэширования.

Различие между уникальными и неуникальными вторичными индексами, в общем заключатся в том, что строки уникальных вторичных индексов глобально распределены между всеми АМР и извлекаются по тому же принципу, что и строки по первичному индексу. В этом случае как правило задействуются 2 виртуальных процессора АМР, так как строка базовой таблицы принадлежит одному АМР, а строка индексной подтаблицы другому АМР. В случае неуникальных вторичных индексов, строки индексной подтаблицы и соответствующие строки базовой таблицы принадлежат одному АМР. Таким образом, при доступе к строке по неуникальному вторичному индексу, всем АМР системы посылается сообщение-запрос о наличии строк в индексной подтаблице с заданным значением. Если АМР не имеет таких строк в индексной подтаблице, то в базовую таблицу он не пойдет.



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657599
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
авторНода не нужна. А то что она в базу писала нужно и как ты это вытащишь что закомичено что нужно откатить, если ты не хочешь получить нецелостные данные.
Нужно делать RECOVERY черным по белому написано в документации.

вы похоже не понимаете смысл ораклового рекавери - этот процесс никому не мешает и происходит в фоне. то что закомичено трогать не нужно, остается просто из ундо вернуть на родину данные из транзакций упавшей ноды.

авторОпять же есть Mutual takeover. Когда рабочие ноды могут взять ноды с упавшей машины, с понижением производительности.

сколько этот процесс ("взять") занимет времени ?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657613
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин согласись что большой недостаток Teradata это железо производства только NCR, кстати почему у них все время количество процессоров в узле уменьшается в 3600 помоему 16 было, а сейчас в 5300 2 кажется??? SMP на 4 процессорах не плохо смотрится.

Не соглашусь. Универсальность всегда означает снижение производительности. Терадата досконально "знает" на какой железке она работает. Она знает скорость процессоров, скорость обмена данными с дисками, скорость интерконнекта, количество единиц параллелизма и учитывает эту информацию при оптимизации запросов. Поэтому и достигает такой высокой производительности.
Не уверен, что остальные СУБД учитывают параметры конкретной железяки.
А разве DB2 работает производительнее всего не на платформе DB2?


3600 - сильно. Это довольно древняя машина. В 5100 ещё было по 16 процессоров в узле. Последняя модель - не 5300, а 5380 , но в нём тоже два проца на узел.
Ответ довольно очевиден - SMP, как ты правильно заметил, нормально масштабируется только до четырёх процессоров. Почему два - не знаю. Но, наверное, умные инженеры из Teradata делали соответствующие расчёты, которые показали, что это более оптимальный вариант. Может быть, гипертрединг как-то влияет на это решение. Не могу сказать.
Ты же знаешь, наверное такую компанию Netezza. Они вон однопроцессорные ноды ваяют, вроде бы. Кстати, на процессорах IBM, по-моему. Тоже, чвои причины на это имеют.



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657625
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А разве DB2 работает производительнее всего не на платформе DB2?

Читать

А разве DB2 работает производительнее всего не на платформе IBM?


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657627
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay KulikovКонстантин согласись что большой недостаток Teradata это железо производства только NCR, кстати почему у них все время количество процессоров в узле уменьшается в 3600 помоему 16 было, а сейчас в 5300 2 кажется??? SMP на 4 процессорах не плохо смотрится. Поддерживаю. Своя СУБД на своих же серверах - не это ли причина малой распростаненности Терадата?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657651
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийНе соглашусь. Универсальность всегда означает снижение производительности. Терадата досконально "знает" на какой железке она работает. Она знает скорость процессоров, скорость обмена данными с дисками, скорость интерконнекта, количество единиц параллелизма и учитывает эту информацию при оптимизации запросов. Поэтому и достигает такой высокой производительности.
Не уверен, что остальные СУБД учитывают параметры конкретной железяки.
А разве DB2 работает производительнее всего не на платформе DB2? Константин, согласитесь, что когда вендор "привязывает" к себе клиента и по железу, и по софту, это мало кому нравится. Ведь далее появляется возможность диктовать цены и т.д...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657661
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийА разве DB2 работает производительнее всего не на платформе IBM? Думаю, что производительнее всего работает там, где умные DBA ее лучше настраивать и юзать умеют :-) ...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657678
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Константин Лисянский:

Db2 хорошо работает и на не IBM.
1 место TPC-C price/perfomance - DB2 Linux на железке от HP.
2 место 100GB TPC-H - DB2 Windows на каких-то китайцах.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657698
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поддерживаю. Своя СУБД на своих же серверах - не это ли причина малой распростаненности Терадата?

Сергей, ещё раз повторюсь - среди клиентов Teradata 200 компаний имеют хранилище данных свыше 1 терабайта. Мы именно такие объёмы здесь и обсуждаем, не так ли?
Найдите мне другого производителя, у которого столько же клиентов с такими хранилищами. И мы уже будем говорить о том, что Oracle - не такая распространённая система или DB2. И тот факт, что порядка 150 компаний перешли с Oracle на Терадату тоже должен о чём-то говорить, не так ли?

Ещё раз - Терадата имеет очень конкретное позиционирование - корпоративные хранилища данных большого объёма. И там Терадату побить очень сложно. Что подтверждает практика и согласуется с мнениями аналитиков.


Константин, согласитесь, что когда вендор "привязывает" к себе клиента и по железу, и по софту, это мало кому нравится. Ведь далее появляется возможность диктовать цены и т.д...

Где-то прочитал (сейчас ссылки нет под рукой, поверьте на слово, пожалуйста, я вроде бы не давал пока повода не верить мне), что у Терадаты наиболее лояльная клиентская база, что подтверждает тот факт, что Терадата клиентам нравится.

В конце концов, клиент получает законченное решение, которое:
1. Высокопроизводительно
2. Легко масштабируется
3. Отказоустойчиво
4. Просто в администрировании

Что ещё нужно?



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657718
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин,

1. Высокопроизводительно
2. Легко масштабируется
3. Отказоустойчиво
4. Просто в администрировании

Я это и про DB2 сказать могу. И добавить дешевле чем Тeradata. Oracle и DB2 можно оценить по официальным сайтам, где на Teradata примерный price list. Не является ли его отсутсвие политикой давления на текущих заказчиков???

P.S. Надо заканчивать эту лавочку иначе опять свалимся во flame
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657733
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay KulikovP.S. Надо заканчивать эту лавочку иначе опять свалимся во flame Угу, согласен. Когда на www.tpc.org в top 10 по TPC-H появится хоть один FDR-отчет по Терадата, можно будет говорить конкретнее...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657740
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор
автор
Нода не нужна. А то что она в базу писала нужно и как ты это вытащишь что закомичено что нужно откатить, если ты не хочешь получить нецелостные данные.
Нужно делать RECOVERY черным по белому написано в документации.

вы похоже не понимаете смысл ораклового рекавери - этот процесс никому не мешает и происходит в фоне. то что закомичено трогать не нужно, остается просто из ундо вернуть на родину данные из транзакций упавшей ноды.

Просто в БД ничего не бывает. Ты утверждаешь что после синхронизации GCS выжившие узлы стразу начинают работать и в параллель запусается процесс востановления.
Расскажи что будет если измененную страницу прочитает раньше не процесс восстановления, а обычная транзакция. И что будет в другом случае когда транзакция зафиксированна на умершем узле, а данные еще не в файлах БД, они в журналах.

автор
автор
Опять же есть Mutual takeover. Когда рабочие ноды могут взять ноды с упавшей машины, с понижением производительности.


сколько этот процесс ("взять") занимет времени ?


Я привел данные меньше минуты.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657768
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НиколайИ добавить дешевле чем Тeradata

Наколай, ты не знаешь цен на Терадата в России и Украине.
Поэтому лучше не надо так.
Потому что это не факт.

СергейУгу, согласен. Когда на www.tpc.org в top 10 по TPC-H появится хоть один FDR-отчет по Терадата, можно будет говорить конкретнее...

Гораздо эффективнее custom benchmark на данных клиента, поскольку все тесты TPC заранее известны и к ним легко подготовится. Это никакой не ad-hoc, а заранее известный набор запросов.

Ещё раз повторюсь - если у Вас серьёзные намерения выбрать подходящую платформу - организуйте официальный тендер. Можно с бенчмарком.

Наколай прав - лавочку надо закрывать. Флейм неизбежен ...

Лучше давайте обсуждать технические вопросы. Я готов отвечать на вопросы по Терадате.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657770
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов Nikolay KulikovP.S. Надо заканчивать эту лавочку иначе опять свалимся во flame Угу, согласен. Когда на www.tpc.org в top 10 по TPC-H появится хоть один FDR-отчет по Терадата, можно будет говорить конкретнее...

Oго... они же были там больше года? 1 место на 10 Тб.

Незнание - не сила. Сам предпочитаю IQ, нo TD оцень достойный соперник.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657776
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сам предпочитаю IQ, нo TD оцень достойный соперник.

Ещё бы :)
Много раз удавалось TD побить?


А "от туда..." это откуда, если не секрет? Вроде бы где-то видел, что не Sybase. Но, я так понимаю, что близко где-то?


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657780
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_DogOго... они же были там больше года? 1 место на 10 Тб.

Незнание - не сила. Сам предпочитаю IQ, нo TD оцень достойный соперник.
Покажите мне, где тут Терадата?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657790
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Teradata заявила что TPC-H это слишком просто и сняла результаты.
Константин, я как-то беседовал с одним консультантом в Англии по поводу Teradata года два назад. И он жаловался на то что если ты грузишь данные в БД на низком уровне то нужно дропать-пересоздавать Join Indexes (MQT, MaterializedView) в новой версии не поменялось???
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657815
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Teradata заявила что TPC-H это слишком просто и сняла результаты

TPC-H Benchmark:
8 таблиц
В данных отсутствует перекос
9 одновременных пользователейц на системе в 10 ТБайт

Реальные системы (WalMart и SBC) я описал выше.

Для примера ещё раз:
SBC - более 12 800 таблиц.
Сотни тысяч запросов в день.

Для бенчмарка у Терадаты существует лаборатория, где в год проводится порядка 80 бенчмарк-тестов на реальных данных клиентов. Если есть такое жаление - могу посодействовать в организации такого бенчмарка.
Гораздо эффективнее куцых тестов на 8 таблицах.

Деньги, сэкономленные на (недешёвых) тестах TPC Терадата вкладывает в R&D.
Видимо, другие компании могут себе позволить выбрасывать миллионы на эти тесты, Терадата использует средства более эффективно.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657820
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин, я как-то беседовал с одним консультантом в Англии по поводу Teradata года два назад. И он жаловался на то что если ты грузишь данные в БД на низком уровне то нужно дропать-пересоздавать Join Indexes (MQT, MaterializedView) в новой версии не поменялось?

В Терадате есть несколько утилит загрузки данных. Самая быстрая - Fastload, действительно, накладывает ограничение на наличие индексов. Если есть необходимость грузить в таблицы с индексами, можно это делать разными способами. Иногда, действительно, лучше подропать индексы и пересоздать после загрузки. Всё зависит от количества загружаемых данных.

Можно, вообще, утилитой TPump в режиме on-line данные грузить.

Что делает возможным посроение активного хранилища данных.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657829
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин,

TPC - это правила игры. Да он не оптимален, но дает хоть какое-то представление о системах и БД.

Ну я тоже могу закинуть 10 инсталяций DB2 больше 20ТБ c туевой хучей конкурентных пользователей и запросами такими что 5 терабайт во временном пространсве мало :). Это не показатель.
И там будет и telco и retail, но это опять все маркетинг.

А по поводу техники в DB2 можно на низком уровне грузить данные без пересоздания MQT (Join Indexes) в online :)
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657840
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.[/quot]Много раз удавалось TD побить? .[/quot]

:) самому - нет. Просто не так часто встречаемся :)

Но как говорят, у приятеля моего приятеля есть знакомый ... в общем 2 недавних европейских случая знаю, телко и банк (Ето не означает, что их всего 2 и есть :) - насколько я знаю, на некоторых рынках ТД/Сайбейс - 50:50.

По идее, не думаю, что сама по себе ТД база часто встречается отдельно от ЕDW oт ТД. Или я неправ?

По крайней мере, там где я сам встречался с ТД, речь шла не о самой базе, а о ЕDW модели данных, которая DB independent (как и Сайбейсовский IWS) - т.е. может стоять на Оракле, ИБМ, да и на том же IQ. Но ето отдельный разговор.

Посмотреть изнутри - хотелось бы, надеюсь еще увижу/встречусь а то и поработаю :) Интерестная компания, интерестная философия продаж, интерестные теоретики - большой challenge выиграть в равной борьбе.

BusinessIntelligence - одна из тем которой интересуется моя компания.

Ладно, все, кончаю флейм. Сорри.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657861
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay Kulikov
TPC - это правила игры. Да он не оптимален, но дает хоть какое-то представление о системах и БД.

Пилотный проект дает еще лутшее представление. Посмотрите tcp-c - MS forever? :)
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657887
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смотрите внимательнее...
В пилотном проекте очень часто бывает NDA.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657904
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay KulikovСмотрите внимательнее...
В пилотном проекте очень часто бывает NDA.
Нус, всегда бывает. Вы правы. Но победитеь тендера нередко получает право на public Success Story.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657906
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay KulikovСмотрите внимательнее...
В пилотном проекте очень часто бывает NDA.

аааа, посмотрел внимательнее, действительно, ИБМ появился. Ура, не люблю монополистов :)!
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657911
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НиколайTPC - это правила игры. Да он не оптимален, но дает хоть какое-то представление о системах и БД.

А вот, что, кстате Oracle пишет про тест TPC-C:

автор...Consequently, a TPC-C benchmark implementation is really nothing more than a
number of mostly independent databases running mostly local transactions. By
amassing huge numbers of CPUs in loosely coupled configurations, various
vendors have obtained very large TPC-C numbers. It is difficult to find this kind
of workload in real-world applications – neither the data nor the transactions can
be shoehorned to fit neatly into well-defined partitions.


Видишь, не только Терадата придерживается такого мнения о тестах TPC.


Ну я тоже могу закинуть 10 инсталяций DB2 больше 20ТБ c туевой хучей конкурентных пользователей и запросами такими что 5 терабайт во временном пространсве мало :). Это не показатель.
И там будет и telco и retail, но это опять все маркетинг.

Было бы интересно посмотреть. Не думаю, что всё маркетинг.
Реальные работающие внедрения говорят о чём-то, не так ли?


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657914
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay KulikovНу-ну...
авторRecovery cannot start until the GCS finishes rebuilding the
information.

А кэш не начнет синхронизироваться пока не определим что боец умер. Это как минимум 10 секунд. Синхронизация а потом recovery... Может быть приведем какие нибудь более менее официальные результаты??? Я могу найти презентацию с Oracle User Group где один из заказчиков Oracle говорит что у него время failover это 51 sec....

Вообще говоря, ситуацию что умер боец определяет не Оракл, а то кластерное обеспечение поверх которого он работает. Я так понимаю, в случае IBM - это HACMP в concarent-конфигурации. Сколько у него уходит времени на обнаружение сбоя нода?

51 сек. - а сколько нодов в кластере этого заказчика? И какая платформа?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657918
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo!db2 cluster vs RAC
http://www.oracle.com/technology/products/database/clustering/pdf/RACvDB2.pdf

Прочитал я эту штуку. Стало немного обидно за DB2 и массивно-параллельные базы данных в целом.

Во-первых:
With only two real parallel database choices to pick from, Oracle9i Real
Application Clusters and IBM’s DB2 Universal Database ESE V8.1, the choice
should be easy.

С точки зрения маркетинга - отлично. Типа "больше никого нету, а сейчас и этих опустим".
Наверное не знали, что бывает Терадата и Informix. IQ тоже параллельный, вроде. В общем, технически выглядит не очень профессионально.


Дальше:
авторShared nothing database systems may use a dual ported disk subsystem so that
each set of disks has physical connectivity to two nodes in the cluster with a
notion of “primary and secondary disk ownership.” Such a configuration protects
against system unavailability due to node failures. It requires two node failures to
render the system unavailable. While this is unlikely to occur, a single node
failure may cause significant performance degradation. This is due to the fact that
the one node (in some n node cluster) is now processing roughly twice the work
that any other node is processing and it is on the critical path for transaction completion.

Думаю, что это не совсем так. Рассуждая по аналогии с Терадатой, в которой узлы можно объединять в клики, которые служат для перераспределения нагрузки в случае падения узла клики, думаю, в DB2 тоже должно быть что-то такое. Если, скажем, в клике 4 узла, то при падении узла, нагрузка на 3 оставшихся узла клики будет равномерно распределена. Где тут twice the work не очень понятно.


Дальше:
A benefit of the shared disk approach is it provides unmatched levels of faulttolerance
with all data remaining accessible even if there is only one surviving
node. If a node in the shared disk cluster fails, the system dynamically redistributes
the workload among all the surviving cluster nodes. This ensures
uninterrupted service and balanced cluster-wide resource utilization.

А если этот shared disk из строя выйдет, то вся система накроется, так что ли?
Объясните, пожалуйста.

Дальше:

авторIn addition to requiring a great deal of
expensive manual intervention, the
partitioned approach creates significant
difficulties in capacity planning,
performance tuning and availability.

А разве в DB2 патишионинг не автоматически выполняется? Это же хэширование, как в Терадате.
Правда, где-то читал, что хэш-бакетов поменьше (вроде бы 4К против 64 у Терадаты), ну, ещё, вроде бы, тэйблспейсы надо руками создавать (в Терадате не надо). Ну, остальное-то, наверное DB2 сам делает? Или нет?

А, вот в Oracle с партишионингом как интересно? Я слышал, что надо сильно колдовать над ним. Есть опыт у кого?


Дальше:
In summary, shared nothing databases usually require that you manually partition the data for optimal performance.

Это при условии, что весь партишионинг в Терадате выполняется полностью автоматически. Вывод - не надо обобщать. Получается очень непрофессионально.


Кстати, дальше по поводу кэша, про размер которого тут шла дискуссия:
авторOracle uses direct reads and direct writes to disk to avoid cache coherency overhead in DSS applications.

Вот так.



С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657927
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay Kulikov автор
автор
Нода не нужна. А то что она в базу писала нужно и как ты это вытащишь что закомичено что нужно откатить, если ты не хочешь получить нецелостные данные.
Нужно делать RECOVERY черным по белому написано в документации.

вы похоже не понимаете смысл ораклового рекавери - этот процесс никому не мешает и происходит в фоне. то что закомичено трогать не нужно, остается просто из ундо вернуть на родину данные из транзакций упавшей ноды.

Просто в БД ничего не бывает. Ты утверждаешь что после синхронизации GCS выжившие узлы стразу начинают работать и в параллель запусается процесс востановления.
Расскажи что будет если измененную страницу прочитает раньше не процесс восстановления, а обычная транзакция. И что будет в другом случае когда транзакция зафиксированна на умершем узле, а данные еще не в файлах БД, они в журналах.



Давайте определимся, мы опять про OLTP рассуждаем?
Если про DW, то проблем нет.
Если про OLTP, то что вас смущает? Механизм рекавери такой же, с поправкой на синхронизацию GCS как в обычной (single-instance) базе :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
When one or more instances fail, Oracle automatically recovers the lost changes associated with the instance or instances. Crash or instance recovery consists of the following steps:

    1 . Rolling forward to recover data that has not been recorded in the datafiles, yet has been recorded in the online redo log, including changes to undo blocks. This phase is called cache recovery.
    2 . Opening the database. Instead of waiting for all transactions to be rolled back before making the database available, Oracle allows the database to be opened as soon as cache recovery is complete. 
Any data that is not locked by unrecovered transactions is immediately available.
    3 . Marking all transactions systemwide that were active at the time of failure as DEAD and marking the rollback or undo segments containing these transactions as PARTLY AVAILABLE.
    4 . Rolling back dead transactions as part of SMON recovery. This phase is called transaction recovery.
    5 . Resolving any pending distributed transactions undergoing a two-phase commit at the time of the instance failure.
    6 . As new transactions encounter rows locked by dead transactions, they can automatically roll back the dead transaction to release the locks. If you are using Fast-Start Recovery, 
then only the data block is immediately rolled back, as opposed to the entire transaction.

Объем rolling forward можно контролировать настройками. Жестче требования ко времени восстановления - чаще пишем в файлы. Tradeoff.

Фаза rolling back - обратите внимание на п. 2
Если не пересекаемся по строкам (обратите внимание не по блокам/страницам, а по строкам) - вообще проблем не должно быть.
Если пересекаемся - , то процесс пытающийся изменить данные откатывает только блок, где лежат нужные ему данные (миллисекунды). Откат всей транзакции в целом этому процессу не нужен, это фоновая задача процесса SMON.

Кроме всего этого есть возможности parallel recovery и fast-start parallel rollback для дальнейшей оптимизации процесса восстановления.

Общий смысл - что время восстановления поддается комплексной настройке, и мы не являемся заложниками высокого transaction rate конкретной системы. Посмотри ссылку ниже, после этого 51 сек. восстановления у кого-то - сама по себе не говорит ни о чем

Configuring Instance Recovery Performance
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657931
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>А если этот shared disk из строя выйдет, то вся система накроется, так что ли?
Объясните, пожалуйста.

выше в треде это уже обсуждалось. Возьмите любой ящик от Хитачи, EMC , etc - у него полное дублирование всех компонентов. Если не хватает - нужен еще такой же ящик.

>А, вот в Oracle с партишионингом как интересно? Я слышал, что надо сильно колдовать над ним. Есть опыт у кого?

Что вас интересует?

>Кстати, дальше по поводу кэша, про размер которого тут шла дискуссия:
автор
Oracle uses direct reads and direct writes to disk to avoid cache coherency overhead in DSS applications.


Я извиняюсь, если ошибся, но по-моему вы не поняли, что речь в предложении выше шла про кэш ОС а не Оракла. Это разные вещи. Пользы от кэша ОС практически нет.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657937
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если этот shared disk из строя выйдет, то вся система накроется, так что ли?
Объясните, пожалуйста.

выше в треде это уже обсуждалось. Возьмите любой ящик от Хитачи, EMC , etc - у него полное дублирование всех компонентов. Если не хватает - нужен еще такой же ящик.

Понятно.

>А, вот в Oracle с партишионингом как интересно? Я слышал, что надо сильно колдовать над ним. Есть опыт у кого?

Что вас интересует?


В Терадате чтобы создать базу надо только написать:

CREATE DATABASE mydb
FROM dbc
AS
PERM = 2000000
SPOOL = 5000000
FALLBACK
ACCOUNT= 'ACCTG'
NO AFTER JOURNAL
DUAL BEFORE JOURNAL
DEFAULT JOURNAL TABLE = mydb.journals;

Потом чтобы создать таблицу можно написать:
CREATE TABLE mydb.mytable
(
col1 INTEGER,
col2 .....
)
UNIQUE PRIMARY INDEX( col1);


Не надо создавать тэйблспейсов, не надо создавать вручную партишионы. База готова к работе, создана таблица, которая автоматически партицируется.
Управление дисковым пространством полностью автоматическое и не требует действий со стороны администратора.

А как это выглядит в Oracle?




>Кстати, дальше по поводу кэша, про размер которого тут шла дискуссия:
автор
Oracle uses direct reads and direct writes to disk to avoid cache coherency overhead in DSS applications.


Я извиняюсь, если ошибся, но по-моему вы не поняли, что речь в предложении выше шла про кэш ОС а не Оракла. Это разные вещи. Пользы от кэша ОС практически нет.


Не очень понимаю, что такое cache coherency тогда. Мне почему-то казалось, что речь идёт о когерентности кэшей инстансов Оракла.
А разве кэш инстансов операционки может быть когерентным. И зачем? Разве ОС нодов знают о существовании друг друга?

Ещё - разве Оракл пользуется вводом-выводом операционки, а не напрямую с дисками работает?


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32657942
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
авторПросто в БД ничего не бывает. Ты утверждаешь что после синхронизации GCS выжившие узлы стразу начинают работать и в параллель запусается процесс востановления.


да, им ничто не меншает. бд в консистентном состоянии в любой момент времени. вам лучше почитать oracle concepts, там всего пара страниц.
выжевшие ноды не прерывают работу, просто на них перебрасываются сесии с умершей ноды (там какие-то ограничения были типа alter session теряется и еще что-то, я давал линк на документ ). пока данные не закомичены другие транзакции берут соответствующие блоки из undo.

автор
Расскажи что будет если измененную страницу прочитает раньше не процесс восстановления, а обычная транзакция. И что будет в другом случае когда транзакция зафиксированна на умершем узле, а данные еще не в файлах БД, они в журналах.


какой кэш ? писать минуя кеши оси прямая обязаность любой субд, если вы имели дело с дб2 то наверно вкурсе, транзакция не может быть закомиченой прежде чем данные попали в файл данных (в версионике и undo).
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32658154
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский

[quot ]>А, вот в Oracle с партишионингом как интересно? Я слышал, что надо сильно колдовать над ним. Есть опыт у кого?

Что вас интересует?


В Терадате чтобы создать базу надо только написать:

CREATE DATABASE mydb
FROM dbc
AS
PERM = 2000000
SPOOL = 5000000
FALLBACK
ACCOUNT= 'ACCTG'
NO AFTER JOURNAL
DUAL BEFORE JOURNAL
DEFAULT JOURNAL TABLE = mydb.journals;

Потом чтобы создать таблицу можно написать:
CREATE TABLE mydb.mytable
(
col1 INTEGER,
col2 .....
)
UNIQUE PRIMARY INDEX( col1);


Не надо создавать тэйблспейсов, не надо создавать вручную партишионы. База готова к работе, создана таблица, которая автоматически партицируется.
Управление дисковым пространством полностью автоматическое и не требует действий со стороны администратора.

А как это выглядит в Oracle?

>Кстати, дальше по поводу кэша, про размер которого тут шла дискуссия:
автор
Oracle uses direct reads and direct writes to disk to avoid cache coherency overhead in DSS applications.


Я извиняюсь, если ошибся, но по-моему вы не поняли, что речь в предложении выше шла про кэш ОС а не Оракла. Это разные вещи. Пользы от кэша ОС практически нет.


Не очень понимаю, что такое cache coherency тогда. Мне почему-то казалось, что речь идёт о когерентности кэшей инстансов Оракла.
А разве кэш инстансов операционки может быть когерентным. И зачем? Разве ОС нодов знают о существовании друг друга?

Ещё - разве Оракл пользуется вводом-выводом операционки, а не напрямую с дисками работает?


С уважением,
Константин Лисянский
http://lissianski.narod.ru

1. Про partitioning.

Примерно также все и происходит. При создании таблицы указывается перечень партиций с привязкой к нужным табличным пространствам. Если не делать вообще никакой кастомизации, то будет также как Террадате. А что вас пугает насчет создания тейблспейсов и партиций? Это просто дополнительная степень гибкости. Можно конечно забабахать всю базу из одного таб.пространства SYSTEM, но это будет не гибко.

Вообще у Оракла 4 схемы партицирования я могу назвать сходу:

1)Range partitioning - партицирование по диапазону значений ключа. Наиболее востребованный вариант на практике. Особенно для хранения историчных данных
2)Hash partitioning
3)Composite partitioning - это совокупность первых двух. Сначала разбиение по диапазонам на партиции (кот. в этом случае будут чисто логическими объектами) и затем по хэшу на субпартиции.
4) List partitioning - для каждой партиции определен вектор скаляров ключа


2. Про кэш и ввод-вывод.

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

Разумеется Оракл кроме файлов, работает и с сырыми устройствами тоже, что даже приветствуется, поскольку автоматом решается проблема с кэшем ОС, размер которого на многих операционных системах не поддается ограничению.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32658286
Yo!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Yo!
Гость
транзакция не может быть закомиченой прежде чем данные попали в файл данных (в версионике и undo).

имелось ввиду в файл redo log, в файл данных оно попозжее другим процессом сваливается.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32658363
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин ЛисянскийС точки зрения маркетинга - отлично. Типа "больше никого нету, а сейчас и этих опустим".
Наверное не знали, что бывает Терадата и Informix. IQ тоже параллельный, вроде. В общем, технически выглядит не очень профессионально.
Все там выглядит профессионально. Не нужно выдергивать один кусок и обсуждать его...

ЗЫ
Константин, я думаю, хватит флейма. Когда Терадата будет поддерживать и продвигать свою СУБД так же, как Oracle и MS, когда я смогу у себя в Киеве спокойно в книжном магазине или на рынке найти книги по Терадате, когда будет ваше представительство в моей стране, когда можно будет пойти в учебный центр и послушать курсы по Терадате, когда я свободно смогу сам выбирать аппаратную часть, на которой будет работать СУБД, тогда вы будете вправе писать, что Oracle забыл про Терадату и упомянул лишь DB2...

ЗЗЫ
Давайте закрывать топик. ИМХО, один флейм пошел :-(.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32658395
EugeneS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killed[quot Константин Лисянский]

В Терадате чтобы создать базу надо только написать:
СREATE DATABASE mydb
FROM dbc
AS
PERM = 2000000
SPOOL = 5000000
FALLBACK
ACCOUNT= 'ACCTG'
NO AFTER JOURNAL
DUAL BEFORE JOURNAL
DEFAULT JOURNAL TABLE = mydb.journals;

Потом чтобы создать таблицу можно написать:
CREATE TABLE mydb.mytable
(
col1 INTEGER,
col2 .....
)
UNIQUE PRIMARY INDEX( col1);


Не надо создавать тэйблспейсов, не надо создавать вручную партишионы. База готова к работе, создана таблица, которая автоматически партицируется.
Управление дисковым пространством полностью автоматическое и не требует действий со стороны администратора.

А как это выглядит в Oracle?

С уважением,
Константин Лисянский
http://lissianski.narod.ru

В версии 9i Oracle есть возможность использовать Oracle-Managed Files
Примеры можно посмотреть здесь.
http://]http://download-west.oracle.com/docs/cd/B10501_01/server.920/a96521/omf.htm#1011497

В результате создание БД выполняется так:

The following statement is issued at the SQL prompt:
SQL> CREATE DATABASE sample;

В версии 10g Oracle стал использовать ASM.
В этом случае как бы и файлы не нужны.
Оracle умеет работать с дисковым разделом без файловой системы.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32658534
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский

А разве в DB2 патишионинг не автоматически выполняется? Это же хэширование, как в Терадате.
Правда, где-то читал, что хэш-бакетов поменьше (вроде бы 4К против 64 у Терадаты), ну, ещё, вроде бы, тэйблспейсы надо руками создавать (в Терадате не надо). Ну, остальное-то, наверное DB2 сам делает? Или нет?

А, вот в Oracle с партишионингом как интересно? Я слышал, что надо сильно колдовать над ним. Есть опыт у кого?



Противоречие получается, мы как-то уже начинали разговор
о партиционировании и я говорил что отсоединяю 20 000 000 от
100 000 000 таблицы за 10 -20 минут, помните?

Вы мне говоирили что это занимает секунды в терадате , а что вы отсоединяете за секунды если добавление производится по хешу
(случайным образом).
Я для себя вижу смысл партиционирования
для того чтобы разделить данные по каким то критериям.
За критерии партиционирования и производительность должен
отвечать ДБА, а продукт
должен предоставить механизмы, а не решать за человека.
База данных должна иметь возможность администратору управлять ее поведением.
С ваших слов складывается впечатление, что терадата это
просто easy way. Не буду сравнивать, хотя на языке одна извесная
софтверная компания.
Или вы хотите доказать кастомерам, что купив терадату можно экономить
на зарплате ДБА.

С уважением, onstat-

ps если флеймить так уж флеймить.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32665632
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat
Противоречие получается, мы как-то уже начинали разговор
о партиционировании и я говорил что отсоединяю 20 000 000 от
100 000 000 таблицы за 10 -20 минут, помните?

Вы мне говоирили что это занимает секунды в терадате , а что вы отсоединяете за секунды если добавление производится по хешу
(случайным образом).


Извините, вылетел ненадолго из дискуссии.
Да, противоречие есть, согласен.
Тут нужно сделать уточнение. Такая штука возможна при использовании PARTITIONED PRIMARY INDEX. Это двухуровневый партишионинг когда один уровень - хэширование, а второй определяется руками (наиболее распространённое применение - партишионинг по датам).
Если используется PPI, то отсоединение партиции - секундное дело.
Если PPI не используется, то партиции недоступны напрямую пользователю и удаление будет происходить в обычнои режиме.
Естественно, что если критерий удаления - первичный индекс, то такое удаление будет происходить тоже достаточно быстро.
Про PPI я уже приводил ссылку выше.

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

Я для себя вижу смысл партиционирования
для того чтобы разделить данные по каким то критериям.
За критерии партиционирования и производительность должен
отвечать ДБА, а продукт
должен предоставить механизмы, а не решать за человека.

Я согласен отчасти. Это вопрос правильной балансировки нагрузки между DBA и машиной. На мой взгляд, выигрывает подход, когда машина выполняет большинство задач автоматически. Вам нужно только сесть за руль, повернуть ключ и нажать педаль газа :) Если педалей очень много, в один прекрасный момент становится вопрос о втором пилоте, ну и так далее. Опять таки, ИМХО.

По поводу ручного партишионинга - довольно сложно обеспечить равномерное распределение данных по партициям, что снижает степень параллелизма обработки данных (все ждут окончания работы процесса, который обрабатывает самый большой партишион).


С ваших слов складывается впечатление, что терадата это
просто easy way. Не буду сравнивать, хотя на языке одна извесная
софтверная компания.
:)


В принципе, да. По крайней мере рычагов и кнопочек у неё значительно меньше. Архитектура просто очень хорошая.
Похоже, к сожалению, здесь это не все понимают. Другая известная компания очень хороший маркетинговый отдел имеет :)

Или вы хотите доказать кастомерам, что купив терадату можно экономить
на зарплате ДБА.
При продаже - это на последнем месте. Сейчас продаются решения, а не платформы. А решения у Терадаты есть и довольно хорошие.
Что касается ДБА - действительно Терадату очень легко администрировать.

если флеймить так уж флеймить
Да, но только, если это на пользу. Иначе только время будем зря терять.

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32666206
Nikolay Kulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин, хорошим показателем прототы администрования является количество гигабайт на одного DBA???

Кстати обещанный список DB2 инсталяций

Deutche Telecom - 90 ТБ
Sprint Telecom - 86 ТБ
StateFarm Insurance - 72 TB (Marketing)
JP Morgan Chase - 50 TB
StateFarm Insurance - 36 TB (Actuarial)
Bank One - 35 TB (3 DBA)
Kroger - 24 (2 DBA)

Могу еше.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32666547
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин, хорошим показателем прототы администрования является количество гигабайт на одного DBA???

Даже знаю следующую ссылку, которая последует на мой ответ на этот вопрос :)

Думаю, количество гигабайт на админа - важный показатель, но если всё хранилище - это одна большая таблица, то её и будет один человек администрировать.
Понимаешь, к чему это я?


Кстати обещанный список DB2 инсталяций

Deutche Telecom - 90 ТБ
Sprint Telecom - 86 ТБ
StateFarm Insurance - 72 TB (Marketing)
JP Morgan Chase - 50 TB
StateFarm Insurance - 36 TB (Actuarial)
Bank One - 35 TB (3 DBA)
Kroger - 24 (2 DBA)

Николай, а если не секрет, на каких платформах все эти инсталляции?

Могу еше.

Не сомневаюсь :)
Думаю, что все уже попадали в обморок от рефернсов, которые мы с тобой привели. У меня уже тут пара человек возле офиса тусуются. Жаждут ещё :) Скандируют и трясут транспорантами.
Посмотри, может к тебе тоже уже клиенты выстроились :)


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32666570
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
3 копейки ;) Линк искать не буду, но помню что какой то аналитик писал

ТД - ~1.5 админ на 1Тб
IQ - ~0.5 админа
другие - ~2 и больше.

Думаю, simple, админ базы может быть и один, а рядом 2-3 технаря зоопарк серверов присматривают.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32666588
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay KulikovКонстантин, хорошим показателем прототы администрования является количество гигабайт на одного DBA???

Кстати обещанный список DB2 инсталяций

Deutche Telecom - 90 ТБ
Sprint Telecom - 86 ТБ
StateFarm Insurance - 72 TB (Marketing)
JP Morgan Chase - 50 TB
StateFarm Insurance - 36 TB (Actuarial)
Bank One - 35 TB (3 DBA)
Kroger - 24 (2 DBA)

Могу еше.

Интерестно, сколько там самих данных а сколько индексы и т.д. Просто AC Nielsen case: 24ТБ данных цчаты до 12Гб в IQ, (~72TB в стандартной базе, Оракле, МС и проч.)
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32666647
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nikolay KulikovКонстантин, хорошим показателем прототы администрования является количество гигабайт на одного DBA???



Еще нужно в попугаях замерить
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32666671
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
killed Nikolay KulikovКонстантин, хорошим показателем прототы администрования является количество гигабайт на одного DBA???



Еще нужно в попугаях замерить
Попугаи хорошо.

А вообще, есть такая методика (админы - одна из компонент TCO).
Весьма актуальна, особенно, когда админу надо 80-100к$ платить.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32667546
Константин Лисянский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Павел Новокшонов:

Павел, а сколько у вас администраторов Терадаты на 1 ТБ?

_DogПросто AC Nielsen case: 24ТБ данных цчаты до 12Гб в IQ
Это в 2000 раз что ли? А это не сказка?

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32667701
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский2 Павел Новокшонов:

Павел, а сколько у вас администраторов Терадаты на 1 ТБ?

_DogПросто AC Nielsen case: 24ТБ данных цчаты до 12Гб в IQ
Это в 2000 раз что ли? А это не сказка?

С уважением,
Константин Лисянский
http://lissianski.narod.ru

soosry конечно 12тб
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32667705
_Dog
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин , и sorry и 12tb
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32667923
Фотография killed
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Dog killed Nikolay KulikovКонстантин, хорошим показателем прототы администрования является количество гигабайт на одного DBA???



Еще нужно в попугаях замерить
Попугаи хорошо.

А вообще, есть такая методика (админы - одна из компонент TCO).
Весьма актуальна, особенно, когда админу надо 80-100к$ платить.

OFF
Вспомнилось, как одна крупная консалтинговая фирма (ну знаете, их всего штук пять таких на слуху написала нам заключение на ИС. Так вот, там была замечательная фраза, что-то типа того, что: "Оракл - это хорошо, поскольку для обслуживания вашей системы Оракл 9i требует в 2.75 (точную цифру не помню) раз меньше администраторов чем на DB2."

Полез я гугл и практически сразу нашел эту фразу где-то в дебрях оракловых анонсов. Мне интересно, что за методики рассчетов такие? И как кол-во админов может коррелировать с объемом данных?
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32668004
Павел Новокшонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Константин Лисянский
2 Павел Новокшонов:

Павел, а сколько у вас администраторов Терадаты на 1 ТБ?

2 DBA на ХД из ~1TB. В отделе 4 DBA плюс манагер. Помимо Терадаты мы администрим ряд OLTP систем на DB2 (EE) и Информиксе. Так что есть с чем сравнивать.

onstat-
Противоречие получается, мы как-то уже начинали разговор
о партиционировании и я говорил что отсоединяю 20 000 000 от
100 000 000 таблицы за 10 -20 минут, помните?

А зачем в хранилище данных вообще отсоединять 20 000 000 записей от 100 миллионной таблицы? Какой смысл? Смысл партицирования в Терадате один - это равномерно размазать данные во узлам кластера и по виртуальным процессорам СУБД внутри узлов. Тем самым система максимально сбалансирована и позволяет максимально быстро выполнять DSS запросы.

Здесь важно понимать архитектуру самой СУБД. В Терадате существует всего два типа виртуальных процессоров, в отличие от Информикса к примеру где их до тучи. Один тип PE (Parsing Engine) отвечает за обработку пользовательских сессий, парсинг SQL и генерацию плана запроса. Другой тип виртуальных процессоров, называемый AMP отвечает за храниние и обработку данных. При начальной конфигурации системы каждому AMP'y жестко нарезается одинаковый кусок дискового пространства. Когда я заливаю таблицу скажем из одного миллиарда строк все что делает хэш это берет значение колонки, объявленной
как первичный индекс, прогоняет через хэш-алгоритм и определяет AMP на который пойдет запись. Таким образом если значения первичного индекса достаточно уникальны, то таблица будет равномерно размазана по вирт. процам СУБД.

Да еще про защиту инвестиций на уровне железа. По началу Терадата у нас жила на 4-х узлах, сейчас в системе 14 узлов с тремя генерациями CPU. 2 узла с 8 CPU (700 МГц), 4 узла с 8 CPU (2.8 ГГц) и 8 узлов с 32 CPU (3 ГГц). Т.е. межнодовая шина Bynet позволяет цеплять в кластер узлы с разными CPU, но с точки зрения СУБД это по прежнему одна система. Это удобно когда ХД строится на одной системе и по мере прогресса технологий и роста объема данных старое железо может со-существовать с новым. Опять же один вендор разрабатывает
и железо и СУБД и ОС.

Как с этим в Оракле и ДБ2?

Сергей Тихонов когда я смогу у себя в Киеве спокойно в книжном магазине или на рынке найти книги по Терадате

Все книги можно заказать на амазоне
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32668443
nkulikov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я не понял почему все так на меня накинулись не на утверждение, а на вопрос
Ну да ладно.

автор
хорошим показателем прототы администрования является количество гигабайт на одного DBA???


На DB2 тоже можно объединять разные узлы с разными характеристиками.
Только это не всегда гуд, Ибо производительность узлов с 700Mgz и 2Gz отличается, для уравнивания загрузки можно правда подправлять partition map.

автор
Здесь важно понимать архитектуру самой СУБД. В Терадате существует всего два типа виртуальных процессоров, в отличие от Информикса к примеру где их до тучи. Один тип PE (Parsing Engine) отвечает за обработку пользовательских сессий, парсинг SQL и генерацию плана запроса. Другой тип виртуальных процессоров, называемый AMP отвечает за храниние и обработку данных. При начальной конфигурации системы каждому AMP'y жестко нарезается одинаковый кусок дискового пространства. Когда я заливаю таблицу скажем из одного миллиарда строк все что делает хэш это берет значение колонки, объявленной
как первичный индекс, прогоняет через хэш-алгоритм и определяет AMP на который пойдет запись. Таким образом если значения первичного индекса достаточно уникальны, то таблица будет равномерно размазана по вирт. процам СУБД.

В DB2 немного другая архитектура. Примерный эквивалент AMP - это Database Partition, набор процессов/threads со своим куском дискового пространства. Табличные пространства автоматически не выделяются. Нужно создавать ручками.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32670967
Фотография Сергей Тихонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел НовокшоновВсе книги можно заказать на амазоне
Вы бы хоть ссылки привели для приличия, название сайта и так все знают... Или это суть support`а от TD - www.amazon.com?

ЗЫ
Еще раз - ИМХО, серьезно о Терадате можно будет говорить только тогда, когда ее поддержка и развитие будет сравнима с поддержкой Oracle и MS...
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32671740
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел Новокшонов Константин Лисянский
2 Павел Новокшонов:

Павел, а сколько у вас администраторов Терадаты на 1 ТБ?

2 DBA на ХД из ~1TB. В отделе 4 DBA плюс манагер. Помимо Терадаты мы администрим ряд OLTP систем на DB2 (EE) и Информиксе. Так что есть с чем сравнивать.


У нас чистых ДБА нет по штату, ДБА & SysAdmin(Сетевики Отдельно) это нагрузка к администратору приложения.


onstat-
Противоречие получается, мы как-то уже начинали разговор
о партиционировании и я говорил что отсоединяю 20 000 000 от
100 000 000 таблицы за 10 -20 минут, помните?

Павел Новокшонов
А зачем в хранилище данных вообще отсоединять 20 000 000 записей от 100 миллионной таблицы? Какой смысл? Смысл партицирования в Терадате один - это равномерно размазать данные во узлам кластера и по виртуальным процессорам СУБД внутри узлов. Тем самым система максимально сбалансирована и позволяет максимально быстро выполнять DSS запросы.


Реальная ситуация из жизни.
Имеем базу данных в день туда втягивается приблизительно
1 000 000 транзакций (добавление данных в 5 таблиц).
Время актуальности данных ~пол года. Данные старше полугодичной
давности в расчетах не участвуют.
Как максимально быстро от них избавиться и не мешать удалением
старых записей работе системы?
Складывается впечетление что этот вопрос вас никогда не интересовал.
Или у вас абсолютно статичные данные(читай справочники), но я не могу себе
даже представить какой либо современный бизнес с абсолютно статичными
данными обьемом больше ТераБайта.

Павел Новокшонов
Здесь важно понимать архитектуру самой СУБД. В Терадате существует всего два типа виртуальных процессоров, в отличие от Информикса к примеру где их до тучи. Один тип PE (Parsing Engine) отвечает за обработку пользовательских сессий, парсинг SQL и генерацию плана запроса. Другой тип виртуальных процессоров, называемый AMP отвечает за храниние и обработку данных. При начальной конфигурации системы каждому AMP'y жестко нарезается одинаковый кусок дискового пространства. Когда я заливаю таблицу скажем из одного миллиарда строк все что делает хэш это берет значение колонки, объявленной
как первичный индекс, прогоняет через хэш-алгоритм и определяет AMP на который пойдет запись. Таким образом если значения первичного индекса достаточно уникальны, то таблица будет равномерно размазана по вирт. процам СУБД.


Кстате как быть с идесным поиском по не первичному ключу?
Каким образом производится выбор узла хазаяина по индексу
(не первичному)?

Меня не нужно убеждать в том, что добавление записей по хешу
лучше лубого другого принципа деления для распаралеливания.
У меня есть свое мнение по этому поводу, составленное на практическом опыте эксплуатации базы данных обьемом 500 Gb.
Другие базы данных предоставляют альтернативные инструменты деления
данных. Для ТераДаты я о их достоиствах практически нечего не слышал.


Павел Новокшонов

Да еще про защиту инвестиций на уровне железа. По началу Терадата у нас жила на 4-х узлах, сейчас в системе 14 узлов с тремя генерациями CPU. 2 узла с 8 CPU (700 МГц), 4 узла с 8 CPU (2.8 ГГц) и 8 узлов с 32 CPU (3 ГГц). Т.е. межнодовая шина Bynet позволяет цеплять в кластер узлы с разными CPU, но с точки зрения СУБД это по прежнему одна система. Это удобно когда ХД строится на одной системе и по мере прогресса технологий и роста объема данных старое железо может со-существовать с новым. Опять же один вендор разрабатывает
и железо и СУБД и ОС.

Как с этим в Оракле и ДБ2?


По поводу oracle не скажу, не знаю.
А вот Informix XPS абсолютно всеравно какие сервера установлены по мощности, и если я не ошибаюсь даже на каких OS&Hardware они работают. Важно чтобы версия инстансов XPS были одинаковы.

А вы как нагрузку делите между узлами разной производительности?

С уважением onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32672392
Павел Новокшонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей Тихонов Вы бы хоть ссылки привели для приличия, название сайта и так все знают... Или это суть support`а от TD - www.amazon.com?

Сергей, в настоящее время я не являюсь сотрудником компании NCR, а работаю в казино и поэтому саппорт по СУБД Терадата не оказываю, а скорее его потребляю как клиент, тобишь лицо не заинтересованное. Мой пойнт был в том, что на амазоне введя ключевое слово Teradata вам вывалится с десяток наименованний по сабжу.

Про поддержку - в Мемфисе нет локального офиса NCR как в прочем и ИБМ специализирующихся на базах данных. Есть пара людей от вендера отвечающих за саппорт железа, установку апдейтов, патчей и т.п. Технически можно делать и самому, но как правило это входит в контракт на maintenance. Вся поддержка идет из Сан Диего. Если что-то серьезное то спецы дозваниваются и смотрят систему удаленно. Это в прочем относится и к ДБ2 с Информиксом. В Киеве наверняка есть отделение NCR. Занимаются ли там Терадатой - не знаю. Это скорее вопрос к Константину. Объем Терадаты (не NCR в целом) порядка $1,2 млрд в год - это серьезный бизнес.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32672394
Павел Новокшонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat- Складывается впечетление что этот вопрос вас никогда не интересовал. Или у вас абсолютно статичные данные(читай справочники), но я не могу себе даже представить какой либо современный бизнес с абсолютно статичными данными обьемом больше ТераБайта.

Интересовал. Если я удалю старые записи в хранилище меня выгонят с работы. Пользователи анализируют информацию и за 6 месяцев, и за 2 года и за пять лет. Причем данные пополняются каждодневно. В этом суть хранилища данных, информация по деятельности компании накапливается на детальном уровне, после этого можно выгружать данные в многомерные кубы, агрегировать (или не агрегировать), строить зависимые дата марты, делать data mining, проводить маркетинговые кампании, делать CRM, одним словом - you name it.

onstat- Кстате как быть с идесным поиском по не первичному ключу?
Каким образом производится выбор узла хазаяина по индексу
(не первичному)?

Используются вторичные индексы (как уникальные, так и не уникальные). Для вторичного индекса СУБД строится под-таблица, которая хэшируется между AMP'ми по значению колонки вторичного индекса. Единицей параллелизма в Терадате является скорее не узел, а вирт. процессор СУБД, называемый AMP. Если в условиях выборки указывается вторичный индекс, то если он уникальный, то будет задействоано только 2 AMP'a, если нет, то работать будут все AMP'ы системы. Возможно оптимизатор сочтет, что полное сканирование таблицы
будет работать быстрее чем выборка по индексу. Это зависит от селективности индекса, свежести статистики, насколько наворочен запрос и т.д. Есть т.н. join индексы, материализующие часто объединяемые таблицы для тех или иных запросов.

onstat-У меня есть свое мнение по этому поводу, составленное на практическом опыте эксплуатации базы данных обьемом 500 Gb.

OLTP система на 500ГБ и ХД (читай информационно-аналитическая система) совершенно разные вещи по сути.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32672395
Павел Новокшонов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
onstat- А вы как нагрузку делите между узлами разной производительности?


На более шустрых узлах живет больше АМР'ов. Не намного правда. Поскольку данные равномерно размазаны между AMP'ми, то более быстрым узлам приходится ворочать больше данных. Узел (4 х 3ГГц) - 14 AMP'ов vs. узел (4 х 700МГц) - 10 АМР'ов.

onstat- Важно чтобы версия инстансов XPS были одинаковы.

Informix XPS вроде как параллельная версия Информикса. Но только вот администрить n-инстансов информикса в кластере из n-узлов. Много вопросов - партишонинг, нужно ли спэйс добавлять по dbspace'ам, бэкап/рековэри по узлам делать или как, один onconfig файл править или много, опять же dbspace'ы, tblspace'ы, надо индексы перестраивать или нет, а можно ли в онлайне, GUI у Информикса мало, а у ДБ2 родные GUI просто сосут (в 8-й версии еще куда ни шло). Сугобо ИМХО конечно.
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32672884
onstat-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Павел Новокшонов
Интересовал. Если я удалю старые записи в хранилище меня выгонят с работы. Пользователи анализируют информацию и за 6 месяцев, и за 2 года и за пять лет. Причем данные пополняются каждодневно. В этом суть хранилища данных, информация по деятельности компании накапливается на детальном уровне, после этого можно выгружать данные в многомерные кубы, агрегировать (или не агрегировать), строить зависимые дата марты, делать data mining, проводить маркетинговые кампании, делать CRM, одним словом - you name it.


Бизнес безнесу рознь. И чистых OLTP или DSS систем наверное не существует.
Для моего бизнеса хранить милиарды записей за предидущие годы гораздо дороже. Мы пользуемся уже готовыми
срезами кубов по определенным критериям за предидущие периоды.
Вероятность необходимости получения детализации по операции 5 летней давности очень низка, а стоемость ее храниния в хранилище соезмерима со стоемостью последней записи.
В какую сумму вашей организации обходится хранение детализаций
по операциям 3 -5 летней давности. А какую маркетинговую ценность
представляют детали этих операций?

Конечно переоценив ситуацию можно срузу же лишиться пары терабайт базы
и хвастаться уже будет нечем.
Зато будет ощутима материальная составляющая.

У любых данных есть период их актуальности. По его окончанию данные маркетинговой ценности не представляют. Ценность представляют лишь статистические срезы кубов.
А архивы операций можно хранить на более медленных и дешевых
устройствах например на лентах или DVD матрицах. На то они и архивы.

Павел Новокшонов
onstat- А вы как нагрузку делите между узлами разной производительности?


На более шустрых узлах живет больше АМР'ов. Не намного правда. Поскольку данные равномерно размазаны между AMP'ми, то более быстрым узлам приходится ворочать больше данных. Узел (4 х 3ГГц) - 14 AMP'ов vs. узел (4 х 700МГц) - 10 АМР'ов.

onstat- Важно чтобы версия инстансов XPS были одинаковы.

Informix XPS вроде как параллельная версия Информикса. Но только вот администрить n-инстансов информикса в кластере из n-узлов. Много вопросов - партишонинг,



Не вижу никаких проблем с фрагментацией в informix. У меня есть таблицы
фрагментированные по 20 дбсейсам есть процедура их отключения
и повторного использования. При правильной организации работы с этим может справиться дежурный персонал со средним образованием.
Это обычные регламентные работы типа как помыть пол и вытереть пыль в серверной.

Павел Новокшонов

нужно ли спэйс добавлять по dbspace'ам, бэкап/рековэри по узлам делать или как, один onconfig файл править или много, опять же dbspace'ы, tblspace'ы, надо индексы перестраивать или нет, а можно ли в онлайне, GUI у Информикса мало, а у ДБ2 родные GUI просто сосут (в 8-й версии еще куда ни шло). Сугобо ИМХО конечно.


Я храню данные в сырых устройствах.
И пространство к базе подключать нужно, я не виже в этом недостатка.
Индексы перестраивать не нужно, Gui действительно маловато, сказывается былой маркетинговый просчет informix.
Для меня гораздо важнее наличие дополнительного функционала
по управлению данными, нежели ГУЙ.
По поводу конфигов тут вы правы на каждом сервере свой,но меняются они очень редко. Мы же эксплуатируем систему и эксперементы нам ни к чему.

Коль начали меряться перцами , то давайте еще обсудим такую
немаловажную тему как таблицы исключений(violations tables)
и насколько они повышают юзабельность хранилища данных и приложения.

С уважением,
onstat-
...
Рейтинг: 0 / 0
Проект построения большой БД - давайте пообсуждаем
    #32947722
kmike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Yo!т.е. вы сертифицированый oracle DBA ? ;)

если я правильно понял вы пытаетеcь убедить что откат транзакций упавшей оракловой ноды сопастовим с полного востановлением инстанса ноды дб2 ? оракловый RAC переживет потерб бойца, а shared-nothing обязан востановить ноду.
Дааа? А транзакции, выполнявшиеся этим нодом, никто откатывать не обязан?

А вот для отката как раз и потребуется определение, умер узел или нет.
...
Рейтинг: 0 / 0
307 сообщений из 307, показаны все 13 страниц
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / Проект построения большой БД - давайте пообсуждаем
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]