powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Параллельное создание большого количества PK и FK
19 сообщений из 44, страница 2 из 2
Параллельное создание большого количества PK и FK
    #39762817
sysdba22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
следующим клиентам мы уже рекомендуем при обновлении сервера поставить 1 Тб оперативной памяти. так что задача сортировать всё в памяти и как можно быстрее становится как никогда актуальной.
...
Рейтинг: 0 / 0
Параллельное создание большого количества PK и FK
    #39762825
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22все данные в один кусок памятиГде ж взять такой один кусок памяти ?
Увеличив TempCacheLimit ты можешь добиться сортировки в памяти, да. Но не в одном куске.
Почему quicksort перестаёт быть quick на огромных объёмах памяти - изучай литературу.
...
Рейтинг: 0 / 0
Параллельное создание большого количества PK и FK
    #39762826
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad FА это можно, технически, сделать?

sysdba22только не на 100500, а на 256 Гб пока ))

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

откуда такое странное желание убрать слияние? Вы уверены что без него будет быстрее?
Ничего что сортировать надо не только одному пользователю?
...
Рейтинг: 0 / 0
Параллельное создание большого количества PK и FK
    #39762830
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22а так, да, именно этого и хочется. все данные в один кусок памяти и сортировка его. без разбиения на части и последующего слияния. и без вызовов функций обращения к дисковым файлам.
ты же читал fb1tbtech, там для сортировки одного индекса потребовалось 182 гиг памяти, для других поменьше, но -
если ты их будешь создавать параллельно, так суммарно на твоей терабайтной базе это может превысить 256 гиг. И что дальше?

Так что пожелание "без вызовов функций обращения к дисковым файлам" выглядит абсолютно необоснованной блажью. Потому что ФБ продолжает сортировку во временных файлах только когда ему памяти для сортировки не хватает.
У себя на сервере сравнил по времени создание индекса влезающего в sortmemsize и не влезающего? Разница есть? Какая?
...
Рейтинг: 0 / 0
Параллельное создание большого количества PK и FK
    #39762833
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22скажем так, в чем проблема. у нас тут 20 лет системе нашей и мы сейчас думаем, как так
сделать, чтобы она спокойно проработала следующие 20.

Оптимизацией заняться не пробовали?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Параллельное создание большого количества PK и FK
    #39762840
sysdba22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
оптимизацией тоже занимаемся. просто, когда данных много, то их много... как ни крути.
...
Рейтинг: 0 / 0
Параллельное создание большого количества PK и FK
    #39762847
sysdba22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
буду дальше эксперементировать...

просто для фб важно оставаться конкурентноспособным. сейчас в железе произошли 2 важных изменения. во-первых, у всех наших больших клиентов уже стоят или SSD диски за RAID-ами с гигабайтами кэша или системы на модулях оперативной памяти от Intel с сумасшедшими числами рандом IO. Т.е. там где раньше алгоритмы упирались в скорость рандомного доступа, теперь такой проблемы нет.

во-вторых, стали доступны немыслимые раньше объемы ОЗУ.

PS: SAP, например, вообще создал новую БД с нуля:

https://en.wikipedia.org/wiki/SAP_HANA

которая всё держит в оперативной памяти. да, требования у них теперь от 1 Tb и выше на сервере, но и скорости в 10-100 раз выше против прежнего.
...
Рейтинг: 0 / 0
Параллельное создание большого количества PK и FK
    #39762852
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22когда данных много, то их много... как ни крути.

Объём данных сам по себе лежит на диске мёртвым грузом и проблем не создаёт. Проблема
возникает исключительно при применении кривых способов работы с этими данными.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Параллельное создание большого количества PK и FK
    #39762864
sysdba22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторты же читал fb1tbtech, там для сортировки одного индекса потребовалось 182 гиг памяти, для других поменьше, но -
если ты их будешь создавать параллельно, так суммарно на твоей терабайтной базе это может превысить 256 гиг. И что дальше?

да, читал.но там индекс по 3.7 млрд записей. у меня же пока сотня индексов но по ~100 млн записей. Т.е. на порядок меньше. Соответственно я и расчитываю что при параллельном разбиении, скажем на 10 потоков, должно хватить 256 Гб на все индексы.
...
Рейтинг: 0 / 0
Параллельное создание большого количества PK и FK
    #39762869
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22,

то что в Firebird есть что оптимизировать (в том числе и сортировке) не подлежит сомнению, но у вас какие то странные предложения как это сделать.
...
Рейтинг: 0 / 0
Параллельное создание большого количества PK и FK
    #39762873
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22да, читал.но там индекс по 3.7 млрд записей. у меня же пока сотня индексов но по ~100 млн записей. Т.е. на порядок меньше. Соответственно я и расчитываю что при параллельном разбиении, скажем на 10 потоков, должно хватить 256 Гб на все индексы.

