powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / C++ [игнор отключен] [закрыт для гостей] / vector на триллион объектов
332 сообщений из 332, показаны все 14 страниц
vector на триллион объектов
    #39972424
есть какие-то ограничения в практическом применении векторов?
если вектор вырастет до триллиона структур и будет постоянно висеть в памяти, есть ли какие-то риски?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972426
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочу выделить не менее терабайта памяти. Не идиот ли я???
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972427
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
есть какие-то ограничения в практическом применении векторов?

Для x64 нет. В x86 примерно 1.7 Гб потолок.
Алексей Роза
если вектор вырастет до триллиона структур и будет постоянно висеть в памяти, есть ли какие-то риски?

Память кончится - ОС закроет прогу.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972435
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза,

Самое время вторым постом написать
for.... Триллион.
И посмотреть
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972444
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза,

а что в вектор будете складывать, просто из любопытства ?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972452
Dima T
Для x64 нет. В x86 примерно 1.7 Гб потолок.

не ну это понятно. Конечно про x64 речь.
вопрос в сохранности, констистенции и скорости обработки...
mini.weblab
Алексей Роза,

а что в вектор будете складывать, просто из любопытства ?

инты, строки.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972455
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
инты, строки.

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

Реализовывайте свой алгоритм кеширования и подгрузки с диска.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972473
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
ни одна СУБД не умеет хорошо работать с данными, которые лежат на диске
да и когда в памяти миллиард строк, тоже тупит.
голословно.
Это основное назначение субд.
А вы говорите не умеют)))
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972475
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
ни одна СУБД не умеет хорошо работать с данными, которые лежат на диске
да и когда в памяти миллиард строк, тоже тупит.
в какой памяти? Мы про бд?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972488
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
ни одна СУБД не умеет хорошо работать с данными, которые лежат на диске

Стебелек умеет.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972496
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky,

Файл на диске умеет. Он же ничего не сказал о запросах к данным))))) о целостности данных, о транзакционности...
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972509
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
есть какие-то ограничения в практическом применении векторов?
если вектор вырастет до триллиона структур и будет постоянно висеть в памяти, есть ли какие-то риски?

Что такое триллион?

10^6 - это миллион
10^9 - это миллард
10^12 - это триллион

Если грубо - то это приставка тера-*. Тоесть если-бы структура была байтом - то мы-бы грубо выделили 1 терабайт.

Мне кажется вопрос упирается в действия ОС во время операции malloc(). Что она будет делать?
Тут наверное Windows/Linux будут идти по разной стратегии. И какие будут ограничения на фактическую
оперативку.

Возможно при таком объеме стоит посмотреть в memory-mapped API. Consern такой. Даже если
ты аллоцируешь 1 теребайт оперативы то вряд-ли ты в единый миг сможешь ее использовать.

Технически - я думаю это возможно.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972510
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Файл на диске умеет.

Я всерьез не собирался обсуждать его заявление.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972514
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу того что у нас не malloc а vector.

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

https://en.cppreference.com/w/cpp/container/vector/vector

Потому-что динамический resize может быть расточительным в нашем кейсе.
Возможно в какой-то момент мы затребуем даже больше чем 1 Тера-количество
элементов. Сколько там он? В 1.5 или 1.2 или 2 раза? Я не помню.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972518
PetroNotC Sharp
Алексей Роза
ни одна СУБД не умеет хорошо работать с данными, которые лежат на диске
да и когда в памяти миллиард строк, тоже тупит.
голословно.
Это основное назначение субд.
А вы говорите не умеют)))

основное назначение СУБД - сохранность и поиск данных.
скорость - НЕ основное. Вот транзакции - да.
Чтобы найти рандомную, незакешированную строчку среди миллиардов, уйдёт несколько секунд.
Anatoly Moskovsky
Алексей Роза
ни одна СУБД не умеет хорошо работать с данными, которые лежат на диске

Стебелек умеет.

чего он умеет? Все они одинаковые.
Даже редиска под нагрузкой сдувается. Да и без нагрузки херня неэффективная.
mayton
Я думаю имеет смысл делать предварительное резервирование структур в штуках в конструкторе

ну это само собой.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972523
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
Чтобы найти рандомную, незакешированную строчку среди миллиардов, уйдёт несколько секунд.

При кривых руках админа, вполне возможно ))
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972529
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза

основное назначение СУБД - сохранность и поиск данных.
скорость - НЕ основное. Вот транзакции - да.
Чтобы найти рандомную, незакешированную строчку среди миллиардов, уйдёт несколько секунд.

Расскажи что у тебя лежит внутри этих структур. И может тебе надо не vector
а какую-то другую структуру данных для поиска.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972530
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно для чего может понадобиться такая задача?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972532
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Алексей Роза
ни одна СУБД не умеет хорошо работать с данными, которые лежат на диске
да и когда в памяти миллиард строк, тоже тупит.

Реализовывайте свой алгоритм кеширования и подгрузки с диска.

Давайте эксперимент. Возьмем бесплатную DBMS (PG/MySQL).
Создатим табличку. С 1 полем типа Int.
Проиндексируем ее по этому полю. Загрузим миллиард чисел.
Последовательность. Имеем предварительно знание что любой индекс
баз данных класса B+Tree имее 3-4 уровня блоков. Тоесть максимум
за 4 дисковых операции он находит нужный ключ. Для старого магнитного
диска типа HDD время поиска любого сектора занимает в среднем 6 милисекунд.
(я промерял аж 5 своих SATA дисков и эти цифры правда такие. Я гарантирую.).

Тоесть любой ключ в этой таблице мы найдем за 6 * 4 = 24 милисекунды.
Это на старом жлобском магнином диске. Ну для твердотельных там будут
цифры получше.

И этот весь эксперимент не требует тера-штучного вектора. Обычная
база типа Postgres/MySQL.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972542
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
petrav
пропущено...

Реализовывайте свой алгоритм кеширования и подгрузки с диска.

Давайте эксперимент. Возьмем бесплатную DBMS (PG/MySQL).
Создатим табличку. С 1 полем типа Int.
Проиндексируем ее по этому полю. Загрузим миллиард чисел.

Мы не знаем какие у автора требования. Чисто теоретически, написав узкоспециализированный алгоритм, своё кеширование (обойдя кеширование ОС), наверное, можно обогнать универсальную БД. Особенно если у нас очень "необычный" алгоритм работы с данными. Но чисто практически, свой алгоритм кеширования, я думаю, может по сложности неожиданно потянуть на докторскую диссертацию из какой-нибудь аля теории множеств. :)
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972543
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так всегда делаю. В спорных технических вопросах даю готовое коробочное решение с цифрами.
Пускай даже прямое и деревянное. И дальше уже автор пускай обосновывает почему ему это
решение не подходит. И уже с цифрами.

На самом деле кеши поверх БД тоже строят. Вот сбербанк не просто построил а разработал
целый программный продукт в виде грида кешей и уже продает его отдельно. Но там - тоже
свои сложности. С invalidation.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972554
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза,
>Чтобы найти рандомную, незакешированную строчку среди миллиардов, уйдёт несколько секунд.

По ключу? МИКРОсекунд.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972561
bk0010
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите про In memory database (Exasol, MemSql). Может это то, что вам надо?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972563
mayton
Для старого магнитного
диска типа HDD время поиска любого сектора занимает в среднем 6 милисекунд.

а причём тут сектор? откуда БД знает, в каком секторе лежит нужная строка??
она сначала будет ВСЕ строки с диска в память тащить, а потом в них будет искать нужную.
это и называется "кеширование".
(и да, это я говорю про таблицу индексов щас)
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972564
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
а причём тут сектор? откуда БД знает, в каком секторе лежит нужная строка??
она сначала будет ВСЕ строки с диска в память тащить, а потом в них будет искать нужную.
это и называется "кеширование".

Про индексы слышали? ))
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972565
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза,

>а причём тут сектор? откуда БД знает, в каком секторе лежит нужная строка??
По ключику вестимо
select vasja from... where id=123
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972566
PetroNotC Sharp
Алексей Роза,
>Чтобы найти рандомную, незакешированную строчку среди миллиардов, уйдёт несколько секунд.

По ключу? МИКРОсекунд.

это когда данные уже закешированы.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972567
Anatoly Moskovsky
Алексей Роза
а причём тут сектор? откуда БД знает, в каком секторе лежит нужная строка??
она сначала будет ВСЕ строки с диска в память тащить, а потом в них будет искать нужную.
это и называется "кеширование".

Про индексы слышали? ))


кстати, в случае мейтоновского эксперимента она будет = исходной таблице.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972568
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
PetroNotC Sharp
Алексей Роза,
>Чтобы найти рандомную, незакешированную строчку среди миллиардов, уйдёт несколько секунд.

По ключу? МИКРОсекунд.

это когда данные уже закешированы.

У тебя других слов кроме "кеширование" в лексиконе нет?

Кэш[1][2][3][4] или кеш[5][6][7] (англ. cache, от фр. cacher — «прятать»; произносится [kæʃ] — «кэш») — промежуточный буфер с быстрым доступом к нему, содержащий информацию, которая может быть запрошена с наибольшей вероятностью. Доступ к данным в кэше осуществляется быстрее, чем выборка исходных данных из более медленной памяти или удалённого источника, однако её объём существенно ограничен по сравнению с хранилищем исходных данных.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972569
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза,

Сначала построй правильную реляционную модель данных.
А потом задавай вопросы.
В модели данные не лежат без первичного ключа PK
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972570
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот какой подфорум, по предположительному качеству образования участников,
должен был бы быть лидером по количеству и чистоте бреда?
Кто бы мог подумать, что это...
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972571
PetroNotC Sharp, ты зачем мне всё это пишешь, кэп?
сначала научись не флудить водой, а потом приходи в мою тему.
PetroNotC Sharp
В модели данные не лежат без первичного ключа PK

поработай с базами данных плотно, может избавишь от своих розовых бредней.
bk0010
Посмотрите про In memory database (Exasol, MemSql). Может это то, что вам надо?

есть сравнение с той же редиской?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972573
booby
Вот какой подфорум, по предположительному качеству образования участников,
должен был бы быть лидером по количеству и чистоте бреда?
Кто бы мог подумать, что это...

да не говори... в 2020 не знать, что RDBMS это мееееедленно... парадокс
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972579
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
booby
Вот какой подфорум, по предположительному качеству образования участников,
должен был бы быть лидером по количеству и чистоте бреда?
Кто бы мог подумать, что это...

да не говори... в 2020 не знать, что RDBMS это мееееедленно... парадокс

Вам "мееееедленно" или "в память не влазит триллион"…
Поэтому топик и есть бред.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972583
PetroNotC Sharp
в память не влазит триллион

да научись ты уже читать!
я не спрашивал такое.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972587
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза,

Леша, не тешь себя. Конечно, ты в этом форуме не самый знатный бредогенератор.
Волну гнать можешь, но нызенько...
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972600
booby
Алексей Роза,

Леша, не тешь себя. Конечно, ты в этом форуме не самый знатный бредогенератор.
Волну гнать можешь, но нызенько...

ты эту херню детсадовскую будешь писать, когда я к тебе в тему приду пофлудить.
А пока волну тут гонишь ты.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972605
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972627
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
PetroNotC Sharp
в память не влазит триллион

да научись ты уже читать!
я не спрашивал такое.

авторвопрос в сохранности, констистенции и скорости обработки...
Как то скупо ты вещаешь мил человек.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972628
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
mayton
Для старого магнитного
диска типа HDD время поиска любого сектора занимает в среднем 6 милисекунд.

а причём тут сектор? откуда БД знает, в каком секторе лежит нужная строка??
она сначала будет ВСЕ строки с диска в память тащить, а потом в них будет искать нужную.
это и называется "кеширование".
(и да, это я говорю про таблицу индексов щас)

Нет. Бд не работает так как ты рассказываешь.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972636
Barlone
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза

а причём тут сектор? откуда БД знает, в каком секторе лежит нужная строка??
она сначала будет ВСЕ строки с диска в память тащить, а потом в них будет искать нужную.
это и называется "кеширование".
(и да, это я говорю про таблицу индексов щас)
https://ru.wikipedia.org/wiki/Двоичный_поиск
https://ru.wikipedia.org/wiki/B -дерево
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972648
PetroNotC Sharp
Как то скупо ты вещаешь мил человек.

Я вполне конкретно и чётко определил, что меня интересует
Алексей Роза
ни одна СУБД не умеет хорошо работать с данными, которые лежат на диске
да и когда в памяти миллиард строк, тоже тупит.

и нигде не говорил про то, что у меня памяти не хватает.
потому что такой проблемы у меня нет. Я знаю как её обойти.
Вы же начинаете сказки рассказывать про то, что в РДБМС всё чудесно и в любой момент там миллисекунды, загоняй данные туда.
Я более 10 лет работаю с РДБМС, хватило.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972651
mayton
Нет. Бд не работает так как ты рассказываешь.

да именно так и работает. Есть "горячие" данные, а есть "холодные". Когда данные загружены в память (закешированы) - это горячие.
Только вот даже когда они в памяти, это всё равно абстракция и нихрена не быстро, когда подключаются джойны и сортировки.
Поиск по id - самая быстрая операция, но она не самая частая. Есть и другие, гораздо более медленные.
Так вот, данные в памяти лежат постоянно только у маленьких таблиц. А большие лежат на диске.
И во время первого запроса они ещё "холодные". Там даже поиск по id хромает.

зы: миллисекунды - это кстати много.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972652
Barlone, а чего только 2? Вываливай все индексы, зачем останавливаться...
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972654
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как реализовывается индекс по строковому полю? Что хранится в бинарном дереве?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972660
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
есть какие-то ограничения в практическом применении векторов?
если вектор вырастет до триллиона структур и будет постоянно висеть в памяти, есть ли какие-то риски?

То есть памяти хватает и ты в курсе как это решать?
Тогда никаких рисков. Работай.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972666
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 All

Стоп гнать бочку на Алексея. Здесь мы обсуждаем вопрос а не персону.

(Перчатка Таноса жжот мне руку).

Алексей Роза
mayton
Нет. Бд не работает так как ты рассказываешь.

да именно так и работает. Есть "горячие" данные, а есть "холодные". Когда данные загружены в память (закешированы) - это горячие.
Только вот даже когда они в памяти, это всё равно абстракция и нихрена не быстро, когда подключаются джойны и сортировки.
Поиск по id - самая быстрая операция, но она не самая частая. Есть и другие, гораздо более медленные.
Так вот, данные в памяти лежат постоянно только у маленьких таблиц. А большие лежат на диске.
И во время первого запроса они ещё "холодные". Там даже поиск по id хромает.

зы: миллисекунды - это кстати много.

Ты затронул интересный и сложный вопрос. Я по нему могу говорить часами.

