powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / C++ [игнор отключен] [закрыт для гостей] / vector на триллион объектов
25 сообщений из 332, страница 1 из 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
25 сообщений из 332, страница 1 из 14
Форумы / C++ [игнор отключен] [закрыт для гостей] / vector на триллион объектов
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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