powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
32 сообщений из 32, показаны все 2 страниц
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34250832
Stpl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Знатоки Cache'a, подскажите есть ли смысл пытаться сделать на Cache подобие OLAP системы для использования в системе онлайнового планирования?

Я начал писать систему на MSAS но при отличной реализации там аналитики не сумел реализовать реалтаймовые расчеты по меняющимся данным. Т.е. придется идти по традиционному пути и делать чтото типа OLTP и к ней прикручивать аналитику.

Но проблема в том что уже в OLTP нужна базовая функциональность OLAP по работе с многомерными данными. Отсюда и вопрос: а не попробовать ли использовать Cache?

Ваше мнение?

Стас

PS. Пардон за столь размытый вопрос, про Cache начал читать только вчера...
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34250979
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стас,

А OLTP система на чем сделана?

Что касается реализации хранилищ данных и OLAP-систем, то на Cache' такие системы есть.
Посмотрите презентацию BitMap-индексы (С появлением BitMap-индексов можно более эффективно разрабатывать аналитические приложения на Caché. На занятии вы получите теоретические знания и получите практический опыт использования BitMap-индексов и приложения HyperIndex).

Очень стоит посмотреть на систему HyperIndex. Это свободно распространяемая система для создания витрин данных.
В архиве есть подробная документация.
Она позволяет добавить BI-функциональность к OLTP приложению на Cache'.

Есть коммерческие OLAP-системы на базе Cache' (Speedminer,...).
С данными в Cache' можно работать из OLAP-систем 3-х фирм (Cognos, BO, ...).

Перед тем как начинать что-то разрабатывать, советую прочитать пару статей про Cache', посмотреть как устроен объектный и прямой доступ.
Лучше всего дополнительно сходить на семинар Cache' Entree и пообщаться с консультантами InterSystems.

Данных, чтобы точно сказать, стоит делать Вашу систему на Cache' или нет пока недостаточно.


Успехов, Вадим
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34251115
Stpl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VadimFА OLTP система на чем сделана?
В новом проекте еще не на чем, срочно выбираю :) , прототип сделан на MSSS+AS.
(В предыдущем "поколении" проекта использовалась старая объектная база NeoAccess)

VadimF
Что касается реализации хранилищ данных и OLAP-систем, то на Cache' такие системы есть.
Посмотрите презентацию...

Спасибо! сейчас займусь.

VadimF
Перед тем как начинать что-то разрабатывать, советую прочитать пару статей про Cache', посмотреть как устроен объектный и прямой доступ.

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

VadimFЛучше всего дополнительно сходить на семинар Cache' Entree и пообщаться с консультантами InterSystems.
я бы с удовольствием, но на этот год расписание еще не опубликовано?

Кстати в Питере у вас есть партнеры?

VadimFДанных, чтобы точно сказать, стоит делать Вашу систему на Cache' или нет пока недостаточно.

Я не уверен что это корректно просить в форуме найти за меня решение моей конкретной задачи, поэтому пытался свести это к общему вопросу.

в любом случае спасибо за комментарии!

Стас
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34251137
Stpl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вадим, а можно для ускорения процесса ознакомится с материалами Caché Entree, например с
последнего семинара ?
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34251217
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stpl VadimFА OLTP система на чем сделана?
В новом проекте еще не на чем, срочно выбираю :) , прототип сделан на MSSS+AS.
(В предыдущем "поколении" проекта использовалась старая объектная база NeoAccess)

Если Вы собираетесь OLTP делать не на Cache, то лучше начать выбирать что-нибудь другое
и для OLAP. Связать конечно можно, но сомневаюсь, что это будет эффективно и тем более
разумно. А так, проект конечно вкусный, даже завидую. :)
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34251244
-Serg-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
VadimFСтас,

А OLTP система на чем сделана?

Что касается реализации хранилищ данных и OLAP-систем, то на Cache' такие системы есть.
Посмотрите презентацию BitMap-индексы (С появлением BitMap-индексов можно более эффективно разрабатывать аналитические приложения на Caché. На занятии вы получите теоретические знания и получите практический опыт использования BitMap-индексов и приложения HyperIndex).


Какова максимальная длина BitMap индекса на один ID, если размер кластера, например равен 32000.
n=32000*8 ???
А если нужно несколько млн. позиций или млрд-ов ???
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34251252
Stpl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergei ObrastsovЕсли Вы собираетесь OLTP делать не на Cache, то лучше начать выбирать что-нибудь другое
и для OLAP. Связать конечно можно, но сомневаюсь, что это будет эффективно и тем более
разумно.
Как раз для oltp части и смотрю на Cache имея в виду ее "неплоские" способности, и возможность сделать на ней же multidimentional модель для использования внутри oltp.
ну да... вот такая каша :) multidimensional oltp