Но для начала. Давай просто сделаем такой confirm, что алгоритмы поиска на диске
в принципе ничем особо не отличаются по complexity от алгоритмов по оперативке.
Формула - таже самая. С логарифмом в основе. Тоже самое B+Tree дерево - это
сжатое в блоки бинарное дерево поиска.

Только надо сделать скидку на физическую организацию данных. И на то что seek time
это бич всех механических дисковых систем.

а причём тут сектор? откуда БД знает, в каком секторе лежит нужная строка??
она сначала будет ВСЕ строки с диска в память тащить, а потом в них будет искать нужную.
это и называется "кеширование".
Современные диски оперируют блоками (LBA), поэтому разумно действительно перейти на блоки.
Для большинства жестких дисков блок == 4 килобайта или 8 секторов по 512 байт.

Каким образом приложение может работать с блоками. Есть такой договорняк что все
файловые системы (NTFS/ext4/...etc) начинают свой файл на границе блока. Тоесть если ты открыл
файл в режиме RandomAccess и будешь делать seek по смещению кратному 4к
то диск при этом будет делать минимальное число операций (access path) для того
чтобы тебе предоставить данные. Разумеется режим открытия файла должен быть
соотвествующий (без буферизации). Здесь уже надо читать доки на API который ты используешь.
Далее - простая арифметика. Если твой индекс состоит из страниц равных 4к или 8к (Oracle by default)
тогда будет работать та формула которую я предложил выше.

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

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

Есть также альтернативные разработки (dbms Tarantool) которые улучшают даже B+Tree индекс.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972673
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Ему нужен полнотекстовый поиск по триллиону строк?
Ему нужна СУБД если он сказал что память не проблема и вектор в нее влезет?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972674
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можем даже заниматься системной оптимизацией полнотекстового. Надо просто поставить задачу.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972675
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravЧто хранится в бинарном дереве?

То же что и обычно - ключ, полученный какими-то преобразованиями данных.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972676
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Можем даже заниматься системной оптимизацией полнотекстового. Надо просто поставить задачу.

Мы много чем можем можем заняться))).
Просто ТС не может поставить задачу.
))
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972679
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

petravЧто хранится в бинарном дереве?

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

Там хранится ключ и указатель на физическое местоположение строки (RowId) в datafile.
Это для листовых узлов индекса. Для не-листовых - там линки на соседние блоки индекса.

Его формат немного отличается от указателя. Например Oracle хранит группу целых
чисел (номер файла, номер блока в файле (это тот самый 8к блок файловой системы),
и номер строки внутри блока). И дополнительно objectId. Это кажется надо для поддержки
кластеризованных таблиц.

Например. Фрагмент блока индекса.

(Я пишу в формате JSON чтоб было понятно. На самом деле там - RAW.)
keyrow_id (in JSON)mayton{ file=1, block=25, row=3, objId=... }Petro{ file=1, block=25, row=4, objId=... }........

В таблице есть блок номер 25 где лежат 2 строки проиндексированные по ключам mayton, Petro.

Понятно что file=1 это уже не файл где лежит индекс а файл где лежит индексируемая таблица.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972680
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Замечательно. Осталось выяснить уникальность ключа и работает ли по нему поиск)
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972681
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Dimitry Sibiryakov

пропущено...

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

Там хранится ключ и указатель на физическое местоположение строки (RowId) в datafile.
Это для листовых узлов индекса. Для не-листовых - там линки на соседние блоки индекса.

Я не это имел в виду. Уточню: в случае индекса по строковому полю, что представляет собой ключ?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972684
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоже работает. С точки зрения Oracle (например) - все индексы являются Unique по своей структуре данных.

Неуникальные там достигаются изменением алгоритма в плане оптимизатора. Как точно - я щас не помню
надо почитать. Дядка Том писал об этом.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972686
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
пропущено...

Там хранится ключ и указатель на физическое местоположение строки (RowId) в datafile.
Это для листовых узлов индекса. Для не-листовых - там линки на соседние блоки индекса.

Я не это имел в виду. Уточню: в случае индекса по строковому полю, что представляет собой ключ?

Абсолютную копию этой-же строки. Тоесть строка "mayton" будет физически скопирована с таблицы в индекс.

Но если тебя интересует экономия места - то можно строить Index-Organized-Tables (это гибрид таблицы и индекса).
Но там есть ограничения. Нельзя дополнительные поля проиндексировать. Только primary.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972687
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

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

Как же происходит балансировка такого дерева, если в кешах только верхняя часть дерева?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972690
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonАбсолютную копию этой-же строки.
В простейшем случае - да, но обычно применяют преобразования для получения CI AI.
И префиксную компрессию.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972693
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton

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

Как же происходит балансировка такого дерева, если в кешах только верхняя часть дерева?

В онлайне. Оно растет от листьев к корню. Грубо говоря - малый индекс - это 1 блок.

Когда инфа больше чем 8 килобайт - происходит split блока на 2 части вверх поднимается
новый ключ-медиана который делит условно все пространство ключей на 2 диапазона.
Те что больше ключа ложаться в правое поддерево. А те что меньше в левое.

Корневой узел хранит 1 ключ и два указателя влево и справо. А а дочерние узлы - листовые
хранят уже ключи и ROW_ID.

А вот примерно так будет выглядеть индекс с 3 уровнями. Это когда после сплитов наш корневой узел
опух до предела и произошел новый сплит с поднятием нового корня еще выше вверх.



Работает тоже самое алгоритм бинарного дерева просто заточенный под работу дисковыми блочками
чтоб не создавать лишней нагрузки.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972694
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работа кешей БД - это прозрачный механизм для движка. Ему по большему счету все равно откуда
читать. Просто исходим из предположения что наиболее горячие блоки сконцентрированы вверху
дерева.

Есть там еще такой интересный параметр как фактор кластеризации. Он .. грубо говоря показывает
насколько сильно мы будем промахиваться мимо кеша (таблицы) если будет скан индекса с первого ключа
по последний. Это актуально для запросов в RANGE-предикатом. Типа where date between d1 and d2.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972696
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Тоже работает. С точки зрения Oracle (например) - все индексы являются Unique по своей структуре данных.

Неуникальные там достигаются изменением алгоритма в плане оптимизатора. Как точно - я щас не помню
надо почитать. Дядка Том писал об этом.

Тут задают вопрос об уникальности с точки зрения бизнеса.
Чтобы full scan не было.
То есть перебора всех строк подряд.
Мы глубоко в физику процесса полезли.
Что будет индексом к "Война и мир"?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972697
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Без блока where вся твоя физика процесса индексации не имеет смысла.
Так как ключи могут быть не использованы вообще оптимизатором.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972698
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть отдельный API который бегает мимо кешей. DIRECT. Типа прямой.
Он нужен для массовых операций типа count(*). И чтобы count своей селективностью
не засирал кеш - его кидают отдельной операцией которая не влияет на состояние кеша.

Тоже самое к массовым процессам типа ETL.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972699
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton
Тоже работает. С точки зрения Oracle (например) - все индексы являются Unique по своей структуре данных.

Неуникальные там достигаются изменением алгоритма в плане оптимизатора. Как точно - я щас не помню
надо почитать. Дядка Том писал об этом.

Тут задают вопрос об уникальности с точки зрения бизнеса.
Чтобы full scan не было.
То есть перебора всех строк подряд.
Мы глубоко в физику процесса полезли.
Что будет индексом к "Война и мир"?

Я ведь тоже не могу ответить на этот вопрос при такой обобщённой постановке.

Прямой ответ - смотрите в excecution plan и добивайтесь того чтобы FTS операция была
заменена на index-scan, index-range, e.t.c. Есть еще варианты - использовать partition iterator
но это все требует деталей которых у меня нет.

Оптимизаторы часто используют логику наподобие нейро-сети. Тоесть принимают решение
исходя из десятка настроечных параметров и не один DBA не может наперед сказать что
план будет хорош или плох. Оптимизация плана - это итеративный процесс. Смотришь.
Изменяешь. Смотришь. Изменяешь... итд.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972704
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Просто не люблю усложнять когда нет вообще постановки.
Пример:
- ТС не говоил что будут запросы. Поэтому индексом PK к колонке строк Война и мир будет автоинкремент.
Чтобы при родах вектора структуру книги не потерять.
Всё.
Автор больше не усложнял никакими доп требованиями.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972706
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

>Прямой ответ - смотрите в excecution plan
До плана далеко. Мы не построили Модель.
Не знаем типы данных в колонках и какой индекс строить руками при проектировании таблицы.
Индексов то полно всяких).
Я выше предложил МИНИМАЛЬНЫЙ. Автоинкремент PK
Пусть автор докажет что это не работает.
"ТС работает больше отвечающих" (с)
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972709
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу войны и мира.

Что ты хочешь найти? Страницу документа? Номер строки? Или Строка и номер слова в строке?
Хочешь ли ты строгий поиск по совпадению? Или ты хочешь поиск по основе слова?
Или ты хочешь стемминг и лематизацию и способность кода находить синонимы и похожие
слова и опечатки.

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

Текстовый поиск это вообще офигенски сложная дисциплина. И я в ней плаваю.
Я знаю ее где-то на 10% и там много подводных камней.

Всё что я описывал выше это обычный классический поиск в БД который к тексту вообще-то
отношения не имеет.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972712
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Конечно.
Поэтому кеши, деревья, и еще раз кеши мимо темы топика.
Имхо.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972729
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо. Тогда я умолкаю. Подожду Алексея с его тера-массивом структур.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972732
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
petrav
пропущено...

Как же происходит балансировка такого дерева, если в кешах только верхняя часть дерева?

В онлайне. Оно растет от листьев к корню. Грубо говоря - малый индекс - это 1 блок.

Это я понимаю, оффкос, примерно.

Простой вопрос. У нас террабайт строк, мы ещё создали индекс на террабайт. При этом 99% этого индекса лежит на диске. Добавление одной строки не приведёт ли к полной перестройке дерева? Т.е. к полному поднятию терребайтного индекса с диска и обратной записи на диск этого террабайта.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972733
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravДобавление одной строки не приведёт ли к полной перестройке дерева?

Нет, максимум три блока при сплите.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972735
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
mayton
пропущено...

В онлайне. Оно растет от листьев к корню. Грубо говоря - малый индекс - это 1 блок.

Это я понимаю, оффкос, примерно.

Простой вопрос. У нас террабайт строк, мы ещё создали индекс на террабайт. При этом 99% этого индекса лежит на диске. Добавление одной строки не приведёт ли к полной перестройке дерева? Т.е. к полному поднятию терребайтного индекса с диска и обратной записи на диск этого террабайта.

Нет конешно. Еслиб такой ужас был тогда и загрузка данных в таблицу лагала-бы.

В наихудшем случае может быть split. Но это вместо 4 IOPS, будет чуть больше.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972755
ну вы писАть блин...
PetroNotC Sharp
Алексей Роза
есть какие-то ограничения в практическом применении векторов?
если вектор вырастет до триллиона структур и будет постоянно висеть в памяти, есть ли какие-то риски?

То есть памяти хватает и ты в курсе как это решать?
Тогда никаких рисков. Работай.

Памяти хватает. Не хватает опыта. Что будет через 5 лет нахождения информации в памяти? Каков шанс потерять рандомный байт?
mayton
Но для начала. Давай просто сделаем такой confirm, что алгоритмы поиска на диске
в принципе ничем особо не отличаются по complexity от алгоритмов по оперативке.
Формула - таже самая. С логарифмом в основе. Тоже самое B+Tree дерево - это
сжатое в блоки бинарное дерево поиска.

Да это основы. Ясно, что и там, и там стандартная хексовая таблица. Было бы странно, если бы память и HDD хранили инфу по-разному, ведь и то, и то - память.
mayton
Да милисекунды это долго. Дольше чем просто память. Но обычно все DBMS прогревают в кешах корневые вершины индексов и если с индексом долго работать то в учет времени можно
брать уже листовые узлы.

не надо DBMS.
mayton
сумеем придумать access path такой короткой длины чтобы оперативная память и диск работали в тандеме и находили
данные так быстро как только возможно

не надо.
mayton
Есть также альтернативные разработки (dbms Tarantool) которые улучшают даже B+Tree индекс.

аааААааааАааАААаААаАааа
mayton
Хорошо. Тогда я умолкаю. Подожду Алексея с его тера-массивом структур.

ну строго говоря, самое близкое к моей задаче - это индекс.
но это не задача... у меня нет вопросов про то, как индексировать
есть только вопрос заданный выше... и ещё один теперь можно обсудить - про полнотекстовый поиск, раз уж его затронули.
Я так понимаю, чтобы в "Войне и мир" найти слово "кровь" надо всю войну разложить в столбики по одинаковым словам?
Вообще у гугла есть описание, как устроен поиск... там 3.14здецки сложно.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972757
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза

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

Нет. Не надо на столбики раскладывать.

Вообще Война и Мир это текстовый файл длиной где-то 5 мегабайт и в нем поиск любого слова идет
достаточно быстро для современного процессора и памяти. Ты в текстовом редакторе там найдешь
все что надо.

Тоесть это - неудачный пример.

Может у тебя есть другой источник данных который больше этой книги раз в ..... на 6 порядков?

Ведь мы говорили о тера* суффиксе. А это 12 нулей. Мегабайт - порядка 6 нулей.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972759
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМожет у тебя есть другой источник данных который больше этой книги раз в ..... на 6 порядков?

Ненуачо, тут не может быть топикстартера, работающего с БАК-ом?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972762
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БАК - это та штука которая "разгоняет и сталкивает" частицы?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972764
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

maytonМожет у тебя есть другой источник данных который больше этой книги раз в ..... на 6 порядков?

Ненуачо, тут не может быть топикстартера, работающего с БАК-ом?..

БАК не порождает строк. :) Поскольку автор явно не разработчик поисковика гугла или яндекса... Вот какая у него может быть задача?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972768
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravБАК не порождает строк. :)

Так и у аффтара не строки, а структуры.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972771
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

petravБАК не порождает строк. :)

Так и у аффтара не строки, а структуры.

А в структурах инты и строки. Он так говорил, если не ошибаюсь.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972772
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я даже боюсь себе представить что порождает БАК. Характеристики частиц?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972773
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,

Аффтар приколист.
На третьей странице свернул к бэкапу чтобы байт не потерять. И к полнотекстовому поиску так как мы! его затронули)).
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972774
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Dimitry Sibiryakov

пропущено...

Так и у аффтара не строки, а структуры.

А в структурах инты и строки. Он так говорил, если не ошибаюсь.

Структуры физические. Из физики твердого тела.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972776
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Я даже боюсь себе представить что порождает БАК. Характеристики частиц?

Огромные таблицы из дробных чисел (не знаю в каком формате: double, float, fixed, может ещё что-то огромной размерности) + флаги режимов работы. Больше ничего. :)
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972780
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Помните числовую оценку?