это смотря каких индексов. Сортировать BIGINT это одно, а какой нибудь VARCHAR(100) совсем другое.
Вот мне интересно зачем вы так бьётесь над разовой операцией? Или вы каждый день индексы пересоздавать собрались?
...
Рейтинг: 0 / 0
Параллельное создание большого количества PK и FK
    #39762892
sysdba22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проблема в том что там на предприятии 24*7 цикл и к серверу в том числе подключено оборудование производственное. чтобы на 8-10 часов остановить базу на майские праздники мы уже сейчас начинаем вести переговоры...
...
Рейтинг: 0 / 0
Параллельное создание большого количества PK и FK
    #39762910
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22чтобы на 8-10 часов остановить базу на майские праздники мы уже сейчас начинаем вести переговоры...Что можно делать 8 часов с базой 200гб - не понятно. Индекс BIGINT на 100млн записей будет пересоздан, мягко говоря, быстрее. И 100 индексов тоже.
...
Рейтинг: 0 / 0
Параллельное создание большого количества PK и FK
    #39762914
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22,

я не очень понял этот коммент - к чему про 24х7? В таких случаях делается репликация, а для тестов база копируется еще куда-то, без всяких остановок (nbackup), и там уже можно и размеры сортировок для индексов проверить, и оптимизировать запросы, и так далее.

Или это к длительности рестора? Я так и не увидел
1. сколько времени идет бэкап
2. сколько времени идет рестор
3. сколько времени экономит параллельное создание индексов после gbak -c -i по сравнению со штатным временем рестора.

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

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

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

К примеру, в статье приведено хорошее и плохое время бэкапа
http://www.ibase.ru/backupspeed3/
Например, отлично это когда база в 124 гига бэкапится за 40 минут. Значит, если у вас тоже хорошо, то бэкап 200 гиг сделается за 1.5 часа. Но время рестора обычно в 2-3 раза больше. А значит 200 гиг заресторится за 3.5 часов.
А когда база вырастет до терабайта, то на том же железе рестор уже будет длиться 15 часов.
15 часов простоя плюс затраты на переввод документов с момента последнего бэкапа - это может быть совершенно неприемлемо.

У середнячков, там же, в статье, 80 гиг бэкапятся за 40 минут, значит 200 гиг где-то часа два или более, а рестор уже часов 6, и более.

Так вот, защититься от сбоев и потерь, и обеспечить нормальную скорость восстановления системы, для таких баз можно только репликацией.
...
Рейтинг: 0 / 0
Параллельное создание большого количества PK и FK
    #39762915
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22,

только что провёл тест (120 млн записей) на древнем компе, 2 ядра, HDD, 2Гб оперативки. 5 минут. Так то да - получается 100 раз - 500 минут.
Но сервер должен быть хотя бы на порядок быстрее этого моего компа.
...
Рейтинг: 0 / 0
Параллельное создание большого количества PK и FK
    #39762923
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22проблема в том что там на предприятии 24*7 цикл и к серверу в том числе подключено оборудование производственное. чтобы на 8-10 часов остановить базу на майские праздники мы уже сейчас начинаем вести переговоры...Как вы вообще без кластера дожили столько времени? У нас нет такого драконовского риалтайма и то держим несколько нод на репликации, чтобы можно было выводить на регламент требуемое железо.
...
Рейтинг: 0 / 0
Параллельное создание большого количества PK и FK
    #39762940
sysdba22
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на пожарный случай там есть резервный сервер на который несколько раз в сутки с помощью nbackup делается горячая копия бд.

для репликации ждем FB 4 ))

полный цикл бэкап-рестор там идет часов 7, но делали уже давно. сейчас может и чуть дольше. и за счет BIGINT база подрастет процентов на 20%, что тоже увеличит время...

как-то так.

ладно, сделаю парллельное восстановление, сюда сообщу о результате. даже если он будет отрицательным ))
...
Рейтинг: 0 / 0
Параллельное создание большого количества PK и FK
    #39762964
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22за счет BIGINT база подрастетЕсли нацеливаетесь на репликацию, может имеет смысл мигрировать сразу на uuid? Чтоб не рубить той несчастной собачке хвост по частям.
...
Рейтинг: 0 / 0
Параллельное создание большого количества PK и FK
    #39762989
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sysdba22полный цикл бэкап-рестор там идет часов 7
Код: plaintext
gbak -b ... база-есть stdout|gbak -c ... stdin база-будет
позволяет убрать время восстановления собственно данных.
Т.е. будет "время бэкапа плюс время создания индексов". Возможно, "минус немного времени от записи файла бэкапа".

P.S.
До майских праздников можно успеть проверить и этот и многие другие варианты.
...
Рейтинг: 0 / 0
19 сообщений из 44, страница 2 из 2
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Параллельное создание большого количества PK и FK
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]