Sergei ObrastsovА так, проект конечно вкусный, даже завидую. :)
ко вкусу добавляется горчинка сроков: я потерял кучу времени в попытках сделать это быстро работающим на MSSS, теперь надо срочно определяться выбором платформы и рисовать сроки, жуть...

А кстати в Питере есть спецы по Cache? (вопрос конечно для отдельного поста:)
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34251393
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-Serg-Какова максимальная длина BitMap индекса на один ID, если размер кластера, например равен 32000.
n=32000*8 ???
А если нужно несколько млн. позиций или млрд-ов ???
на один узел - да. только причем тут кластер? ограничение идет от длины данного.
значит надо использовать группу узлов. не думаю, что это очень удобно. хотя запас
скорости позволяет обрабатывать это достаточно безболезненно, я полагаю.
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34251422
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Stpl Sergei ObrastsovЕсли Вы собираетесь OLTP делать не на Cache, то лучше начать выбирать что-нибудь другое
и для OLAP. Связать конечно можно, но сомневаюсь, что это будет эффективно и тем более
разумно.
Как раз для oltp части и смотрю на Cache имея в виду ее "неплоские" способности, и возможность сделать на ней же multidimentional модель для использования внутри oltp.
ну да... вот такая каша :) multidimensional oltp

Sergei ObrastsovА так, проект конечно вкусный, даже завидую. :)
ко вкусу добавляется горчинка сроков: я потерял кучу времени в попытках сделать это быстро работающим на MSSS, теперь надо срочно определяться выбором платформы и рисовать сроки, жуть...

А кстати в Питере есть спецы по Cache? (вопрос конечно для отдельного поста:)
Понимаю. Еще вопрос, какую часть Cache Вы собираетесь использовать, объектную, реляционную или прямой доступ? В Питере есть конечно, я правда не могу адресовать к кому-нибудь конкретно,
может VadimF подскажет, чай у них там списки есть. У Вас большой опыт в создании OLTP/OLAP?
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34251515
Stpl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sergei ObrastsovПонимаю. Еще вопрос, какую часть Cache Вы собираетесь использовать, объектную, реляционную или прямой доступ?

После первых часов ознакомления:
- внешний интерфейс к другим системам - реляционный
- динамическая модель описания данных - объектный
- вычислительный модуль или business layer - объектный + прямой

Sergei Obrastsov
В Питере есть конечно, я правда не могу адресовать к кому-нибудь конкретно,
может VadimF подскажет, чай у них там списки есть.

ОК, повесим вопрос.

Sergei ObrastsovУ Вас большой опыт в создании OLTP/OLAP?
Если кратко то нет.
комерческих OLAP продуктов еще не было, над OLTP подобными системами работал в начале 90х, последние ~10лет работаю в фирме которая делает своеобразный софт для финансовой аналитики и бюджетирования. Последний год готовил почву для перевода всего проекта на MS платформу ASP.NET,MSSS+AS+RS+IS.... C OLAPом знаком уже более менее но совершенство приходит только с опытом.
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34251667
dials
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VadimFСтас,

А OLTP система на чем сделана?

Что касается реализации хранилищ данных и OLAP-систем, то на Cache' такие системы есть.
Посмотрите презентацию BitMap-индексы (С появлением BitMap-индексов можно более эффективно разрабатывать аналитические приложения на Caché. На занятии вы получите теоретические знания и получите практический опыт использования BitMap-индексов и приложения HyperIndex).



Не совсем тольок понятно из презентации, насколько большое падение производительности будет на операциях insert/update при использовании BitMap - индексов.
А вообще, достаточно интересные возможности появляются у каши.
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34251727
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dials VadimFСтас,

А OLTP система на чем сделана?

Что касается реализации хранилищ данных и OLAP-систем, то на Cache' такие системы есть.
Посмотрите презентацию BitMap-индексы (С появлением BitMap-индексов можно более эффективно разрабатывать аналитические приложения на Caché. На занятии вы получите теоретические знания и получите практический опыт использования BitMap-индексов и приложения HyperIndex).



Не совсем тольок понятно из презентации, насколько большое падение производительности будет на операциях insert/update при использовании BitMap - индексов.
А вообще, достаточно интересные возможности появляются у каши.
Почему сразу "падение производительности"? Эти возможности появились еще 15 лет назад. :)
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34251842
dials
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergei Obrastsov dials VadimFСтас,

А OLTP система на чем сделана?

Что касается реализации хранилищ данных и OLAP-систем, то на Cache' такие системы есть.
Посмотрите презентацию BitMap-индексы (С появлением BitMap-индексов можно более эффективно разрабатывать аналитические приложения на Caché. На занятии вы получите теоретические знания и получите практический опыт использования BitMap-индексов и приложения HyperIndex).