1Тб диск будет занят полностью нашим вектором если структура == 1байт.

Если вы положите туда такую структуру

Код: plaintext
1.
2.
3.
4.
struct AlexeisFuckenStructure {
   int value; // 4 bytes
   double fvalue;// 8 bytes
}



То нам понадобиться 4 + 8 = 12 байтная структура. Тоесть 12 терабайтный диск.

Иднекс по БД обычно несет в себе оверхед порядка 75% полезного места. Это только для ключей.
И для ROW_ID + данных надо посчитать. Но мне щас как-то лень. Проще прикинуть на глаз.
Наверное более чем в 2 раза.

Вобщем я вангую грубо 24 терабайтное хранилище для Алексеевских экспериментов в случае Index-Organized table.

Для раздельного индексирования value и fvalue нам уже понадобиться 3 объекта. Таблица и два индекса.

Давайте просто накинем 3 раза. 72 терабайт.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972787
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Помните числовую оценку?

1Тб диск будет занят полностью нашим вектором если структура == 1байт.

...

Давайте просто накинем 3 раза. 72 терабайт.

Автор уже на первой странице говорит про инты и строки. Так что не 72
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972789
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто любой эксперимент должен иметь какие-то числовые предварительные оценки.

Автор ищет алгоритмы и структуры данных. Но должен быть стенд и макет.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972791
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Итого?

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

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


TC конечно же провокатор, но надеюсь добрый

ну вы блин даёте (из кинухи)
(круглый)
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972792
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Круглый нас это не беспокоит.

Sql.ru - это дискуссионный клуб. Мы тут ... как видишь и без автора подискутировали.

P.S. Подсудимого не было но суд состоялся.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972794
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

понял, заткнулся :)
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972795
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да ладно. Пиши.

Как там ты Толстого под Досом индексировал...
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972802
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

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

чисто по жизни - одна из голубых мечт-задач = когда нить сделать аля AS400 но на базе железа микроконтроллеровского + фпга. там так-же есть где собаку порыть :) - можно не хилый профит по скорости получить, но сначала там на мелкий ниокр тянет..
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972803
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0,
Да. Добрый провокатор) бывший DBA.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972806
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

задача решается на раз-два распределёнными вычислениями. но не в один вектор конечно же загонять надобно всё. тогда скорость зависит от диспетчеризации плюс поиска в одной банке данных. с нынешними технологиями микросеврисов плюс контейнеризации решается со свистом. если конечно же не пытаться городить монолиты-"микросеврисы"

(круглый)
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972832
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kolobok0
mayton,

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

Кажется в Беркли поддерживал несколько двигателей хранения. Там и дисковая хеш-табличка была и дерево.
И вообще я думаю этот беркли создавали в эпоху дискет. Тоесть... не всё могли учесть.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972839
mayton
Вообще Война и Мир это текстовый файл длиной где-то 5 мегабайт и в нем поиск любого слова идет достаточно быстро для современного процессора и памяти. Ты в текстовом редакторе там найдешь все что надо.

текстовый редактор в 2мб-файле ищет слово из конца неск.секунд.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972841
PetroNotC Sharp
petrav,

Аффтар приколист.
На третьей странице свернул к бэкапу чтобы байт не потерять. И к полнотекстовому поиску так как мы! его затронули)).

к какому ещё бекапу я свернул, где?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972845
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
mayton
Вообще Война и Мир это текстовый файл длиной где-то 5 мегабайт и в нем поиск любого слова идет достаточно быстро для современного процессора и памяти. Ты в текстовом редакторе там найдешь все что надо.

текстовый редактор в 2мб-файле ищет слово из конца неск.секунд.

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

Вот тебе первое коробочное решение проблемы. И если ты искал несколько (сколько? Допустим 5 секунд)
то после такого distibuted-search-improovement, я вангую 5 сек / 20 = 1/4 = 0.25 секунды.

Хорошее время. Согласно Амдалу в конце этого процесса будет join результатов поиска. Но если
этих результатов мало - то и процесс джойна нам ничего не будет стоить. Просто подожём финала 20 процессов.
Тут важно чтобы они работали равномерно. И не было среди них 1 доходяги который еще ползет.

Как тебе такое решение?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972854
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алексей Роза
. Конечно про x64 речь.

А Microsoft в Win64 прямо так разрешает 2^64 байт адресо?
Dima T
Для x64 нет. В x86 примерно 1.7 Гб потолок.


А для "64" потолок - 2^64? https://docs.microsoft.com/en-us/windows/win32/memory/memory-limits-for-windows-releases
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972858
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
mayton
Вообще Война и Мир это текстовый файл длиной где-то 5 мегабайт и в нем поиск любого слова идет достаточно быстро для современного процессора и памяти. Ты в текстовом редакторе там найдешь все что надо.

текстовый редактор в 2мб-файле ищет слово из конца неск.секунд.

Ну что за бред очередной

Скорость чтения современного паршивенького HDD около 100 мб/сек, т.е. 2 мб читается 0.02 сек, ровно 20 мс надо чтобы найти слово в конце 2 мб. но если HDD спит, читай выключен, то да, 1.98 сек уйдет на его раскрутку перед чтением.

Чтение из закэшированного файла порядка 4-5 Гб/сек, т.е. это скорость работы кэша ОС. Тут на поиск уйдет 0,0005 сек.

Надо быстро с диска читать - SSD NMVe M.2 скорость чтения до 4 Гб/сек может быть.

PS У меня на селеронах 15-летней давности strstr() в 50+ мб ищет за миллисекунды.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972859
mayton
Как тебе такое решение?

0.25 секунды? решение?
Как-то ты далековат от темы хайлоада.
А зачем ты мне про какие-то поиски в текстовых редакторах рассказываешь, когда я фактически тоже самое предлагал - расфасовать все слова?
Это вообще-то побыстрее работает, чем забить 20 ядер поиском по массиву слов...
Ради 0.25 сек
Не, гугловские технологии таки лучше.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972861
Dima T
PS У меня на селеронах 15-летней давности strstr() в 50+ мб ищет за миллисекунды.

какой strstr блин
mayton
Ты в текстовом редакторе там найдешь все что надо.


Dima T
Чтение из закэшированного файла порядка 4-5 Гб/сек, т.е. это скорость работы кэша ОС. Тут на поиск уйдет 0,0005 сек.

ну ок, пускай внутри C++ будет 0.0005, но таких массивов текстов будет несколько. Представь, что по библиотеке надо найти все подходящие книги.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972863
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза

Это вообще-то побыстрее работает, чем забить 20 ядер поиском по массиву слов...
Ради 0.25 сек
Не, гугловские технологии таки лучше.

Я тебе могу рассказать как гугловские работают. Там тоже map-reduce. По полнотекстовому индексу всего интернета.
Но с региональными особенностями.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972865
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
Dima T
PS У меня на селеронах 15-летней давности strstr() в 50+ мб ищет за миллисекунды.

какой strstr блин
mayton
Ты в текстовом редакторе там найдешь все что надо.

Видишь как хорошо. Найтоящий брейншторм. Мы уже твой триллион объектов рассмотрели
в 4 разных способа.

Кстати за тобой должок. Ты так и не рассказал что внутри объектов. А от этого ... как-то обидно.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972867
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
Dima T
PS У меня на селеронах 15-летней давности strstr() в 50+ мб ищет за миллисекунды.

какой strstr блин

тот что по ссылке, а ищет в файле замапленном в память. 10+ лет назад написал, думал надо ускорять, а оно и так летает.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972869
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей РозаКак-то ты далековат от темы хайлоада.

Того хайлоада, который "всё тормозит и мы не можем понять почему"?
Или того, который "зачем оптимизировать наш код, когда можно ужесточить требования к чужому?"
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972870
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
PetroNotC Sharp
petrav,

Аффтар приколист.
На третьей странице свернул к бэкапу чтобы байт не потерять. И к полнотекстовому поиску так как мы! его затронули)).

к какому ещё бекапу я свернул, где?

Ты держа коллекцию или вектор в оперативке боялся потерять байт?
Ну дак расшифруй как это потерять.
Уборщица шваброй резет нажала?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972871
mayton
Мы уже твой триллион объектов рассмотрели в 4 разных способа.

чо вы рассмотрели то? У меня нет проблем с поиском по триллионному вектору
а в объектах int + short ИЛИ int + string
я это говорил в начале.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972872
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если все-таки СУБД потребуется - то я бы советовал глянуть в сторону SQLite, она изначально рождена как СУБД работающая на стороне клиента. У нее есть прямой интерфейс для С/С++, это немаловажно, т.к. классические универсальные прокладки аля ADO, ODBC и т.п. жрут достаточно много ресурсов.
Изначально она медленная, т.к. настроена на максимум надежности, но при некотором тюнинге может летать.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972873
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу исходных данных. Есть такой ресурс. Или был. Называется Флибуста.
Там - библиотека художественной литературы в формате fb2 (это XML внутри).

Ее - можно качнуть в торрентах в виде zip архивов. Там есть полные и есть инкременты.

Так вот. Когда мы еще с Базистом спорили о trie, hash-array и прочих структурах
я предлагал Флибусту использовать в качестве исходных данных для симуляции
правильной нагрузки.

Базист тогда предпочитал парсить ПТ чтобы индексировать его содержимое. Кстати я думаю
он сейчас чуть ли не единственный у кого есть исторический срез ПТ. Где-то по 2015 год я думаю.

Вобщем если кто-то хочет реально показать свою мощь и круть - попробуйте поискать
слова в Флибусте. Я думаю сейчас там гигабайт на 100 потянет. Это примерно 10%
от той постановки которую озвучил Алексей.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972875
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
mayton
Мы уже твой триллион объектов рассмотрели в 4 разных способа.

чо вы рассмотрели то? У меня нет проблем с поиском по триллионному вектору
а в объектах int + short ИЛИ int + string
я это говорил в начале.

Еще раз сформулируй проблему. Со знаками препинания.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972876
Dimitry Sibiryakov
Алексей РозаКак-то ты далековат от темы хайлоада.

Того хайлоада, который "всё тормозит и мы не можем понять почему"?
Или того, который "зачем оптимизировать наш код, когда можно ужесточить требования к чужому?"
полнотекстовый поиск по библиотеке книг у нас на повестке - что непонятного?
но вообще это можно и не обсуждать, сам писать не буду, проще либу взять.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972877
Dima T
Если все-таки СУБД потребуется - то я бы советовал глянуть в сторону SQLite, она изначально рождена как СУБД работающая на стороне клиента. У нее есть прямой интерфейс для С/С++, это немаловажно, т.к. классические универсальные прокладки аля ADO, ODBC и т.п. жрут достаточно много ресурсов.
Изначально она медленная, т.к. настроена на максимум надежности, но при некотором тюнинге может летать.

я уже обглядел ВСЕ субд.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972878
mayton
Вобщем если кто-то хочет реально показать свою мощь и круть - попробуйте поискать
слова в Флибусте. Я думаю сейчас там гигабайт на 100 потянет. Это примерно 10% от той постановки которую озвучил Алексей.

да там какой-нибудь эластик всё делает
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972880
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
mayton
Мы уже твой триллион объектов рассмотрели в 4 разных способа.

чо вы рассмотрели то? У меня нет проблем с поиском по триллионному вектору
а в объектах int + short ИЛИ int + string
я это говорил в начале.

А какая средняя длина string?

Или даже не длина а ... например 99% строк не превышают 3 символа. Ну чтото типа такого я хотел услышать.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972881
да также - 4 символа
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972882
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Розаполнотекстовый поиск по библиотеке книг у нас на повестке - что непонятного?

Полнотекстовый поиск. В векторе. На триллион слов. Понятно. Удачи!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972883
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
mayton
Вобщем если кто-то хочет реально показать свою мощь и круть - попробуйте поискать
слова в Флибусте. Я думаю сейчас там гигабайт на 100 потянет. Это примерно 10% от той постановки которую озвучил Алексей.

да там какой-нибудь эластик всё делает

Под капотом Эластика стоит Lucene. Это текстовый двигатель написанный на Java
и использующий концептуально map-reduce как главный регулятор перформанса.
Тоесть как ты хочешь - так и ускоряешь его.

Единственный нюанс. Эластик плохо работает с арифметикой. Тоесть он на заточен
например под WHERE month between 'JAN' and 'JUL'. Он в принципе не делает арифметику.
Он - по точному совпадению. Хотя может его уже доделали.

Я не следил где-то с 2018 года.

Кроме того Эластик - не для транзакций а для исторических данных. Типа логи. Тоесть если
файл дописываетя в хвостик - то эластик будет хорош.

А если у вас есть типизированная табличка типа dbm/dbf/stuctures C++ то здесь эластик зафейлит.
Он не сможет отслеживать изменение в центре таблицы. Ему надо как-то отдельно сообщать и подписывать
его на изменения. И то они будут eventual consistent.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972885
угу, я тоже за postgres FTS.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972886
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
да также - 4 символа


Ну это типа так?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
struct struct1 {
 int i1;
 short s1;
}

