Спасибо, пацаны, что не забыли :)

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

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

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

Читать-то все равно только по одной странице за раз надо ?

Опять же - поток который пишет он спит. 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 максимум).

... Значит все таки практикующие акушеры рекомендуют Б-дерево.

Коваленко Дмитрий.

Ответить