Не совсем тольок понятно из презентации, насколько большое падение производительности будет на операциях insert/update при использовании BitMap - индексов.
А вообще, достаточно интересные возможности появляются у каши.
Почему сразу "падение производительности"? Эти возможности появились еще 15 лет назад. :)

В таком случае, если у BitMap - индексов нет такого минуса, как падение производительности, это полноценная замена обыкновенным индексам, только с большим количеством "+"?;-)
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34251975
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dialsВ таком случае, если у BitMap - индексов нет такого минуса, как падение производительности, это полноценная замена обыкновенным индексам, только с большим количеством "+"?;-)
BitMap - специфические индексы и обеспечить ими полноценную замену обыкновенным, сиречь
сильно дифференцированным, индексам нельзя. Получится непомерное разрастание объема
и потеря в производительности, конечно. Это я просто не понял с ходу вопроса, прошу прощения.
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34252312
dials
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergei Obrastsov dialsВ таком случае, если у BitMap - индексов нет такого минуса, как падение производительности, это полноценная замена обыкновенным индексам, только с большим количеством "+"?;-)
BitMap - специфические индексы и обеспечить ими полноценную замену обыкновенным, сиречь
сильно дифференцированным, индексам нельзя. Получится непомерное разрастание объема
и потеря в производительности, конечно. Это я просто не понял с ходу вопроса, прошу прощения.

Вообще, имеет ли смысл обыкновенные индексы заменять BitMap - индексами в таблицах, с объёмами данных более миллиона записей?
Или необходимо обыкновенные индексы дополнять BitMap?
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34252453
-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-млн-в
и где это все хранить в базе т.е. как (длина строки в каше ограничена)
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34253178
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dials Sergei Obrastsov dialsВ таком случае, если у BitMap - индексов нет такого минуса, как падение производительности, это полноценная замена обыкновенным индексам, только с большим количеством "+"?;-)
BitMap - специфические индексы и обеспечить ими полноценную замену обыкновенным, сиречь
сильно дифференцированным, индексам нельзя. Получится непомерное разрастание объема
и потеря в производительности, конечно. Это я просто не понял с ходу вопроса, прошу прощения.

Вообще, имеет ли смысл обыкновенные индексы заменять BitMap - индексами в таблицах, с объёмами данных более миллиона записей?
Или необходимо обыкновенные индексы дополнять BitMap?
Опять же все зависит от от дифференциации значений индекса. Если в индексе не более 100 значений и нужен офигенно быстрый поиск, то я бы рискнул перейти на BitMap, даже на данных более миллиона, а то и 10-ти. :)
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34253179
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
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34253187
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
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34253947
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dials VadimFСтас,

А OLTP система на чем сделана?

Что касается реализации хранилищ данных и OLAP-систем, то на Cache' такие системы есть.
Посмотрите презентацию BitMap-индексы (С появлением BitMap-индексов можно более эффективно разрабатывать аналитические приложения на Caché. На занятии вы получите теоретические знания и получите практический опыт использования BitMap-индексов и приложения HyperIndex).



Не совсем тольок понятно из презентации, насколько большое падение производительности будет на операциях insert/update при использовании BitMap - индексов.
А вообще, достаточно интересные возможности появляются у каши.

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

Любой индекс замедляет операции insert/update просто наш BitMap-индекс замедляет не так сильно, как у конкурентов.
Сравнимо с обычным индексом.
Это расширяет область применения BitMap-индексов. Их стоит активно применять и в OLTP-приложениях.

Вадим
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34253948
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergei Obrastsov dials Sergei Obrastsov dialsВ таком случае, если у BitMap - индексов нет такого минуса, как падение производительности, это полноценная замена обыкновенным индексам, только с большим количеством "+"?;-)
BitMap - специфические индексы и обеспечить ими полноценную замену обыкновенным, сиречь
сильно дифференцированным, индексам нельзя. Получится непомерное разрастание объема
и потеря в производительности, конечно. Это я просто не понял с ходу вопроса, прошу прощения.

Вообще, имеет ли смысл обыкновенные индексы заменять BitMap - индексами в таблицах, с объёмами данных более миллиона записей?
Или необходимо обыкновенные индексы дополнять BitMap?
Опять же все зависит от от дифференциации значений индекса. Если в индексе не более 100 значений и нужен офигенно быстрый поиск, то я бы рискнул перейти на BitMap, даже на данных более миллиона, а то и 10-ти. :)

Чем меньше уникальных записей в проиндексированном столбце, тем лучше для BitMap-индекса.
Граница, при которой стоит использовать BitMap-индексы, не 100 уникальных значений, а 1000-2000.
Понятно, что чем меньше, тем лучше.

Важный момент. BitMap-индексы используют $Bit-функции.
За счет этого, например, обеспечивается сжатие данных индекса, с помощью $Bit-функций можно осуществлять операции над сжатыми битовыми строками, реализована оптимизация журналирования и т.д.