struct struct2 {
 int i1 {
 char c[4]; // типа строка но ограниченная всегда до 4 символов. Или можно 5 поставить. Чтоб ASCIIZ.
}
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972887
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
Dima T
Если все-таки СУБД потребуется - то я бы советовал глянуть в сторону SQLite, она изначально рождена как СУБД работающая на стороне клиента. У нее есть прямой интерфейс для С/С++, это немаловажно, т.к. классические универсальные прокладки аля ADO, ODBC и т.п. жрут достаточно много ресурсов.
Изначально она медленная, т.к. настроена на максимум надежности, но при некотором тюнинге может летать.

я уже обглядел ВСЕ субд.

Кстати Дима хороший вариант предлагал. СКЛайт умеет полнотекстовый индекс тоже строить.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972888
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
У меня нет проблем с поиском по триллионному вектору

Это троллинг какой-то. Предлагаю топик закрыть.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972889
Dimitry Sibiryakov
Алексей Розаполнотекстовый поиск по библиотеке книг у нас на повестке - что непонятного?

Полнотекстовый поиск. В векторе. На триллион слов. Понятно. Удачи!
да хосспаде, забудьте уже про вектор. Нету с ним никаких проблем!
и про память уже всё ясно, что риски такие же, как и с диском (а то и меньше).
А вот про поиск в библиотеке тема всплыла, она поинтересней будет...
Но тут лидером был и остаётся гугл, так что лучше него всё равно ничего не родить.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972890
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
Алексей Роза
У меня нет проблем с поиском по триллионному вектору

Это троллинг какой-то. Предлагаю топик закрыть.

Да вообще не тема, а песец.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972892
mayton
Ну это типа так?

Код: plaintext
1.
2.
3.
4.
struct s2 {
    int i;
    string str; // тут до 15 символов new не будет включаться
};

...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972893
Dima T
Алексей Роза
У меня нет проблем с поиском по триллионному вектору

Это троллинг какой-то. Предлагаю топик закрыть.

предлагаю не искать чёрную кошку там, где её нет
тут все зачем-то бросились искать по вектору, когда такой задачи я даже не ставил.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972894
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
Dimitry Sibiryakov
пропущено...

Полнотекстовый поиск. В векторе. На триллион слов. Понятно. Удачи!

да хосспаде, забудьте уже про вектор. Нету с ним никаких проблем!
и про память уже всё ясно, что риски такие же, как и с диском (а то и меньше).
А вот про поиск в библиотеке тема всплыла, она поинтересней будет...
Но тут лидером был и остаётся гугл, так что лучше него всё равно ничего не родить.

Гугл это не 1-instance приложение. Это грид.

А ты что думал?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972900
mayton
Я тебе могу рассказать как гугловские работают. Там тоже map-reduce. По полнотекстовому индексу всего интернета.
Но с региональными особенностями.

ну... капельку сложнее . Систему синонимов в map-reduce не впихнёшь.
mayton
Гугл это не 1-instance приложение. Это грид.

ну у него и объёмы другие. Это детали.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972901
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза, а ты всё таки толстый тролище.

Вроде как тема была - не знаю как быть с массивом. Как искать.
А потом - и проблем нет. Мог бы исходник показать да и все. Чего не показал?

Без копирайтов конешно...
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972905
mayton
Вроде как тема была - не знаю как быть с массивом. Как искать.

да не было такой темы "как искать по массиву". По индексу там искать, чё тут думать.
Это вы понабежали со своими RDBMS и давай втюхивать перформанс, у кого быстрее.
Я может и поддался на секунду веянию искать внутри объектов, но вообще-то это не нужно. Нет такой задачи.
Стандартные БД - вот что тут вообще не в тему. нах.. мы их обсуждаем 6 страниц - непонятно.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972912
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
Стандартные БД - вот что тут вообще не в тему. нах.. мы их обсуждаем 6 страниц - непонятно.

Да? А кто это написал
Алексей Роза
вопрос в сохранности, констистенции и скорости обработки...

Какая сохранность в памяти? Одна кривая функция - вызвал и память загажена. Консистенция и вектор вообще понятия из разных областей.

Ты эти умные слова упомянул (подозреваю что сам не понял зачем) и тебе ответили что надо использовать СУБД, т.к. эти слова реализованы в СУБД.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972922
Dima T
Какая сохранность в памяти?

вот эта. Меня вот это интересовало:
Алексей Роза
Что будет через 5 лет нахождения информации в памяти? Каков шанс потерять рандомный байт?

Вот, например, вы знаете, что некоторые SSD если оставить без питания, то через пару недель вы оттуда ничего не считаете?
Для меня это было открытием.
Dima T
Одна кривая функция - вызвал и память загажена.

ну и с файлом так же.
Dima T
и тебе ответили что надо использовать СУБД, т.к. эти слова реализованы в СУБД.

Да нету в СУБД скорости! Я именно это имел ввиду, что вектор взят из-за скорости. А СУБД - это тормозная абстракция для ленивых.

В общем ребят, спасибо всем, кто пытался помочь. Само стремление очень ценю и благодарю.
Пардон, если какое-то недопонимание возникло по моей вине.
В векторе я ищу по индексу, с СУБД работаю более 10 лет и ничего нового по ним вы мне не расскажете.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972925
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
Dima T
Какая сохранность в памяти?

вот эта. Меня вот это интересовало:
Алексей Роза
Что будет через 5 лет нахождения информации в памяти? Каков шанс потерять рандомный байт?

Вот, например, вы знаете, что некоторые SSD если оставить без питания, то через пару недель вы оттуда ничего не считаете?
Для меня это было открытием.

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

Только я не понимаю зачем в кучу мешать: быстрый доступ к массиву и долговременное хранение данных. Это абсолютно разные задачи и решаются они разными средствами.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972926
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм.. меня не покидает устойчивое Дежа-Вю. Где-то я уже Льва Толстого видел. Лет 5 назад.
И кажется это был мой топик. С деревьями. Или с бинарными деревьями.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972927
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот оно. Скруль не нашёл зато гугл по домену sql.ru находит

https://www.sql.ru/forum/1268236/vtornichnaya-verevka-dlya-lva-nikolaicha
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972935
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

petravДобавление одной строки не приведёт ли к полной перестройке дерева?

Нет, максимум три блока при сплите.

Странно, давно это изучал. Но мне кажется балансировка дерева (в самом худшем случае) может привести к кардинальным изменениям по всему дереву.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972957
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petravбалансировка дерева (в самом худшем случае) может привести к кардинальным изменениям по
всему дереву.

ЕМНИП это всего лишь перемещение корня, так что тоже три блока. Или даже два если новый
корень не записывать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972958
деревья вообще разные бывают...
petrav
Но мне кажется балансировка дерева (в самом худшем случае) может привести к кардинальным изменениям по всему дереву.

и такое там тоже есть (NS)
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Деревья в базах данных можно хранить четырьмя основными методами: Adjacency List, Path Enumeration, Nested Set & Closure Table (НФ1-2-3).
Если кратко, то:
AL — когда у нас родитель хранится в колонке типа parent_id: '1'
PE — полный путь до элемента хранится в колонке типа path: '1.2.5' (? не годится, когда ПОДката может быть в нескольких НАДкатах ?). Хорош для "хлебных крошек" и сортировке по иерархии.
NS — пара колонок left и right, хранящие диапазон всех вложенных элементов, например, корень дерева из 9 элементов будет иметь левое значение '1', а правое — '18'
    -- это дичь, когда при insert/delete нужно пересчитать ВСЁ дерево и ВСЕМ узлам по новой раздать parent_id/child_id.
CT - Closure Table (обычная нормализация, причём с FK. 48 слайд в "антипаттернах")
    -- она типа должна требовать O(N**2) строк в НФ, но на практике гораздо меньше.
    -- в НФ надо добавить колонку `depth` и ускорить поиск родителя. А можно попробовать подключить массивы с GIN (PostgreSQL) и пихать родичей туда. Чтобы не строчки плодить, а массив.

NS походу НЕ ГОДИТСЯ, когда ката может находиться в нескольких НАДкатах, потому что ID дублируется, а у NS кол-во right_key = кол-во_ID *2
они также не годятся и для комментариев/тикетов, потому что там в любых точках происходит коммент и всё остальное дерево надо пересчитывать. Если клиентов много, это будет 3.14здец.[/quot]

-- вот тут PDF про антипаттерны, а с 34 про деревья (SQL Antipattern Strike Back)
http://www.r-5.org/files/books/computers/languages/sql/style/Bill_Karwin-SQL_Antipatterns-EN.pdf
https://www.slideshare.net/billkarwin/sql-antipatterns-strike-back/49-Antipattern_Categories_Database_Design_Database -- тут тоже самое, но РКН блочит слайдшару
(оттуда):
Design                  № of Tables     Query child     Query subtree   Modify tree     Referential integrity
Adjacency List          1               Easy            Hard            Easy            +
Path Enumeration        1               Easy            Easy            Hard            -
Nested Sets             1               Hard            Easy            Hard            -
Closure Table           2               Easy            Easy            Easy            +
-- тут ещё описание скорости: https://demiurg.livejournal.com/53125.html?mode=reply
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972959
Dima T
Рандомный байт на диске потерять невозможно

да не на диске. В памяти!
Dima T
Это абсолютно разные задачи и решаются они разными средствами.

ну так как решается долговременное хранение данных в памяти?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972960
mayton
Ну вот оно. Скруль не нашёл зато гугл по домену sql.ru находит
https://www.sql.ru/forum/1268236/vtornichnaya-verevka-dlya-lva-nikolaicha

есть такая мысль, подойдёт не всем, но, например, магазинам подойдёт...
в магазинах ограниченное кол-во слов, которые ищут. Ну неск. тысяч (в зависимости от магазина)
их можно просто забить в индекс и привязать к ним нужные страницы (т.е. entity = "article", id = 123. Или ent = "goods", id = 123)
по идее, это будет быстрее, чем что-либо...
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972961
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
деревья вообще разные бывают...
petrav
Но мне кажется балансировка дерева (в самом худшем случае) может привести к кардинальным изменениям по всему дереву.

и такое там тоже есть (NS)

Конечно, деревья разные бывают. Не могу сейчас спорить. Но что-то мне подсказывает, что против природы не попрёшь. Как ни оптимизируй. Ну, возможно, я ошибаюсь.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972981
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да. Топик не интересный. Троллинг.
Придумывание на ходу задачи "с потолка".
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39972985
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
Dima T
Это абсолютно разные задачи и решаются они разными средствами.

ну так как решается долговременное хранение данных в памяти?

Почитай про ECC-память
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39973021
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov
...Или даже два если новый корень не записывать.


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

как то так
(круглый)
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39973025
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза, вот то что ты что ты написал про Adjacency List, Path Enumeration, e.t.c.
это всё относится к разным моделям представленяи деревьев в реляционных таблицах.

Но это не имеет аж никакого отношения к блочным дисковым структурам данных на которых
строится индекс.

Я не знаю зачем ты это написал. Это явно не в тему твоей задачи.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39973087
mayton, у тебя избранная слепота чтоли?
ты частенько пишешь невпопад.
там вообще-то цитата есть
и предыдущие 2 сообщения тоже.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39973092
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
mayton, у тебя избранная слепота чтоли?
ты частенько пишешь невпопад.
там вообще-то цитата есть
и предыдущие 2 сообщения тоже.

Извини мне кажется что у тебя большой большой провал в знаниях в области БД.

И обсуждение ребалансировки дерева идет все еще в контексте индекса БД. Но ты очевидно
подумал что мы обсуждаем абстрактные деревья? Зачем? Где появился информационный повод
обсуждать абстрактные деревья?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39973105
повод появился при твоём непосредственном участии, mayton
вот тут 22156478
а потом тут они его продолжают 22156828
я бы и рад конечно не обсуждать эти убогие РДБМС, но вы тут на 6 страницах только их и обсуждаете, мне чё тоже слепым стать теперь
mayton
Извини мне кажется что у тебя большой большой провал в знаниях в области БД.
а мне кажется, у тебя язык впереди головы.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39973107
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давай так. Если у тебя как у владельца топика больше нет вопросов я закрою.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39973108
а давай я тебя позову, если надо будет тему закрыть.
там полно незакрытых тем, с чего вдруг именно эту надо закрывать
мне она не мешает и есть не просит.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39973110
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо пусть висит.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39973111
спасибо тебе
ты хороший модер, но нельзя быть везде.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39973130
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
Что за манера переходить на личности?
Тебе большинство мемберов сказали что им непонятна твоя проблема.
Хотя ты и добрый внутри)))
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39973132
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза
спасибо тебе
ты хороший модер, но нельзя быть везде.
ТС ты хороший мужик, но научись формулировать проблему инженерным языком.
И код приведи.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990183
а в каких случаях вектор едет в кэш целиком?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990204
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для моей конфигурации железа (3М L3) никогда. Триллион объектов туда не влезет.
Наверное к моменту финала популяции массива в L3 будут лежать хвостовые cache-lines
этого массива вперемешку со служебной информацией которая была затребована алгоритмом
std::vector.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990207
если надо проитерировать ячейки с 1,000 до 1,000,000, он возьмёт только эти ячейки в кэш?
а если не влезают в кэш, то будет по частям работать?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990209
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколько я понял читая литературу - он берет все подряд. Только данные и код разделяются на L1 / I1 instruction
два разных кеша на первом уровне.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990210
в L1 вроде нет инструкций, только данные
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990218
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кэш первого уровня x86-процессоров всегда содержал раздельные области для кэша и данных.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990221
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
в L1 вроде нет инструкций, только данные

Давай превнесем в топик немного пруфа. И цифр. Что мы за инженеры если не оперируем цифрами?
Я там ошибся. Написал 3М. Не 3 а 16.

Далее. Деление на L1d, L1i (инструкции и данные) тоже есть.
Эти цифры - суммарные. Каждый кеш L1 идет по 1 штуке на процессор (2 потока).
Поэтому реально алгоритму достанется чуть меньше. Надо будет поделить на 6.

Отчот lscpu пишет тоже самое но как-то с другими множителями.
Код: 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.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
$ lscpu
Architecture:                    x86_64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
Address sizes:                   43 bits physical, 48 bits virtual
CPU(s):                          12
On-line CPU(s) list:             0-11
Thread(s) per core:              2
Core(s) per socket:              6
Socket(s):                       1
NUMA node(s):                    1
Vendor ID:                       AuthenticAMD
CPU family:                      23
Model:                           1
Model name:                      AMD Ryzen 5 1600 Six-Core Processor
Stepping:                        1
Frequency boost:                 enabled
CPU MHz:                         1370.928
CPU max MHz:                     3200.0000
CPU min MHz:                     1550.0000
BogoMIPS:                        6387.00
Virtualization:                  AMD-V
L1d cache:                       192 KiB
L1i cache:                       384 KiB
L2 cache:                        3 MiB
L3 cache:                        16 MiB
NUMA node0 CPU(s):               0-11
Vulnerability Itlb multihit:     Not affected
Vulnerability L1tf:              Not affected
Vulnerability Mds:               Not affected
Vulnerability Meltdown:          Not affected
Vulnerability Spec store bypass: Mitigation; Speculative Store Bypass disabled via prctl and seccomp
Vulnerability Spectre v1:        Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:        Mitigation; Full AMD retpoline, IBPB conditional, STIBP disabled, RSB filling
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Not affected
Flags:                           fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good no
                                 pl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_l
                                 egacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb hw_pstate sme ssbd sev ibpb vmmcall fsgsbase bm
                                 i1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 xsaves clzero irperf xsaveerptr arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbya
                                 sid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif overflow_recov succor smca
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990236
интересный пруф
а где L2/3i и L2/3d
ладно, будем считать, что везде есть, не суть.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990285
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
интересный пруф
а где L2/3i и L2/3d
ладно, будем считать, что везде есть, не суть.

Что означает твой смайлик?

Знаешь анекдот как женщина к урологу пришла и говорит - дескыть у моего мужа
одно яичко ниже а другое выше.....
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990305
не знаю
мало того, его и гугл не знает
смайлик это смайлик. На нём нарисовано, чего он означает
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990306
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давай без смайликов спокойно почитаем интернет. И узнаем как инструкции попадают в кеш инструкций.
Но мне кажется что тебя в топике не это интересует. Так зачем мы будем тратить много времени на
ненужный нам кеш?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990331
инструкции - нет
а вот как вектор на триллион будет запихиваться в кэш - да
и вообще, это не мне, а вам про кэш неохота
если RDBMS в топике нет, то и поговорить не о чём на 6 страниц
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990359
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020, пока ты благополучно сам себя банил () и занимался прочим члено-вредительсвом,
я стартовал дискуссию здесь https://www.sql.ru/forum/1327486/predvaritelnye-slushanya-po-memory-cache-part-2

