Спасибо, пацаны, что не забыли :)
> > На текущий момент - затык с диском.
>
> Я же говорил - пиши последовательно, а не абы как. И как можно
> бОльшими кусками
> ...
Видно деваться будет некуда. Щас буду пытаться систематизировать
сделанные изменения, я же сломал все что только можно сломать.
Потом начну смотреть. "Большими" кусками... У меня в кэше сегменты,
находящиеся рядом на диске, могут находиться в разных частях кэша. То
есть нахаляву состыковать их в памяти не удасться. Тут выход - либо
копировать их в линейный буфер (маразм?) либо упорядочивать выдачу
команд на запись ...
Читать-то все равно только по одной странице за раз надо ?
Опять же - поток который пишет он спит. 3/4 кэша были "чистые" ...
Текущие траблы из-за того что много промахов мимо кэша. У меня
писатель на самом низком приоритете работает. И видно, что когда
начинаются запросы на чтение с диска запись замирает на достаточно
длительные интервалы времени. Но это опять же - такое поведение для
текущей реализации индекса
> > Первая - так называемые DST. Digital Search Tree. Высота дерева не
> > больше числа байт в ключе. В моем случае она не превысит восьми. Хотя,
> > вообще говоря - ID у меня 64-битное.
>
> 8 ???
Ага. Я как посмотрел на количество (я их раньше приводил) комбинаций,
так и ... прибалдел.
число объектов: 1100403
14786203
92189456 - две слова
380927263 - три слова
1137077468
2618853571
4870046956
7588537049
10281555571
12670250189
15072709841
[54726933567]
Кстати, всего получается надо сгенерировать не 350 млн, а 470 млн. Но,
думаю, уникальных будет не больше 100 млн.
> > Вторая - Б-деревья.
>
> Тут будет не более 4-х на твоих объёмах
При 4 килобайтной странице ... ???? У меня 4-х байтный идентификатор
страницы. Ключ, считай, 16-байтный. Данные, которые нужно привязаны к
ключу - 8 байт (это тот же ID, только для пары целиком).
> > Люди, скажите что нибудь. Хотя бы такую вещь - FB может параллельно
> > добавлять новые ключи в индексы?
>
> Конечно. Но имей в виду - одновременно на одну и ту же страницу
> конечно же никто не пишет
А разве алгоритм Б-дерева обратно по дереву не поднимается? Если
поднимается - то может же возникнуть блокировка ...
> Кстати - префиксная компрессия ключей в этом смысле очень даже
> рулит. Хотя кодировать это - ужас один
Я дальше отбрасывания ведущих нулевых байт для DST не собирался
"сжимать". Поэтому и говорил про 4 байта (при 8 максимум).
... Значит все таки практикующие акушеры рекомендуют Б-дерево.
Коваленко Дмитрий.