powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
7 сообщений из 32, страница 2 из 2
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34254469
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VadimF
BitMap-индексы используют $bit-функции, которые реализованы на уровне ядра.
Я об этом писал в этой ветке.
Можно найти об этом информацию в материалах, которые я советовал посмотреть и в документации.
Такой подход и позволил очень сильно увеличить производительность.

Вадим, я вообще-то догадывался, что в BitMap используется не $Extract. :) Но речь еще и о том,
что вся остальная чехарда реализована не на уровне ядра, а средствами языка. Плюс деление
на кусочки по 8k, плюс запись в обычный массив... короче, не будет это быстрее. Возможно
по сравнению кое с кем будет не медленнее, но быстрее?!

VadimF
Ограничение 32k снято на уровне ядра в Cache' 2007.1. В следующих версиях будет снято на уровне объектов и SQL.

Это радует.

VadimF
На работу BitMap-индексов это сильно не влияет.
В документации описывается как храниться BitMap-индекс.
Caché Development Guides -> Using Caché Multi-Dimensional Storage -> SQL and Object Use of Multidimensional Storage -> Bitmap Indices

Вот отрывок:
The third subscript contains a chunk number; for efficiency, bitmap indices are divided into a series of bit strings each containing information for about 64000 rows from the table. Each of these bit strings are referred to as a chunk.

Размер каждого "кусочка" 8k, что соответствует размеру блока.

1. Это Вам так кажется, что не влияет.
2. Я знаю как они хранятся.
3. BitMap строка не помещается в блок, разве что в BigString, а там уже пофигу какой у Вас размер строки.
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34254473
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergei Obrastsov
3. BitMap строка не помещается в блок, разве что в BigString, а там уже пофигу какой у Вас размер строки.
Брякнул, а не подумал, прошу прощения. Там ведь 8192, на фиксированных ссылках влезет.
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34255295
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergei Obrastsov Sergei Obrastsov
3. BitMap строка не помещается в блок, разве что в BigString, а там уже пофигу какой у Вас размер строки.
Брякнул, а не подумал, прошу прощения. Там ведь 8192, на фиксированных ссылках влезет.

Битовая строка храниться в сжатом виде!
Там 64000 элемента, но так как используется сжатие, это меньше 8k.

Вадим
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34255342
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VadimF Sergei Obrastsov Sergei Obrastsov
3. BitMap строка не помещается в блок, разве что в BigString, а там уже пофигу какой у Вас размер строки.
Брякнул, а не подумал, прошу прощения. Там ведь 8192, на фиксированных ссылках влезет.

Битовая строка храниться в сжатом виде!
Там 64000 элемента, но так как используется сжатие, это меньше 8k.

Почему же тогда ровно 64000, то есть 8000 x 8? :)
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34278893
-Serg-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergei Obrastsov Sergei Obrastsov -Serg- Sergei Obrastsov -Serg-Какова максимальная длина BitMap индекса на один ID, если размер кластера, например равен 32000.
n=32000*8 ???
А если нужно несколько млн. позиций или млрд-ов ???
на один узел - да. только причем тут кластер? ограничение идет от длины данного.
значит надо использовать группу узлов. не думаю, что это очень удобно. хотя запас
скорости позволяет обрабатывать это достаточно безболезненно, я полагаю.

Эээ, как это на разные узлы???
Неапример такблица
ID Ni Ni-1 Ni-2 ... 1
A1 0 1 0 0
...

Вопрос в том, максимальное значение i (например, если число реквизитов i=nn-млн-в
и где это все хранить в базе т.е. как (длина строки в каше ограничена)
А Вы предполагали все это запихнуть в одну строку? Разве у РСБУД нет ограничений на длину одной записи? Вот и здесь то же самое. Да обычно и хранить:
^X(1)=0
...
^X(Ni)=0
Туплю с утра, sorry. Речь ведь о BitMap идет? Тогда нарезка по 262,000 значений на строку,
конечно. То есть:
^X(y) = bit
где bit = bitmap для значений от Nj до Nj+262000
В окончательном варианте для БД получаем:
^X(ID,y)=BITn

Так и я о том же !!!
Если работать через ^X это уже не чистый bit индекс, а какой-то составной, типа "глобальбитый"
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34278945
-Serg-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VadimF Sergei Obrastsov Sergei Obrastsov
3. BitMap строка не помещается в блок, разве что в BigString, а там уже пофигу какой у Вас размер строки.
Брякнул, а не подумал, прошу прощения. Там ведь 8192, на фиксированных ссылках влезет.

Битовая строка храниться в сжатом виде!
Там 64000 элемента, но так как используется сжатие, это меньше 8k.

Вадим

S a="" F i=1:1 S j=i#2,$BIT(a,i)=j W !,i,"-",$L(a)

262104-32767
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34278958
-Serg-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VadimF


BitMap-индексы появились несколько лет назад в версии Cache' 5.0. С тех пор в Cache' появилось много новых возможностей.

Вадим

Как я понимаю речь идет о индексах!?

Какие новые возможности (многие) появились. Можно ли кратко их описать. Это важно для всех.
...
Рейтинг: 0 / 0
7 сообщений из 32, страница 2 из 2
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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