Но у меня не готовы мои учебные тест-кейсы перформанса на C-Lang. Будучи перфекционистом
я стал искать фреймворки перформанса и пока на этом осталовился.

И я хотел дискуссии кешей перенести туда.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990386
"Я принёс вам знания, а вы меня распяли" (с)
это норма (с)
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990387
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хвастайся хвастайся.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990438
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020 мигрени не мучают? Тесный нимб это вредно для здоровья.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990571
а тебе твой флудомёт не мешает? Он же занимает всю квартиру и уже с балкона свисает, заливая соседей.
Модератор: Редактировано
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990707
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
Тесный нимб это вредно для здоровья.
Не, судяпо последущему посту, он используется навроде обруча "хула-хуп" в тесноте автобуса в часы пик. Чтобы обеспечить себе личное пространство пошире.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990887
Модератор
Редактировано

как же здорово, что у нас есть модератор, который умеет удалять картинки, но не оффтоп.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990891
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что у нас по теме? Есть что обсудить? Я имею в виду кеши и векторы?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990895
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всю тему не читал, не осилил

Алексей фотку своего персонального ноутбука с терробайтом оперативной памяти уже публиковал или еще нет? Где он такой покупал?

Хочу себе такой же....
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39990997
Leonid Kudryavtsev, зачем ноутбука?
автор https://www.dell.com/ru/business/p/poweredge-r940/pd
// Слоты для модулей памяти
48 слотов для модулей DDR4 DIMM (12 слотов для модулей NVDIMM или 24 слота для модулей DCPMM)
Поддерживаются только регистровые модули DDR4 DIMM с ECC

// Максимальный объем ОЗУ
RDIMM: 3 Тбайт
LRDIMM: 6 Тбайт
NVDIMM: 384 Гбайт
DCPMM: 12,28 Тбайт (15,36 Тбайт с модулями LRDIMM)
фотка 128гб памяти
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991143
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нас спасет виртуальная память и панорамирование при просмотре гига- пиксельных фоток.

Собственно, ещё в 2010 такие фотки начали публиковать на фоторесурсах.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991171
виртуальная память чем лучше ссд?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991172
нас спасёт новый тип памяти, который пусть будет медленнее на 25%, но зато её будет в 10 раз больше
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991180
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
нас спасёт новый тип памяти, который пусть будет медленнее на 25%, но зато её будет в 10 раз больше

Позволь спросить а какую задачу ты сейчас решаешь?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991183
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Нас спасет виртуальная память и панорамирование при просмотре гига- пиксельных фоток.

Собственно, ещё в 2010 такие фотки начали публиковать на фоторесурсах.

Собственно я еще в 1999- 2004 году такие фотки успешно показывал на любом компьютере с оперативной памятью от 16 МЕГА байт, без всякой виртуальной памяти.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991186
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p.s.
ну и в очередной раз выдать рекомендаюцию - продайте свое ноу-хау гугл-мапу !

а то они ( https://www.google.com/maps) бедолаги, компьютерный снимок земли (явно больше чем гига пиксель) через интернет показывают, а ни о каком новом типе памяти даже слыхом не слыхивали ((( вот бедолаги ((( столько лет мучаются.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991210
Leonid Kudryavtsev
mayton
Нас спасет виртуальная память и панорамирование при просмотре гига- пиксельных фоток.

Собственно, ещё в 2010 такие фотки начали публиковать на фоторесурсах.

Собственно я еще в 1999- 2004 году такие фотки успешно показывал на любом компьютере с оперативной памятью от 16 МЕГА байт, без всякой виртуальной памяти.

автор2. Организация хранения изображений в системе КАМИС
a. пирамидальный JPEG (форматы JTIP и SPIFF)
b. хранение изображений в виде файлов или в БД Oracle
думаю не только ты в 2004 умел фотки в БД хранить.

гугл может один кусок мапы с одного сервера показывать, другой с другого.
mayton
Алексей Роза 2020
нас спасёт новый тип памяти, который пусть будет медленнее на 25%, но зато её будет в 10 раз больше

Позволь спросить а какую задачу ты сейчас решаешь?

всё ещё запихиваю в вектор триллион объектов...
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991262
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тяпничным топиком можем обсудить у кого сколько может выделить malloc.

Интересно сравнить Windows10/Linux.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991389
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991425
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020, если бы гугл был собеседником то тогда мы-бы не сидели в sql.ru.

Как ты считаешь?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991433
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
Leonid Kudryavtsev

a. пирамидальный JPEG (форматы JTIP и SPIFF)

JTIP и в 2004, и в 2020 умели только французы, т.к. пилили бюджет евросоюза по программе Минерва, и я )))

Но в 2020 он уже не актуален, т.к. аналогичная идея добавлена в стандарт JPEG 2000 + уже полно других Tile Server'ов (в основном для картографии).
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991436
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Тяпничным топиком можем обсудить у кого сколько может выделить malloc.

Интересно сравнить Windows10/Linux.


На Windows десяток гигабайт одним куском я выделял (всего физической рам на компе было 32 гб, вроде выделение 25 гб уже обламывалось).
Если я правильно помню, давно это было
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991448
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
mayton
Тяпничным топиком можем обсудить у кого сколько может выделить malloc.

Интересно сравнить Windows10/Linux.


На Windows десяток гигабайт одним куском я выделял (всего физической рам на компе было 32 гб, вроде выделение 25 гб уже обламывалось).
Если я правильно помню, давно это было

Для современных ОС понятие "один кусок" стало размытым. Я попробую сегодня вечером на GCC под Linux что-то повыделять.
И попробую это что-то "использовать" после выделения. Думаю что пункты (1) и (2) могут внезапно оказаться не одиним и тем-же.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991454
mayton
Алексей Роза 2020, если бы гугл был собеседником то тогда мы-бы не сидели в sql.ru.

Как ты считаешь?

я считаю, мы бы нашли о чём поговорить, чего в гугле нет.
обсуждай/не обсуждай, а malloc отдаст 2^64.
а вот винда вообще не интересует
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991461
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Для современных ОС понятие "один кусок" стало размытым. Я попробую сегодня вечером на GCC под Linux что-то повыделять.
И попробую это что-то "использовать" после выделения. Думаю что пункты (1) и (2) могут внезапно оказаться не одиним и тем-же.


Не знаю насколько оно "размытое", но сталкивался, что при 25 Gb свободной памяти, 10 Gb выделялось, 10 Gb + 10 Gb выделялось, а вот 20 Gb выделяться/запускаться уже не хотело (((.

Банально Java VM запускали на Windows.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991471
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Для современных ОС понятие "один кусок" стало размытым.
Вот только не надо путать "один кусок виртуального адресного пространства" и "отображение виртуальной памяти на физическую (и страничные обмены)".
Можно, конечно, запросить "многапамяти" в нескольких (несмежных) регионах, но вашему приложению придётся явно работать с этими областями.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991481
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
mayton
Алексей Роза 2020, если бы гугл был собеседником то тогда мы-бы не сидели в sql.ru.

Как ты считаешь?

я считаю, мы бы нашли о чём поговорить, чего в гугле нет.
обсуждай/не обсуждай, а malloc отдаст 2^64.
а вот винда вообще не интересует

Почему винда не интересует? Ведь ты-же кодишь на сях? Не под сферический чайник.
Ты выбираешь компиллятор. Среду. Платформу. Тоесть еще на проектировании ты уже
знаешь что тебе надо.

Сферический С++ проект существует только в учебниках. Согласен?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991490
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
mayton
Для современных ОС понятие "один кусок" стало размытым.
Вот только не надо путать "один кусок виртуального адресного пространства" и "отображение виртуальной памяти на физическую (и страничные обмены)".
Можно, конечно, запросить "многапамяти" в нескольких (несмежных) регионах, но вашему приложению придётся явно работать с этими областями.


Ну мне тоже это не очень понятно (((
Обычное 64 бит приложение должно работать в своей flat memory model памяти. Т.е. для него все должно быть один регион. Почему проблемы шерифа (операционной системы и фрагментация физ. памяти) как-то сказывается на неграх - мне не очень понятно (((
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991493
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фрагментация. Тоже интересная тема. Вот уже на целую пятницу собралось.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991496
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Обычное 64 бит приложение должно работать в своей flat memory model памяти. Т.е. для него все должно быть один регион.
Делаю тысячу malloc по одному килобайту. Потом удаляю все нечётные.
Приложению всё ещё доступен "один регион"? Это проблема OS? Правда?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991501
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
Leonid Kudryavtsev
Обычное 64 бит приложение должно работать в своей flat memory model памяти. Т.е. для него все должно быть один регион.
Делаю тысячу malloc по одному килобайту. Потом удаляю все нечётные.
Приложению всё ещё доступен "один регион"? Это проблема OS? Правда?

1. Да. Т.к. вполне можно "нарезать" нужный кусок в конце.

2. У нас проблема была на более ровном месте. Компьютер с 32 Гб памяти, свободно 25 Гб. Пытаемся запустить Java VM с 20 Gb - облом, две Java VM с heap по 10 - нормально. Windows 7, Java толи 7, толи 8.
На "свежей" ОС, после перезагрузки, Java с 20 heap'ом запускается
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991503
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
1. Да. Т.к. вполне можно "нарезать" нужный кусок в конце.
Выделяю запрашиваю куски по мегабайту "до упора". Освобождаю всё чётные и пытаюсь выделить два мегабайта. Это всё ещё проблема OS?Пытаемся запустить Java VM с 20 Gb - облом, две Java VM с heap по 10 - нормально. Windows 7, Java толи 7, толи 8.
На "свежей" ОС, после перезагрузки, Java с 20 heap'ом запускаетсяЗапустился процесс, потом другой процесс (много памяти), потом первый процесс запросил (немного) памяти в разделяемой (глобальной) области. Потом второй процесс завершился.

P.S.
Эгоисты хреновы. Вот и в жизни вы такие же - ничего не видите дальше собственного носа.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991506
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov

Выделяю запрашиваю куски по мегабайту "до упора"

2 ^ 64 ?

Выделил 1 байт памяти
Выделил еще 10 байт памяти
Освободил первые 1 байт
Запросил выделение 5 байт - система упала ? )))
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991516
mayton
Почему винда не интересует?

потому что меня интересует только серверный кодинг
а на винде у меня серверов не было уже лет 15, и не будет никогда
у меня есть всего 1 стационарка на винде, но и та уедет на линух скоро
максимум, на что я могу променять линух, это на фрю. Но пока не знаю зачем...
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991517
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
2 ^ 64 ?
Вы бы с ограничениями архитектуры AMD64 ознакомились, что ли. Хотя бы для приличия.

А во-вторых - виртуальное адресное пространство далеко не бесплатно. В "прямой" схеме x86-архитектуры каждые полные или неполные два мегабайта линейного (виртуального) адресного пространства требуют одну физическую (4КБ) страницу в таблице страниц диспетчера виртуальной памяти. Большие страницы не рассматриваем - это отдельный класс виртуальной памяти и он далеко не универсальный.
В худшем случае "разреженного" выделения одна (виртуальная) страница данных (приложения) потребует одной (физической) страницы для данных VMM. Плюсом идёт то, что у каждого процесса - собственная карта виртуальной памяти, что ещё больше увеличивает расходы на управление (виртуальным) адресным пространством.
Фрагментировать "не такое большое" (по факту) адресное пространство - вполне реально.

JVM всегда требует сплошного адресного пространства, даже если конкретное приложение могло бы обойтись "отдельными кусками".
Насколько я понимаю, решаться это будет рамках нового API для работы с внешней памятью: JEP 370: Foreign-Memory Access API (Incubator) ( Java 14 ).
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991523
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov

JVM всегда требует сплошного адресного пространства

вот это я и не понимаю (((

адресное пространство все равно будет отображено на конкретные страницы физической памяти. Т.е. выделение _новой_ памяти для процесса должно идти постранично, кусками по 4 Kb (в случае обычных страниц). Один кусок физической памяти нафиг не нужен. Почему фрагментация внутри ОС (физической памяти) сказывается на приложении, мне не очень понятно
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991524
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev

2. У нас проблема была на более ровном месте. Компьютер с 32 Гб памяти, свободно 25 Гб. Пытаемся запустить Java VM с 20 Gb - облом, две Java VM с heap по 10 - нормально. Windows 7, Java толи 7, толи 8.
На "свежей" ОС, после перезагрузки, Java с 20 heap'ом запускается

Как-то неудачно, ИМХО, реализован Java VM heap в таком случае.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991527
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav

Как-то неудачно, ИМХО, реализован Java VM heap в таком случае.

vector на триллион объектов ( C )

может быть Алексей Роза раньше в sun работал ? )))
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991528
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
вот это я и не понимаю (((
Априори JVM не знает какие массивы будет выделять приложение. Создание объекта "массив", напомню - функция JVM.
Возврат неиспользуемой памяти операционной системе появился далеко не сразу и далеко не во всех сборщиках мусора.
Отказ запускаться с фрагментированной кучей сразу - вполне разумное решение. Со своими недостатками, но это можно сказать о большинстве практичных общецелевых технических решениях.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991530
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov

JVM _вообще_ не запускалась, вываливалась в момент старта с кодом OS - не хватает памяти. Windows ей память выделить не мог.

Аналогиная проблема лет много назад вроде в форуме Delphi поднималась. Память на компе есть, свободная, Windows / RT одним куском ее выделять не хочет.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991531
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
Leonid Kudryavtsev

2. У нас проблема была на более ровном месте. Компьютер с 32 Гб памяти, свободно 25 Гб. Пытаемся запустить Java VM с 20 Gb - облом, две Java VM с heap по 10 - нормально. Windows 7, Java толи 7, толи 8.
На "свежей" ОС, после перезагрузки, Java с 20 heap'ом запускается

Как-то неудачно, ИМХО, реализован Java VM heap в таком случае.

Обычно расчитывают и выделяют minimal footprint (Xms). А Xmx уже указывает потенциально возможный
размер до которого можно расти. Это хорошая практика для управления ресурсами.

Ситуация с падением 20Гб не говорит ниочем. Надо смотреть конкретную ОС и что было в логах jvm и логах ОС
в это время. Возможно это был баг.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991532
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Почему фрагментация внутри ОС (физической памяти)
Не физической памяти, а линейно-адресуемого (виртуального) адресного пространства , доступного процессу.
Для физической памяти нет понятия фрагментации - страницы отображаются в линейное адресное пространство процесса как богVMM положит.
Исключение - драйвера, работающие с устройствами ввода-вывода и устройствами, отображающими свою память в (физическое) адресное пространство процессора, "но это уже совсем другая история".
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991533
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

Обычно расчитывают и выделяют minimal footprint (Xms). А Xmx уже указывает потенциально возможный
размер до которого можно расти. Это хорошая практика для управления ресурсами....

IMHO это как раз таки дебильная практика для управления ресурсов
нормальная это Xms = Xmx

Double IMHO
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991535
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Windows ей память выделить не мог.
Одним куском, Карл. Одним куском не мог.
Как говорил великий комбинатор: "Я бы взял частями, но мне нужно сразу".
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991536
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov
Leonid Kudryavtsev
Почему фрагментация внутри ОС (физической памяти)
Не физической памяти, а линейно-адресуемого (виртуального) адресного пространства , доступного процессу.

вот я это и не понимаю
оно же у каждого процесса своя?
или я не прав и оно едино для всех процессов в ОС?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991538
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возьмем например "обычное" 32 бит приложение в среде Windows с 32 Gb RAM на компьютере.

Нашему приложению выделять 2 Гбайта только его "линейно-адресуемого (виртуального) адресного пространства" + будет еще свободное окно в 2 Gb для доступа к адресному пространству OS /назовем это так/. Ключем /3Gb это поведение можно поменять и будет 3 + 1 Gb.

Я почему-то наивно думал, что у 64 битного приложения все так же, только побольше )))
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991539
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
оно же у каждого процесса своя?
или я не прав и оно едино для всех процессов в ОС?
Оно и такое и такое.
Процесс может запрашивать и глобальные объекты, которые могут отображаться на одинаковые адреса в пространстве всех процессов. Глобальные объекты могут, наверное, и неявно создаваться операционной системой.
Одинаковые линейные адреса глобальных объектов для всех процессов могут назначаться по соображениям, например, эффективности и скорости.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991542
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Возьмем например "обычное" 32 бит приложение в среде Windows с 32 Gb RAM на компьютере.
... и получим облом задолго до исчерпания 2ГБ лимита. В худшем случае я мог выделить JVM менее 1000MiB, в лучшем - в пределах 1700MiB.

P.S.
Не надо сравнивать 32- и 64-разрядные системы напрямую - сохранение (ограниченной) обратной совместимости оно тоже не бесплатное.
Ну и лобовые экстаполяции - очень вредно: появляются дебильные темы про векторы из триллиона элементов и такие же вопросы про эффективность их кэширования.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991543
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Т.е., у нас есть как минимум:
1. физическая память
2. адресное пространство ОС
3. адресное пространство конкретного процесса

вот я и не понимаю, как "фрагментация" 1 и 2, может помешать выделить большой кусок памяти для/в 3-ем. Т.к. "маппинг" осуществляется с гранулярностью одна страница и проблемы "одним куском" быть не должно в принципе IMHO
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991544
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
вот я и не понимаю, как "фрагментация" 1 и 2, может помешать выделить большой кусок памяти для/в 3-ем.
Про физическую память сразу забудьте - на прикладном уровне она вас, в целом, не касаетсяТ.к. "маппинг" осуществляется с гранулярностью одна страница и проблемы "одним куском" быть не должно в принципе IMHO"Особо принципиальные" будут работать сильно медленнее. Причём на самых критичных ко времени операциях типа IPC.
Просто потому, что "пойдя на принцип" не получится задействовать глобальные страницы, которые только и могут "пережить" смену карты памяти при переключении с одного процесса на другой.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991545
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov

в лучшем - в пределах 1700MiB

1700 heap + код JVM + стеки для потоков + PermGet + 64 Mb для JIT
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991546
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov

Thanks
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991547
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
1700 heap + код JVM + стеки для потоков + PermGet + 64 Mb для JIT
Я ставил для исполняемых файлов JRE флаг "Lagre Address Aware" - это меняет выделение памяти 32-разрядному процессу в 64-разрядной OS.
Не факт, что произвольный 32-разрядный бинарь будет правильно работать с этим флагом, когда реально "залезет" за второй гигабайт, но, в теории, можно запросить почти 4ГБ.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991549
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в 1 Gb Linux (Free AWS instance) я вообще Java 1.9 запустить не смог. Не разобрался, как non heap memory уменьшить. Плюнул и поставил 1.8 )))

Вроде в пределе для 32 битного приложения в Windows доступно до 3 Gb. AFAIK
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991551
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Вроде в пределе для 32 битного приложения в Windows доступно до 3 Gb. AFAIK
В 32-разрядной винде - да. В 64-разрядной винде не требуется резервировать "минимум 1ГБ" в адресном пространстве 32-разрядного процесса.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991552
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsevвот я и не понимаю, как "фрагментация" 1 и 2, может помешать выделить большой кусок памяти
для/в 3-ем.

Фрагментация как раз происходит в 3-м, о первом и втором можно просто забыть.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991554
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
mayton

Обычно расчитывают и выделяют minimal footprint (Xms). А Xmx уже указывает потенциально возможный
размер до которого можно расти. Это хорошая практика для управления ресурсами....

IMHO это как раз таки дебильная практика для управления ресурсов
нормальная это Xms = Xmx

Double IMHO

У тебя в профиле виден Oracle. Тогда ты наверное помнишь что такое initial extent для таблиц.

Ps. Тоже имхо.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991555
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton


Тут как раз наоборот. Таблица может расти - это ее нормальное поведение. Но "расти" для работающего __серверного__ приложение - что-то не то в консерватории или memory leak.

Выделять ресурсов для серверного приложения нужно ровно столько, сколько ему необходимо. Если сервер выделенный (в оптимале) то выделять всю память. Это как покупать выделенный сервер с 32 Гб оперативной памяти для Oracle и заставлять Oracle работать в 1 Gb памяти, а остальное оставить на всякий случай для OS / админа.

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

IMHO для __серверов__ единственное вменяемое решение
a) Xms=Xmx
b) ни или Xms в рабочий объем + завышенный Xmx на всякий случай (который никогда не достигается) с информированием службы поддержки о сбое сервера (memory leak) и необходимости его ребута.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991557
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А других конфигураций не бывает?

Девелоперские. Тестовые.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991561
это вы щас обсуждаете яву, которая работает с памятью через жопу?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991582
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020, ты чего злой такой? Пятница-же.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991607
просто вопрос, где злой
интересно же, чего там ява выделить не может, а C++ может
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991611
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Она использует те-же функции ядра при создании heap/metaspace.

Баг нужно воспроизвести. И тогда будет повод поговорить. Ты можешь его воспроизвести?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991617
я с явой не работаю.
а зачем баг явы в векторе на триллион объектов?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991620
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это к Леониду.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991625
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
а зачем баг явы
"Это не баг, это фича".
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991626
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще бремя доказательства - на утверждающем. Не будем искусственно высасывать баги из пальца.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991630
ну ладно, а на вектор то памяти дадут в линухе?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991632
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хз. Надо уйти от триллиона объектов и заменить на что то измеримое.

Я не помню чему у тебя там был равен 1 штук .
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991641
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
это вы щас обсуждаете яву, которая работает с памятью через жопу?
через жопу это когда работаем сразу с триллионом и не сбрасываем что то на диск. Например, в субд.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991647
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В вопросе есть несколько смыслов.
1) Хардверный смысл. Не вся разрядная сетка указателя используется. 64 бита там может быть.
Но текущая аппаратура - не позволит.