В реальном приложении стоит поэкспериментировать с обычными и BitMap-индексами.

Вадим
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34254054
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VadimFЛюбой индекс замедляет операции insert/update просто наш BitMap-индекс замедляет не так сильно, как у конкурентов.

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

VadimF
Сравнимо с обычным индексом.

Вы шутите?!
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34254108
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergei Obrastsov VadimFЛюбой индекс замедляет операции insert/update просто наш BitMap-индекс замедляет не так сильно, как у конкурентов.

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


На чем основывается Ваше утверждение. Помедленней на каких операциях?

Когда запускалась Cache' 5.0. делались соответствующие тесты.
Сравнивалась производительность с РСУБД, где есть подобные индексы.
Скорость при изменении данных, проиндексированных с помощью BitMap-индексов, гораздо выше, чем у конкурентов.
У них BitMap-индексы стоит использовать только в Data Warehouse, у нас в OLTP.

Sergei Obrastsov
VadimF
Сравнимо с обычным индексом.

Вы шутите?!

Нет. Опять таки проводили тестирование.

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


Вадим
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34254151
Sergei Obrastsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VadimF Sergei Obrastsov VadimFЛюбой индекс замедляет операции insert/update просто наш BitMap-индекс замедляет не так сильно, как у конкурентов.

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


На чем основывается Ваше утверждение. Помедленней на каких операциях?

На обычной логике. У нас все-таки п-код, а не ассемблер. Более того, у нас интерпретатор вдвойне, поскольку BitMap реализован через классы. Или я чего-то не знаю?

VadimF
Когда запускалась Cache' 5.0. делались соответствующие тесты.
Сравнивалась производительность с РСУБД, где есть подобные индексы.
Скорость при изменении данных, проиндексированных с помощью BitMap-индексов, гораздо выше, чем у конкурентов.
У них BitMap-индексы стоит использовать только в Data Warehouse, у нас в OLTP.

Может все-таки завеса тайны когда-нибудь приподнимется и мы узнаем с чем производилось сравнение? Потому как более всего меня беспокоит ограничение строки данных размером в 32k.
Насколько я помню, в документации по BitMap указан верхний предел для строки даже не в 260 тысяч позиций, а всего в 64. Ну а если БД выходит за этот "небольшой" размер, начинается подгонка и вычисление строк?

VadimF
Сравнимо с обычным индексом.
Sergei Obrastsov
Вы шутите?!
Нет. Опять таки проводили тестирование.
Советую посмотреть материалы старых школ и симпозиумов на эту тему.

Ну что ж не буду пока спорить, отвечу после проверки.
...
Рейтинг: 0 / 0
Написание Olap-подобного моторчика на Cache для реалтаймовой системы?
    #34254192
VadimF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sergei Obrastsov VadimF Sergei Obrastsov VadimFЛюбой индекс замедляет операции insert/update просто наш BitMap-индекс замедляет не так сильно, как у конкурентов.

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


На чем основывается Ваше утверждение. Помедленней на каких операциях?

На обычной логике. У нас все-таки п-код, а не ассемблер. Более того, у нас интерпретатор вдвойне, поскольку BitMap реализован через классы. Или я чего-то не знаю?


BitMap-индексы используют $bit-функции, которые реализованы на уровне ядра.
Я об этом писал в этой ветке.
Можно найти об этом информацию в материалах, которые я советовал посмотреть и в документации.
Такой подход и позволил очень сильно увеличить производительность.

Sergei Obrastsov
VadimF
Когда запускалась Cache' 5.0. делались соответствующие тесты.
Сравнивалась производительность с РСУБД, где есть подобные индексы.
Скорость при изменении данных, проиндексированных с помощью BitMap-индексов, гораздо выше, чем у конкурентов.
У них BitMap-индексы стоит использовать только в Data Warehouse, у нас в OLTP.

Может все-таки завеса тайны когда-нибудь приподнимется и мы узнаем с чем производилось сравнение? Потому как более всего меня беспокоит ограничение строки данных размером в 32k.
Насколько я помню, в документации по BitMap указан верхний предел для строки даже не в 260 тысяч позиций, а всего в 64. Ну а если БД выходит за этот "небольшой" размер, начинается подгонка и вычисление строк?


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

На работу 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, что соответствует размеру блока.


Sergei Obrastsov


VadimF
Сравнимо с обычным индексом.
Sergei Obrastsov
Вы шутите?!
Нет. Опять таки проводили тестирование.
Советую посмотреть материалы старых школ и симпозиумов на эту тему.

Ну что ж не буду пока спорить, отвечу после проверки.

Успехов. Будет время посмотрите и Hyperindex.
Там реализован bit-slicing. Скоро BitSlicing появится и в Cache'.
Но с Hyperindex Вы можете применять эту технологию уже в Cache' 5.0.x.

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


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