Например у меня сведенья о CPU содержат вот такой комментарий:

Код: plaintext
1.
address sizes : 43 bits physical, 48 bits virtual



у вас - возможно - цифры будут другие. Но тоже там далеко до 64 будет.

2) Точка зрения ОС на выделение памяти. Что считать выделением?
malloc - выделение? realloc? А может быть mmap? Нам достаточно отображения куска памяти на файл
чтобы решить задачу Алексея? Или что такое вообще НЕПРЕРЫВНЫЙ кусок памяти в современных ОС
со страничной адресацией? Это метафора?

3) Опции STD::vector. Что он делает при пере-аллокации?
Не упадём-ли мы не от нехватки памяти а от самого процесса перераспределения?

Это как в анекдоте где больной умер от процесса лечения.

4) Собственно алгоритмизация. Зачем Алексею триллион объектов? Какой такой алгоритм
не может быть решен меньшими ресурсами? Почему этот триллион нельзя положить РСУБД
или в NoSQL систему.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991650
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИли что такое вообще НЕПРЕРЫВНЫЙ кусок памяти в современных ОС со страничной адресацией?

Непрерывный диапазон адресов в виртуальном адресном пространстве процесса.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991652
mayton
Хз. Надо уйти от триллиона объектов и заменить на что то измеримое.

Я не помню чему у тебя там был равен 1 штук .

хм, а указатели на другие структуры считать?
скажем, 100 байт.
триллиона конечно не будет, это с запасом. В перспективе ярд.
Но на диск конечно надо будет скидывать. А грузить только активных.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991665
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давай взглянем с точки зрения strace и операционной системы. Что она видит.

Я упростил задачу. До 100 байтных объектов в количестве триллион мы еще дойдем.
Пока выделим 1 000 000 целых чисел в векторе.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
#include <vector>
#include <iostream>
#include <random> 

using namespace std;

int main(int argc, char **argv) {
  cout << "START!\n";
  cout << "C++ standard : " << __cplusplus << "\n";
  default_random_engine generator;
  uniform_int_distribution<int> distribution(1,10000);
  vector<int> v; 
  for(unsigned long i = 0 ; i < 1'000'000 ; i++) {
      int dice = distribution(generator);
      v.push_back(dice); 
  }
  cout << "FINISH!\n";
}



Трассировка системных вызовов.

Код: 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.
..............здесь много мусора инициализации. Но интересное начинается после чекпоинта с названием START
..........
write(1, "START!\n", 7START!
)                 = 7
write(1, "C++ standard : 201402\n", 22C++ standard : 201402
) = 22
brk(0x5615d5854000)                     = 0x5615d5854000
mmap(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4dab854000
brk(0x5615d5844000)                     = 0x5615d5844000
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4dab813000
munmap(0x7f4dab854000, 135168)          = 0
mmap(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4dab792000
munmap(0x7f4dab813000, 266240)          = 0
mmap(NULL, 1052672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4dab691000
munmap(0x7f4dab792000, 528384)          = 0
mmap(NULL, 2101248, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4dab490000
munmap(0x7f4dab691000, 1052672)         = 0
mmap(NULL, 4198400, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4dab08f000
munmap(0x7f4dab490000, 2101248)         = 0
write(1, "FINISH!\n", 8FINISH!
)                = 8
munmap(0x7f4dab08f000, 4198400)         = 0
exit_group(0)                           = ?
+++ exited with 0 +++



И здесь некоторые сведения о версии компиллятора и платформе что я использовал.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
uname -srvmpio 
Linux 5.4.0-42-generic #46-Ubuntu SMP Fri Jul 10 00:24:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

g++ --version
g++ (Ubuntu 9.3.0-10ubuntu2) 9.3.0
Copyright (C) 2019 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.



stdout без трассировки

Код: plaintext
1.
2.
3.
4.
./main.exe
START!
C++ standard : 201402
FINISH!



Кто готов прокомментировать?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991677
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
mayton
Хз. Надо уйти от триллиона объектов и заменить на что то измеримое.

Я не помню чему у тебя там был равен 1 штук .

хм, а указатели на другие структуры считать?
скажем, 100 байт.
триллиона конечно не будет, это с запасом. В перспективе ярд.
Но на диск конечно надо будет скидывать. А грузить только активных.
если грузить на диск то задача совершенно меняется. Разве не увидел?
Сколько активных и почему так много?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991684
да надо закладываться на максимум
вдруг ВСЕ станут активными
скидывать на диск надо просто потому, что память ведь иногда перезагружать придётся
ну и соот-но можно и активность мониторить
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991685
mayton
Кто готов прокомментировать?

вроде вектор заполняем, а на деле какие-то файлы мапятся в память...
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991687
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
да надо закладываться на максимум
вдруг ВСЕ станут активными
скидывать на диск надо просто потому, что память ведь иногда перезагружать придётся
ну и соот-но можно и активность мониторить

Я тебя разочарую.
Ограничения в системах есть ВСЕГДА.
Это не искусственный интеллект.
- сами по себе все активными не станут.
Ты программист или кто?
В очередь не можешь поставить?
Вычислить потребные мощности не можешь?
Что за детское "вдруг"?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991688
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если посмотреть на эти цифры - то видно как второй аргумент функции mmap растет по эспоненте.
Это похоже на рост нашего тела вектора.

Вот тут пишут что 2 аргумент - это есть length. Тоесть фактически это длина нашего вектора.
https://man7.org/linux/man-pages/man2/mmap.2.html

Сначало он 132 килобайта. Потом 260 и так далее. Я так себе понимаю что это и есть квантовая
механика realloc. Просто операционка это видит как игры с маппингом на файл с дескриптором -1.
При успехе - возвращает адрес аллокации. Видно что с каждым растягиванием вектора этот
адрес изменяется.

Код: plaintext
1.
2.
3.
4.
5.
6.
mmap(NULL, 135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4dab854000
mmap(NULL, 266240, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4dab813000
mmap(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4dab792000
mmap(NULL, 1052672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4dab691000
mmap(NULL, 2101248, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4dab490000
mmap(NULL, 4198400, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f4dab08f000



Между этими вызовами стоит m-unmap. Это инвалидация предыдущего маппинга.

Вот такой вот low-level взгляд.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991698
PetroNotC Sharp
Алексей Роза 2020
да надо закладываться на максимум
вдруг ВСЕ станут активными
скидывать на диск надо просто потому, что память ведь иногда перезагружать придётся
ну и соот-но можно и активность мониторить

Я тебя разочарую.
Ограничения в системах есть ВСЕГДА.
Это не искусственный интеллект.
- сами по себе все активными не станут.
Ты программист или кто?
В очередь не можешь поставить?
Вычислить потребные мощности не можешь?
Что за детское "вдруг"?

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

в смысле "видит", я думал это то, что она делает. Зачем писать mmap, если там malloc/realloc?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991702
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А я и не говорю что надо писать mmap.

Мы просто наблюдаем что делает ос чтобы понять свойства этой аллокаций.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991721
но почему ОС назвала это mmap?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991722
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возможно malloc/realloc просто по стеку вызывают mmap/munmap а утилита стрейс просто показывает
последнюю точку стека которую видит ядро. Тоесть ядро не видит никакого malloc. А видит игры
с мемори маппином. А этот загадочный дескриптор -1. Хм... возможно имеется в виду swap.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991729
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть у меня еще мысль. Хочу файловый API проверить. Есть подозрение что если явно не требовать DIRECT
от операционки то мне опять-же предоставят memory-mapping.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991767
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020,
То есть ОЧЕРЕДИ как например fifo lifo это юзверя в масках в очереди стоят?
)))
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991770
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь выделим триллион целых чисел с использованием вектора. А то эксперимент какой-то неполный.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
#include <vector>
#include <vector>
#include <iostream>

using namespace std;

int main(int argc, char **argv) {
  cout << "START!\n";
  cout << "C++ standard : " << __cplusplus << "\n";
  vector<int> v;
  v.reserve(1'000'000'000'000); 
  cout << "FINISH!\n";
}



Пока - провал. Неповезло.

Код: plaintext
1.
2.
3.
4.
5.
START!
C++ standard : 201402
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Aborted (core dumped)



Что в этот момент видел strace.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
START!
C++ standard : 201402
mmap(NULL, 4000000004096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = -1 ENOMEM (Cannot allocate memory)
brk(0x594817588000)                     = 0x55a4c4c32000
mmap(NULL, 4000000135168, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = -1 ENOMEM (Cannot allocate memory)
terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, ~[RTMIN RT_1], [], 8) = 0
tgkill(23101, 23101, SIGABRT)           = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
--- SIGABRT {si_signo=SIGABRT, si_code=SI_TKILL, si_pid=23101, si_uid=1000} ---
+++ killed by SIGABRT (core dumped) +++
./go: line 13: 23098 Aborted                 (core dumped) strace -e trace=ipc,memory,process,signal ./main.exe



Он пытался аллоцировать 4 000 000 004 096 байт или один триллион целых чисел с хвостиком.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991771
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Моя конфигурация по памяти. Обычно плавает. Но после старта ОС она такая (размерность цифр - в Мегабайтах)

Код: plaintext
1.
2.
3.
4.
$ free -m 
              total        used        free      shared  buff/cache   available
Mem:          16005        1228       13814          13         962       14472
Swap:          2047           0        2047
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991775
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей. Попробуй это в своей конфигурации и скажи что у тебя получилось. Какой код ошибки?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991778
mayton, откуда у тебя 4 терабайта, ты што?!
написано же 14 гегофф...
и у меня их тоже нет, прикинь!
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991780
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
mayton, откуда у тебя 4 терабайта, ты што?!
написано же 14 гегофф...
и у меня их тоже нет, прикинь!

Купишь себе Seagate на 16 терабайт (ST16000VE000) и нормально выделишь.

Или ты уже сдался?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991793
PetroNotC Sharp
Алексей Роза 2020,
То есть ОЧЕРЕДИ как например fifo lifo это юзверя в масках в очереди стоят?
)))

да не знаю я кто на ком стоит там у тебя
Я работаю с живыми юзерами
mayton
Купишь себе Seagate на 16 терабайт (ST16000VE000) и нормально выделишь.

я чё псих?!
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991795
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020я чё псих?!

Да.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991796
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020

mayton
Купишь себе Seagate на 16 терабайт (ST16000VE000) и нормально выделишь.

я чё псих?!

Ну твой топик?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991811
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020,
Все понятно. Менеджер. Работает с живыми людьми. Слово очередь вызывает панику.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991816
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для Алексеевских 100-байтных объектов в количестве триллиона нам понадобиться места

Код: plaintext
1.
1000000000000 * 100 / 1024 /1024 /1024 /1024 ~ 90 Гб


В базу данных - нормально влезет. А вот в memory-mapping. Надо подумать.

Для сборки таково файла поверх файловых систем я-бы предложил использовать файловый пул zfs
на Segate-овских дисках по 16 Гб в количестве 6 штук. Из них можно собрать 1 volume. И на него
отобразить выделяемый вектор.

Ну или в btfrs. Модная нынче и более быстрая чем zfs. Субъективно.

Правда действующие ограничения остаются под вопросом. Мои 43 бит адресной шины.
На что повлияют? Будут ли мешать работе с маппингом?

Так по формуле вроде могу адресовать 8 терабайт оперативы.

Код: plaintext
1.
2.
3.
2^43 = 8796093022208

8796093022208 /1024/1024/1024/1024 = 8 Тб



Слотов конечно не хватит но тут дело принципиальное.

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

А технические вызовы мне всегда были интересны.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991818
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonМои 43 бит адресной шины.
На что повлияют?

На предельный размер физического ОЗУ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991821
PetroNotC Sharp
Алексей Роза 2020,
Все понятно. Менеджер. Работает с живыми людьми. Слово очередь вызывает панику.

да нихера тебе не понятно
чё ты пристал со своими очередями
на я те по другому скажу
PetroNotC Sharp
В очередь не можешь поставить?

нет.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991824
mayton
Ну твой топик?

ну он не про то, как на диске 16 терабайт памяти делать
даже от SSD отговорили, а ты тут вообще блины советуешь.
mayton
Для сборки таково файла поверх файловых систем я-бы предложил использовать файловый пул zfs на Segate-овских дисках по 16 Гб в количестве 6 штук. Из них можно собрать 1 volume. И на него отобразить выделяемый вектор.

всё, стоп, астанавись!
Я не про это тему делал.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991825
mayton
И казалось бы ему самому она уже сто лет в буй не впилась.

Задача всё так же актуальна. Только вектор чуть поменьше стал (на 1000 порядков).
И его частично можно хранить на диске (тех кто не нужен).
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991827
Dimitry Sibiryakov
Алексей Роза 2020я чё псих?!

Да.
Да, но не настолько.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991831
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
PetroNotC Sharp
Алексей Роза 2020,
Все понятно. Менеджер. Работает с живыми людьми. Слово очередь вызывает панику.

да нихера тебе не понятно
чё ты пристал со своими очередями
на я те по другому скажу
PetroNotC Sharp
В очередь не можешь поставить?

нет.

Другое дело.
А то включил дурака, что сбрасываем на диск, но нужны одновременно все)))
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991844
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
1000000000000 * 100 / 1024 /1024 /1024 /1024 ~ 90 Гб


а я думаю, если не ограничиваться одной машиной и вместо вектора использовать структуру, которая не требует выделения памяти одним непрерывным куском, то я думаю на Unix/Linux вполне можно решить задачу Алексея, и вообще все сделать на уровне оперативная память + swap
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991846
exp98
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Естессно можно. Распределённое хранение и обработка не этим ли занимается? Как всегда нужно сначала озвучить желаемые обоснованные ТТХ.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991864
mini.weblab
вместо вектора использовать структуру

это как?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991935
PetroNotC Sharp
Алексей Роза 2020
пропущено...

да нихера тебе не понятно
чё ты пристал со своими очередями
на я те по другому скажу
пропущено...

нет.

Другое дело.
А то включил дурака, что сбрасываем на диск, но нужны одновременно все)))

Если юзер пользуется твоим сервисом, в какую ты его очередь собрался пихать?
В БД миллиард юзеров и всегда есть шанс, что они все одновременно зайдут попользоваться.
Но чаще конечно будут провалы от суток и более - вот таких можно на диск скинуть.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991941
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020

В БД миллиард юзеров и всегда есть шанс, что они все одновременно зайдут попользоваться.

Цукерберг, Вы уже спалились!!!
Никогда не знал, что на этом форуме такие люди тусуются. Поговори за меня с отделом кадров, я в Файсбуке работать хочу, please
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991949
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Триллион сущностей (даже целых числел) очень трудно обработать на классической архитектуре где
есть 1 вычислительный узел (8-12 CPU). Даже при максимальном числе потоков и при двух-канальной
памяти они начнут неизбежно конкурировать за память и большую часть времени мы будем стоять
в ожиданиях доступа к каналу памяти.

Частично это решается через map-reduce при условии что данные уже стали историческими и у нас
есть хороший прогноз по разделению всего объема по нодам.

Для OLTP транзакций подобная система - вообще не мыслима. Если допустим что каждая сущность
это физ-лицо. А всех людей на планете Земля не больше 8 миллиардов. То эта база будет все равно на
два порядка меньше чем то что хотел в началае Алексей.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991950
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020,
Триллион,.... Миллиард....
А на самом деле даже записную книжку не писал?
Термины то все не инженерные).
автори всегда есть шанс, что они все одновременно зайдут попользоваться
Неужели в ТЗ бизнес аналитик так слово в слово и написал?)))
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991957
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020Если юзер пользуется твоим сервисом, в какую ты его очередь собрался пихать?
В БД миллиард юзеров и всегда есть шанс, что они все одновременно зайдут попользоваться.

Зачем их пихать в очередь? Пришёл - тут же обслужился. ФОТ не ограничен, дополнительных
рабочих можно создать по потребности в любой момент.

Миллиард пользователей встанут в очередь у своего провайдера, просто чтобы пакетик
отправить, а это уже не наша забота.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991972
Dimitry Sibiryakov
Зачем их пихать в очередь?

не знаю, это вон там тролли детсадовские вылезли, очередь им подавай.
Наша забота, чтобы все активные были в памяти.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991974
mayton
Триллион сущностей (даже целых числел) очень трудно обработать на классической архитектуре, где есть 1 вычислительный узел (8-12 CPU). Даже при максимальном числе потоков и при двух-канальной памяти они начнут неизбежно конкурировать за память и большую часть времени мы будем стоять
в ожиданиях доступа к каналу памяти.

как же живут системы с 1'000'000 rps?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991975
Leonid Kudryavtsev
Алексей Роза 2020

В БД миллиард юзеров и всегда есть шанс, что они все одновременно зайдут попользоваться.

Цукерберг, Вы уже спалились!!!
Никогда не знал, что на этом форуме такие люди тусуются. Поговори за меня с отделом кадров, я в Файсбуке работать хочу, please

спешу тебя расстроить, это не тот случай, когда преждевременная оптимизация вышла из берегов и пролила гигабаксы в трубу.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991978
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020,
авторrps
Появилось первое инженерное слово)
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991979
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
mayton
Триллион сущностей (даже целых числел) очень трудно обработать на классической архитектуре, где есть 1 вычислительный узел (8-12 CPU). Даже при максимальном числе потоков и при двух-канальной памяти они начнут неизбежно конкурировать за память и большую часть времени мы будем стоять
в ожиданиях доступа к каналу памяти.

как же живут системы с 1'000'000 rps?

Они децентрализованные. А цифра - просто суммарная пропускная способность узлов.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991980
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
Dimitry Sibiryakov
Зачем их пихать в очередь?

не знаю, это вон там тролли детсадовские вылезли, очередь им подавай.
Наша забота, чтобы все активные были в памяти.
угу.
А вектор и упорядоченные списки это не очередь).
Ну да. Вы же очередь живьём представляете. Из юзверей.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991982
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020Наша забота, чтобы все активные были в памяти.

Пока миллиардный станет активным - первый не просто отключится, а давно умрёт.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991989
PetroNotC Sharp
Алексей Роза 2020
пропущено...

не знаю, это вон там тролли детсадовские вылезли, очередь им подавай.
Наша забота, чтобы все активные были в памяти.
угу.
А вектор и упорядоченные списки это не очередь).
Ну да. Вы же очередь живьём представляете. Из юзверей.

вектор - это и есть юзеры.
тебе пора уже валить из моей темы и заняться своей диссертацией по IT
это всё таки не тролльский детсад.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991990
Dimitry Sibiryakov
Алексей Роза 2020Наша забота, чтобы все активные были в памяти.

Пока миллиардный станет активным - первый не просто отключится, а давно умрёт.
А для БД это не важно.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991992
mayton
Алексей Роза 2020
пропущено...

как же живут системы с 1'000'000 rps?

Они децентрализованные. А цифра - просто суммарная пропускная способность узлов.

нуу, это скучно.
куда это подевался твой пятничный дух...
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991995
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
mayton
пропущено...

Они децентрализованные. А цифра - просто суммарная пропускная способность узлов.

нуу, это скучно.
куда это подевался твой пятничный дух...

Хорошо. Давай порассуждаем что такое 1'000'000 rps?

Ты можешь сейчас (без заглядывания в вики) просто сказать как ты это понял? Очевидно
что это некая скорость. Каких-то попугаев в секунду.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991996
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020А для БД это не важно.

Вот именно. Поэтому используй БД, а не вектор и будет тебе счастье.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39991999
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020,
Неа. Вся тема трольский детсад. Уже все отписались.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992046
Dimitry Sibiryakov
Алексей Роза 2020А для БД это не важно.

Вот именно. Поэтому используй БД, а не вектор и будет тебе счастье.
может ещё на ветку залезть?
это не счастье, а ненависть ко всему IT.
mayton
что такое 1'000'000 rps?

1 лям попугаев ломятся на сервак
mayton
просто сказать как ты это понял?

что понял? Забей, хрен с ними с попугаями, до них ещё дожить надо.
Они потенциально есть, но не на первом месте.
Ты говоришь, что есть некий предел, когда всё умрёт...
этот предел выражается в занятой памяти (при условии, что она не закончилась, но почему-то всё равно всё умрёт)
или же в кол-ве подключений?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992063
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020,
Тема про веб что ли?)
автор1 лям попугаев ломятся на сервак
Угу. И все на одну страницу Контакты, которая выдается из кэша браузера))))).
Ну или балансировщик впереди.
Детский сад.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992084
почему ты ещё здесь?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992086
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020,
Попкорн взял. Сижу в первом ряду. Удобно.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992087
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой попкорн ((( Я бухаю с горя ((( На нашем форуме оказывается Цукенберг обитает, а в профильных ветках даже никаких вакансий из Файсбука нет ((( Как жить дальше?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992089
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev,
Осторожней бухай. Он подсаживается к барной стойке и разводит клиентов на .....разговоры про триллионы, миллиарды и квадрилионы. Пока деньги не кончатся.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992090
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вся тема пиз#$% и провокация
1) Вектор на триллион в памяти - при отсутствие компьютера с терабайтом оперативной памяти
2) Миллиард пользователей - в российском форуме, где в стране общая численность населения 146 748 590 на 1 января 2020 года
3) Одновременно залогинились - при том, что 146 748 590 человек это с учетом младенцев и прочих нелогиноспособных категорий граждан
и так далее
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992091
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid Kudryavtsev
Какой попкорн ((( Я бухаю с горя ((( На нашем форуме оказывается Цукенберг обитает, а в профильных ветках даже никаких вакансий из Файсбука нет ((( Как жить дальше?

Я как-то читал статью от парня, программиста, из Киева. В общем, он поставил себе цель уехать в Европу. После ВУЗ-а он нашёл работу в лондонском подразделении Фейсбука, даже Цукерберга видел в очереди в корпоративном кафе на обеде. Вы просто не делаете ничего.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992093
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020

Ты говоришь, что есть некий предел, когда всё умрёт...
этот предел выражается в занятой памяти (при условии, что она не закончилась, но почему-то всё равно всё умрёт)
или же в кол-ве подключений?

Я не говорю что умрет. Просто надо помнить о законе Мура. Мы можем на борт поставить много памяти.
Но мы не можем ПРОПОРЦИОНАЛЬНО гарантировать те-же вычислительные мощности.

Тоже самое сеть. Лям пользователей ломануться на сервак? Это как? Один сетевой интерфес.
Будь то 100Мегабит. 1Гигабит. И так далее. Это последовательное устройство. IP пакет
пересекает границу сетевого интерфейса строго последовательно. Поэтому этот лям пользователей
выстроится в очередь еще на дальних рубежах. Еще даже не дойдя до нашего сервера.
Впрочем это слишком специфично к задаче и это надо обсуждать. Что этот лям хочет делать?
Если он делает HTTP GET титульной странички - так это по другому решается.
Поднимем 1000 региональных NGinx и каждый из них отработает 1000 соединений
и даже не долетит до нашего аппликейшена. Если Лям пользователей делает
лям бизнес переводов денег - то здесь узким местом может стать некий
mutex, который контролирует sequence объект для всей системы. И он тоже
работает строго последовательно. Любая финансовая операция требует
последовательности. Хотябы для фиксации логов и SCN и метки времени
для установления причинно-следственной связи.

Пропускная способность гугла как такового может быть высокой. Но гугл - это не один сервак.
Это грид. В этом можно убедиться просто пингуя его из разных географических регионов.
И этот грид много-слойный. Есть отдельные слои mappers, reducers, слои хранения текстового индекса. Google
сумел спроектировать свой грид так что у него нет этой единой точки конкуренции
и всё работае параллельно в режиме PA (Partition-tolerance, Availability) по Брюеру.
Консистентности нету. Но всем пофиг. От гугла не требуют консистетности между узлами.
И от DNS тоже.

У Твиттеров и Фейсбуков - скорее всего тоже единой консистентноси нет. У них - eventual
consistency. Тоесть гарантируется что отправленное сообщение когда-то да будет
доставлено получателю. Когда - точно неизвестно. Может через 10 милисекунд.
Может чуть дольше. Как в JMS/MQ.

Вобщем к чему я это все написал. Если надо сетапить такую толстую архитектуру.
То надо чем-то жертвовать.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992098
PetroNotC Sharp
Алексей Роза 2020,
Попкорн взял. Сижу в первом ряду. Удобно.

Зачем, ты что, ущербный? У тебя, судя по всему, прельстивая и насыщенная жизнь, полная смысла.
А тут какую-то неведомую херню обсуждают, глупости и детский сад
Что ты в детском саду делаешь? Ты что, педофил?
Вбросы твои даже не улыбают. Ценности от твоей инфы никакой.
Я эту тему создал не для тебя. От тебя мне ничего не надо. Уходи.
Leonid Kudryavtsev
146 748 590

мелко плаваешь. Моя цель - Галактика.
mayton
Я не говорю что умрет. Просто надо помнить о законе Мура. Мы можем на борт поставить много памяти.
Но мы не можем ПРОПОРЦИОНАЛЬНО гарантировать те-же вычислительные мощности.

так фишка в том, что НЕ нужны такие мощности в моём случае.
По проводу зайдёт лям в секунду. А вот как быстро ты их сможешь раскидать - ответ на вопрос "как обезьяна стала человеком".
(провод, кстати, может быть и не один. Не обязательно их всех в одном проводе в очередь штабелями класть).
mayton
Поднимем 1000 региональных NGinx и каждый из них отработает 1000 соединений
и даже не долетит до нашего аппликейшена.

фу так делать
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992099
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020

так фишка в том, что НЕ нужны такие мощности в моём случае.
По проводу зайдёт лям в секунду. А вот как быстро ты их сможешь раскидать - ответ на вопрос "как обезьяна стала человеком".
(провод, кстати, может быть и не один. Не обязательно их всех в одном проводе в очередь штабелями класть).

Ты хочешь лям в секунду ПРИНЯТЬ. Или обработать? Или обработать и выслать ответ?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992100
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020,
авторЯ эту тему создал не для тебя. От тебя мне ничего не надо. Уходи.
Меня улыбает белая ворона, которую ни один чел в данном форуме не понял.
Это же твои проблемы.
Я когда топики тут начинаю, поскромнее себя веду.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992103
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AFAIK слово "тема" в русском языке предполагает наличие хоть крупицы смысла. Если смысла нет, но называть множества нажатий на клавиатуре, которые где-то через сеть, превращаются в набор черточек и точечек на каком-то мониторе "темой" на мой взгляд странно

Просто треп и флуд. Раз соответствующий подфорум удалили, то теперь такие темы можно заводить в любом месте. Моторику то тренировать где-то нужно (методом нажатия на кнопки на клавиатуре)
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992108
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020По проводу зайдёт лям в секунду.

Не зайдёт. Даже по гигабиту - не пролезет чисто физически.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992210
PetroNotC Sharp
Меня улыбает белая ворона, которую ни один чел в данном форуме не понял.

А вот меня улыбает то, что ты за всех сразу говоришь. Называешь всё что не понял "детским садом" и ещё пытаешься троллить незнакомых людей. Молодо-зелено.
mayton
Алексей Роза 2020

так фишка в том, что НЕ нужны такие мощности в моём случае.
По проводу зайдёт лям в секунду. А вот как быстро ты их сможешь раскидать - ответ на вопрос "как обезьяна стала человеком".
(провод, кстати, может быть и не один. Не обязательно их всех в одном проводе в очередь штабелями класть).

Ты хочешь лям в секунду ПРИНЯТЬ. Или обработать? Или обработать и выслать ответ?

обработать и выслать.
Dimitry Sibiryakov
Алексей Роза 2020По проводу зайдёт лям в секунду.

Не зайдёт. Даже по гигабиту - не пролезет чисто физически.
расскажи это магистральщикам ) Гигабит же не предел.
Leonid Kudryavtsev
AFAIK слово "тема" в русском языке предполагает наличие хоть крупицы смысла.

ну раз ты не допёр до смысла, то конечно осталось только флудить и оффтопить. Вот тут то смысл и появится.
С - Смекалка.
Нет чтоб посидеть молча, послушать, ума набраться.
Да, я знаю, что ты дохера чего познал и вообще 20 лет кодишь.
Но ты так и остался обычным прикладушником, работающим "с тем, что имеем".
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992214
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020, на самом деле у тебя ничего не получилось.

Суть сей басни такова что ты просто пришел в этот форум искать ответы на вопросы.
Если-б ты все знал - то зачем-бы вообще поднимал триллион объектов?

Разве не так?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992217
нет. Я делаю новое, неизведанное.
(оно и вами то неизведанное, кстати)
А тут я развиваю коллективный разум
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992219
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020расскажи это магистральщикам ) Гигабит же не предел.

Это ты поинтересуйся у магистральщиков какое оборудование и технологии при этом
задействованы. На этом фоне твой отказ от покупки винта будет совершенно смешным.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992221
Dimitry Sibiryakov, дата-центры выдерживают DDOS-атаки в терабайты.
нормально там всё пролазит, не волнуйся )
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992225
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020,
>А вот меня улыбает то, что ты за всех сразу говоришь.
У меня нюх на странные топки от бездельников.
Не может конкретная задача обсуждаться 13 страниц.
ПТ.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992226
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты ставишь знак == между простой проверкой типа если IP адрес такой-то - то DROP,
и бизнес-логикой которая делает транзакции?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992229
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020дата-центры выдерживают DDOS-атаки в терабайты.

Это их PR отдел вешает лапшу на уши, а некоторые оптимисты ведутся... Но ты же технарь?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992231
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас в топике идет сравнение грузовика и гоночного болида. С такими аналогиями мы далеко уедем.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992234
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonУ нас в топике идет сравнение грузовика и гоночного болида.

Нет, у нес в топике идёт кормление тупого тролля. И ехать никто никуда не собирается.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992253
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

Алексей Роза 2020дата-центры выдерживают DDOS-атаки в терабайты.

Это их PR отдел вешает лапшу на уши, а некоторые оптимисты ведутся... Но ты же технарь?..

Почему "лапшу"?

Если дата центр существует несколько лет, то вполне мог терабайт DDOS-атак выдержит. Может вполне правду говорят.

p.s. Если какой дата центр существует уже лет 20 (например с 2000 года) и постоянно подключен к сети по модему 2400 бод, то к сему моменту вполне тербайт бы прополз ))) даже без компрессии /вроде у модема 2400 скорость получается около 70 Gb в год)))/, а с учетом MNP5 компрессии в модеме, то вполне возможно, что и за 10 лет бы справился.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992272
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Датацентр тоже децентрализован. И его характеристики пропускных способностей это
тоже самое что "за 2019 год страна намолотила столько-то тонн пшеницы" . Такого-же порядка
метрики. Вроде и большие - но решение не интенсивное а экстенсивное. Дурное дело - не
хитрое.

А где инженерная мысль? Где то самое за что дают премии? Где инновация?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992312
mayton
Ты ставишь знак == между простой проверкой типа если IP адрес такой-то - то DROP,
и бизнес-логикой которая делает транзакции?

ага, IP-адрес...
у Arbor и Cisco есть оборудование на сотни $килов
IP-адресы проверяет, да.
Ты поизучай тему DDOS-а, она интересная

Вопрос надо ставить иначе - КАК максимизировать скорость обработки этой самой транзакции.
Dimitry Sibiryakov
Это их PR отдел вешает лапшу на уши, а некоторые оптимисты ведутся... Но ты же технарь?..

да я то технарь, а ты кто? Я лично с DDOS-ом воевал, когда игровой сервер держал и заливали мне там всякого UDP-говна на гигабайты. А решал всё это именно ДЦ.
А про Claudfire что скажешь? Про Qurator?
Dimitry Sibiryakov
кормление тупого тролля

а впрочем, тоже на хер вали.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992323
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020
mayton
Ты ставишь знак == между простой проверкой типа если IP адрес такой-то - то DROP,
и бизнес-логикой которая делает транзакции?

ага, IP-адрес...
у Arbor и Cisco есть оборудование на сотни $килов
IP-адресы проверяет, да.
Ты поизучай тему DDOS-а, она интересная

В чем тема DDOS для меня может быть интересной? Какие такие тайные знания или секретные
алгоритмы там есть?

Может твоя тема изначально имела отношение к embed software и ее имело смысл поднять
не здесь а в Hardware или Unix?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992326
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020А про Claudfire что скажешь?

Только то, что их привычка "защищаться" выдавая страничку "подождите несколько секунд, мы
вас проверяем на вшивость" это и есть "отказ в обслуживании" от которого они якобы и защищают.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992331
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDOS - это уровень школьников которые хотят шатать сайт правительства или президента пингами. И он вобщем-то
валит не сайт а сетевой канал.

Наиболее сложные и интересные атаки - это прикладной уровень. Там - еще не создали никаких внятных алгоритмов
автоматической защиты. Вот там - интересно. Там - борьба брони и снаряда. Там криптография.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992340
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Автор договорился до ручки. До DoS атак)
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992351
mayton
В чем тема DDOS для меня может быть интересной? Какие такие тайные знания или секретные алгоритмы там есть?

тем что там всё несколько серьёзнее, чем просто "сравнить IP".
mayton
DDOS - это уровень школьников которые хотят шатать сайт правительства или президента пингами. И он вобщем-то валит не сайт а сетевой канал.

попинговать сайт - да, для школьников. Но это начальный уровень DDOS. И школьники не оперируют ботнетами.

Существует 4 больших класса атак:
1. Bandwidth (канал) - здесь живут флуды большими пакетами, атаки типа amplification и reflection.
2. Infrastructure - атаки направленные на сетевую инфраструктуру - мозги которые обрабатывают пакеты и принимают решения куда их дальше отправить. Сюда входят высокоскоростные флуды мелкими пакетами, атаки на ре-фрагментацию, атаки на открытые внешнему миру control plane и всевозможные манипуляции с маршрутизацией (подмена, cache fanout)
3. TCP/IP stack - атаки на стек endpoint оборудования. Классический synflood, ackflood, игры с таймаутами и некорректными закрытиями соединений и, как ни странно, slowlorris.
4. L7 (Application layer) - все атаки в которых используются семантически законченные конструкции протокола приложения. Это самое сладкое - поскольку именно на этом уровне плечо атаки (соотношение ресурсов затраченных атакующим к ресурсам потребленным жертвой) может достигать астрономических величин.

Ты затронул только 1. В общем на, развлекайся:
YouTube Video
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992353
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стоп-стоп. Подожди. Я здесь вообще не для этого. Ты -- с должным уважением спрашиваешь свой вопрос.
Форум С++ -- тебе отвечает. А играть в телевикторину я тебе не позволю. Не формат ибо.

Задавай свой конкретный вопрос. По DDOS атакам применительно к С++ разработке.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992359
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020,
> L7 (Application layer) - все атаки в которых используются семантически законченные конструкции протокола приложения.
Угу. Еще добавь, прошедшие авторизацию.
У тебя там не распил бабла случайно?
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992363
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей Роза 2020Вот именно, что L7 - самый вкусный.
Ну а теперь давайте подождём, пока вы сложите 2 + "эта тема".

Мы-то сложим, но результат будет для тебя неутешителен: твоё приложение либо страдает
проблемой N+1, либо нет. В первом случае атака будет успешна, во втором - обломится.

Так вот, сабж этой проблемой страдает в абсолютно явном виде и именно поэтому его
обсуждение бесперспективно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992388
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton

В чем тема DDOS для меня может быть интересной?


ну как же? кто-то нам предлагал интеграционный проект "Привет Мир" (на С++)
авторПри чем здесь OCI? Давай возьмем наугад 100 случайных библиотек в разных классах.
Драйверы сетевых протколов. Клиенты. Вычислительные библиотеки. Поддержка веба. Криптография.
Поддержка облаков типа Google/Amazon/Azure. И просто включим их в 1 проект.

Интеграционная задача! По сути я прошу написать привет-мир который объединяет множество
разного прикладного функционала.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992395
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mini.weblab,
Кончайте удаляться от темы топика - Вектор на триллион.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992397
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вроде скостили уже. Правда я не помню где было.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992399
mayton
Форум С++ -- тебе отвечает.

да видел я, что он отвечает
mayton
Не формат ибо.

формат троллей и флуда.
13 страниц мне рассказывают, что тема говно... какие-то мыши, которые любят жрать кактусы.
по 50000 набили и всё никак остановиться не могут. А говно я.
mayton
я тебе не позволю

Зато позволяешь оскорблять людей и засирать тему.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992400
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не видел жалоб по кнопке.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992403
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Вроде скостили уже. Правда я не помню где было.

Тут и причем от ТС
22186839
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992405
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет. Я не про это. Леша писал там и триллион уже не надо. И объекты помельче чем 100 байт.
...
Рейтинг: 0 / 0
vector на триллион объектов
    #39992412
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пройдёт ещё немного времени и окажется, что запросы у него приходят по UDP, то есть добрую
половину можно просто проигнорировать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
332 сообщений из 332, показаны все 14 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / vector на триллион объектов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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