|
|
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Мне нужно реализовать базу данных под следующую задачу: Дано примерно 100 миллионов записей, каждая из которых представляет собой набор атрибутов некоего объекта. Нужно уметь находить записи с помощью многокритериального поиска по произвольному набору атрибутов, выбранных пользователем. Казалось бы классика. Но в отличие от "классической" задачи, успешно решаемой всеми реляционными СУБД, в моем случае набор атрибутов непостоянен - в процессе эксплуатации базы данных регулярно (скажем, несколько раз в неделю) добавляются новые атрибуты записей. Более того, этих атрибутов очень-очень много - единицы тысяч. Большинство из них не заполнено у большинства записей. Это очень разряженная таблица с динамически добавляемыми колонками, если говорить в терминах таблиц. И в любой момент времени пользователь может захотеть выполнить поиск по произвольным атрибутам, выбранным им самостоятельно. Для простоты предположим, что значения атрибутов это только целые числа. Система должна сохранять работоспособность при очень интенсивном потоке запросов - около 1 миллиона запросов в секунду (не опечатка). Большинство запросов пользователя возвращают ему несколько записей. Но под другие запросы (их тоже много) потенциально подпадает очень много записей. В этом случае мне нужно получить фиксированное "n" произвольных записей, соответствующих критериям поиска, не нагружая СУБД выборкой всех сотен тысяч записей, подпадающих под критерии этого запроса - иначе никакая система не справится с миллионом запросов в секунду... Так же система должна работать при очень интенсивном потоке обновлений (ориентировочно 1 миллион запросов на изменение значения атрибута в сутки). В качестве отдельной дополнительной задачи (опционально, но очень желательно) нужно уметь находить "n" записей, которые по очень простой метрике наиболее близки к заданной - например, находить "n" записей, у которых наименьшее количество расхождений (сравнение на четкое равенство) значений атрибутов с заданной проверочной записью. Другими словами - "n" записей, у которых минимальное расстояние по Хаффману с заданной записью. Какую готовую СУБД + примерную (на уровне базовых идей) организацию данных в ней (естественно я не прошу точного решения, которое стоит денег, но и не хочу получить ничем не подкрепленные ответы в стиле "Oracle решит все твои проблемы!") или какую нестандартную организацию данных Вы посоветуете для такой задачи? Стоимость СУБД и стоимость железа не имеют значения в разумных пределах. Меня интересует возможность реализации подобной системы существующими готовыми средствами или на существующей теоретической базе, даже если стоимость железа и софта составит миллионы долларов. Отдельный вопрос: существуют ли свободно продаваемые на рынке СУБД, которые масштабируются на кластеры из тысяч и десятков тысяч машин? Универсальные СУБД, которые можно просто взять и купить за деньги, а не заказать фирме разработку новой уникальной системы под свою конкретную задачу... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2006, 18:54 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Кхм.. ИМХО у Вас задача довольно специальная, и возможно объектные базы со специально разработанным кодом подойдут больше, чем субд общего назначения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2006, 20:20 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprgЗдравствуйте! Мне нужно реализовать базу данных под следующую задачу: Дано примерно 100 миллионов записей, каждая из которых представляет собой набор атрибутов некоего объекта. Нужно уметь находить записи с помощью многокритериального поиска по произвольному набору атрибутов, выбранных пользователем. Казалось бы классика. Но в отличие от "классической" задачи, успешно решаемой всеми реляционными СУБД, в моем случае набор атрибутов непостоянен - в процессе эксплуатации базы данных регулярно (скажем, несколько раз в неделю) добавляются новые атрибуты записей. Более того, этих атрибутов очень-очень много - единицы тысяч. Большинство из них не заполнено у большинства записей. Это очень разряженная таблица с динамически добавляемыми колонками, если говорить в терминах таблиц. И в любой момент времени пользователь может захотеть выполнить поиск по произвольным атрибутам, выбранным им самостоятельно. Для простоты предположим, что значения атрибутов это только целые числа. Система должна сохранять работоспособность при очень интенсивном потоке запросов - около 1 миллиона запросов в секунду (не опечатка). Большинство запросов пользователя возвращают ему несколько записей. Но под другие запросы (их тоже много) потенциально подпадает очень много записей. В этом случае мне нужно получить фиксированное "n" произвольных записей, соответствующих критериям поиска, не нагружая СУБД выборкой всех сотен тысяч записей, подпадающих под критерии этого запроса - иначе никакая система не справится с миллионом запросов в секунду... Так же система должна работать при очень интенсивном потоке обновлений (ориентировочно 1 миллион запросов на изменение значения атрибута в сутки). В качестве отдельной дополнительной задачи (опционально, но очень желательно) нужно уметь находить "n" записей, которые по очень простой метрике наиболее близки к заданной - например, находить "n" записей, у которых наименьшее количество расхождений (сравнение на четкое равенство) значений атрибутов с заданной проверочной записью. Другими словами - "n" записей, у которых минимальное расстояние по Хаффману с заданной записью. Какую готовую СУБД + примерную (на уровне базовых идей) организацию данных в ней (естественно я не прошу точного решения, которое стоит денег, но и не хочу получить ничем не подкрепленные ответы в стиле "Oracle решит все твои проблемы!") или какую нестандартную организацию данных Вы посоветуете для такой задачи? Стоимость СУБД и стоимость железа не имеют значения в разумных пределах. Меня интересует возможность реализации подобной системы существующими готовыми средствами или на существующей теоретической базе, даже если стоимость железа и софта составит миллионы долларов. Отдельный вопрос: существуют ли свободно продаваемые на рынке СУБД, которые масштабируются на кластеры из тысяч и десятков тысяч машин? Универсальные СУБД, которые можно просто взять и купить за деньги, а не заказать фирме разработку новой уникальной системы под свою конкретную задачу... CACHE 5.2 ( InterSystems ) подходит по параметрам Московское представительство : http://www.intersystems.ru/cache/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2006, 20:28 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
ModelRИМХО у Вас задача довольно специальная, и возможно объектные базы со специально разработанным кодом подойдут больше, чем субд общего назначения.Спасибо за ответ! Я понимаю, что задача специфическая, однако же сейчас уже существуют многие системы массового обслуживания, начиная от каких-нибудь сайтов типа www.ebay.com и заканчивая банковскими системами крупных банков, которые, согласен, являются уникальными системами, сделанными под свою конкретную задачу, но базовый-то слой у них есть, какая-то СУБД за ними всеми стоит, миллионы запросов в секунду молотит... Вот я и интересуюсь - созрели ли универсальные коммерческие системы до этого уровня или же любой такой сайт/проект - это уникальная разработка под одну конкретную задачу сделанная по сути с нуля с минимальным или чисто утилитарным использованием стандартных СУБД (чисто для хранения данных, например, но не для поиска)? Так же интересно, есть ли люди, которым приходилось решать конкретно задачу многокритериального поиска в сильно разряженной таблице с тысячами "столбцов" по сотням миллионов записей. Пусть и не с таким рейтом запросов... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2006, 20:36 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
MX -- ALEXCACHE 5.2 ( InterSystems ) подходит по параметрам Московское представительство : http://www.intersystems.ru/cache/Спасибо за ссылку, но у них на всех диаграммах фигурирует некий "Data Server" несущий на себе нагрузку СУБД и как можно понять из прочитанных документов - это одна-единственная машина, у которой может быть backup (для надежности). Если я прав, что тогда от нее толку? Покажите мне машину, производительности которой хватит на миллион запросов в секунду при многокритериальном поиске... Это нереально - обрабатывать такой поток одной машиной, нужно кластерное решение, причем масштабирующееся на сотни, тысячи узлов. Сегодня у меня ожидается максимум 100 миллионов записей и миллион запросов в секунду - и скажем я рискну и начну этот бизнес. :) Но через 3 года, скажем, будет 1 миллиард записей и 10 миллионов запросов в секунду. И весь бизнес накроется медным тазом, если система не сможет масштабироваться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2006, 21:00 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
есть ли атрибут, который есть у всех без исключения объектов? а насчет миллиона записей в секунду - это перегиб, даже через канал 1 Гбит/с столько не пролезет чисто физически ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2006, 21:08 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
не вы не правы. У них сотни серверов обслуживают тысячи клиентов в одной системе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.08.2006, 23:43 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> Здравствуйте! И Вам - не хворать. > Мне нужно реализовать базу данных под следующую задачу: Это неправильная постановка задачи. Вам не базу данных нужно реализовать, а построить инфраструктуру, удовлетворяющую заданным характеристикам. Выбор СУБД здесь (и тем более - структуры данных) - хм... в самом конце списка задач. Imho тиражируемого решения за озвученные деньги не существует. Начните хм... ну, например, с labs.google.com, узнаете много интересного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 02:55 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
miksoftесть ли атрибут, который есть у всех без исключения объектов?Есть и не один. Но, к сожалению, очень многие запросы не оперируют этими общими атрибутами. Для некоторых пользователей (и таких пользователей очень много) ценность представляют маленькие по объемам выборки по "хитрым и редким" атрибутам, а не по самым базовым. Базовые они могут вообще не затронуть выборкой. miksoftа насчет миллиона записей в секунду - это перегиб, даже через канал 1 Гбит/с столько не пролезет чисто физическиКонечно же речь идет о системе, в которой будут работать тысячи машин, установленных на площадках основных провайдеров мирового уровня. Естественно не может быть и речи о том, чтобы собрать траффик в миллион запросов в секунду на одной-единственной машине или даже на десятке машин. Поэтому нужна кластерная система масштаба "на тысячу нод". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 03:29 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621Это неправильная постановка задачи. Вам не базу данных нужно реализовать, а построить инфраструктуру, удовлетворяющую заданным характеристикам. Выбор СУБД здесь (и тем более - структуры данных) - хм... в самом конце списка задач.Как раз с инфраструктурой все более и менее понятно. Есть провайдеры, каналы которых образуют backbone Интернета. Они за разумные деньги позволяют разместить на своих площадках наши машины, принимающие клиентский трафик. Начать можно с малого - вообще с нескольких машин, а по мере роста количества клиентов количество машин можно плавно увеличивать и довести, скажем, до 1000 (для системы с миллионом запросов в секунду). В начале, пока система эксплуатируется экспериментально, она будет стоить "копейки", но затем количество клиентов начнет быстро расти, однако вместе с ними - и поступление денег, что окупит расширение инфраструктуры. Балансировать входящую нагрузку на машины будут DNS-серверы плюс мы можем ретранслировать запросы с перегруженных принимающих узлов на другие узлы внутри своего кластера. С точки зрения организации инфраструктуры и бизнес-модели окупающей аренду стоек и каналов у провайдеров - принципиальных проблем нет. Проблема в том, чтобы эти 1000 машин, размещенных на жирных каналах и прекрасно связанных друг с другом (или как вариант - размещенных в одном data center с жирными входящими каналами, если внутри кластера будет своя еще более скоростная сеть) заставить решать собственно содержательную задачу многокритериального поиска. Не в железе тут проблемы, не в каналах и не в бизнесе, окупающем аренду точек приема трафика (жирных каналов) и стоек. Проблема в том, что содержательно ни одна СУБД (насколько я понимаю) не потянет 1 миллион запросов в секунду при моей постановке задачи поиска в разряженной и динамически меняющейся таблице. guest_20040621Imho тиражируемого решения за озвученные деньги не существует.Imho Вы правы, но я написал в данную конференцию, чтобы убедится в этом - ведь от этого зависит принятие решений по проекту (вплоть до отказа от проекта, если он вообще технически или алгоритмически нереален). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 03:52 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg MX -- ALEXCACHE 5.2 ( InterSystems ) подходит по параметрам Московское представительство : http://www.intersystems.ru/cache/Спасибо за ссылку, но у них на всех диаграммах фигурирует некий "Data Server" несущий на себе нагрузку СУБД и как можно понять из прочитанных документов - это одна-единственная машина, у которой может быть backup (для надежности). Если я прав, что тогда от нее толку? Покажите мне машину, производительности которой хватит на миллион запросов в секунду при многокритериальном поиске... Это нереально - обрабатывать такой поток одной машиной, нужно кластерное решение, причем масштабирующееся на сотни, тысячи узлов. Сегодня у меня ожидается максимум 100 миллионов записей и миллион запросов в секунду - и скажем я рискну и начну этот бизнес. :) Но через 3 года, скажем, будет 1 миллиард записей и 10 миллионов запросов в секунду. И весь бизнес накроется медным тазом, если система не сможет масштабироваться... у них 5-6 сентября конференция (см на сайте) Будут интересные разработчики. Вам возможно надо поговорить напрямую например - системы в мобильной связи на CACHE или с представителями SP-ARM из Петербурга - они сделали нечто подобное - но конечно не на 1000 000 запросов. SP-ARM ответит четко и обосновано - толковые парни - мы давно с ними работаем по CACHE - отлично знают систему - и никогда не пойдут на авантюру - держат марку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 09:01 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg Насчет датацетнров и каналов - гляньте MSK-IX. Статистика это, конечно, не весь российский интернет, но весьма существенная его часть А вот сумма аплинков во Владивостоке - вообще копейки Я бы дал нижнюю оценку вашего трафика в 10-100 Гбит/с. И это не считая трафика по поддержанию актуальности данных на серверах... Так что, имхо, одним датацентром и DNS-балансировкой тут не обойдешься. имхо, цифра в миллион запросов в секунду - абсолютно безосновательна! в мире порядка одного миллиарда интернет-пользователей, неужели они все круглые сутки будут каждую тысячу секунд делать по запросу? Для справки - гляньте загрузку Яндекса sysprgя написал в данную конференцию, чтобы убедится в этом - ведь от этого зависит принятие решений по проекту (вплоть до отказа от проекта, если он вообще технически или алгоритмически нереален).этот проект сможет реализовать только тот, кто не знает, что он невозможен! :) и при условии, что найдет миллионы долларов на предварительные исследования... и не при текущем уровне развития интернета... PS. все сугубо мое имхо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 09:43 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
По основной задаче. Данные можно хранить в виде двух таблиц. 1. ID - идентификатор записи разреженной таблицы iAttr - номер атрибута Val - значение атрибута Индексы - (ID,iAttr), (iAttr,Val) 2. iAttr - номер атрибута Num - количество записей, содержащих этот атрибут Индекс - (iAttr) Принцип поиска записей, содержащих определенные значения произвольных атрибутов. Сначал по второй таблице ищем атрибут, который содержится в наименьшем количестве записей. Потом по этому атрибуту делаем предварительную выборку из первой таблицы. Потом по ID и остальным iAttr делаем отсев ненужного. Реализуется на чем угодно... P.S. Если у проекта так хорошо с деньгами, может и мне $50k за идею подкинете?:-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 12:38 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
miksoftимхо, цифра в миллион запросов в секунду - абсолютно безосновательна! Поддерживаю. Совершенно нереальное число. Откуда взято - непонятно. Может что-то не так с постановкой задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 12:55 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, pavelvp! Ты пишешь: pavelvp miksoftимхо, цифра в миллион запросов в секунду - абсолютно безосновательна! p> Поддерживаю. Совершенно нереальное число. p> Откуда взято - непонятно. p> Может что-то не так с постановкой задачи?нет там никакой постановки. и задачи нет. чисто теоретизмы. всё. -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 13:05 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> Как раз с инфраструктурой все более и менее понятно. ;) Инфраструктура - на всякий случай - она не только канальная. > пока система эксплуатируется экспериментально, она будет стоить "копейки" Это заблуждение. Основные затраты - это не набитые серверами шкафы и не аренда места в датацентрах (это-то как раз дешево), а программная реализация файловой системы, сервера приложений и СУБД. При условии, разумеется, что есть операционная система, которая готова с ними работать. ;)) Напрасно Вы labs.google.com проигнорировали. > ни одна СУБД Для того, чтобы приложение обеспечивало обработку 1M запросов в секунду, совсем не обязательно, чтобы отдельный экземпляр СУБД обеспечивал такую производительность. > в разряженной и динамически меняющейся таблице Да нет у Вас такой задачи. Забудьте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 14:14 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
авторДа нет у Вас такой задачи. Забудьте. я тоже сомневаюсь, что при такой постановке задачи человек вообще пойдет что-либо спрашивать, и тем более сюда, при всем уважении к этому форуму. Это задача единичного, штучного решения, вроде гугла, яндекса и т.п., которые, как правило, не используют почти ничего "штатного". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 17:09 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> вроде гугла, яндекса Не слишком правильно использовать перечисление в данном случае. Яндекс по сравнению с google - наколенная поделка. Есть Google и есть все остальные. > как правило, не используют почти ничего "штатного" Насколько мне известно, геотаргетинг у Яндекса вполне себе "штатный". Полистайте материалы последнего конкурса Яндекса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 17:18 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
miksoftЯ бы дал нижнюю оценку вашего трафика в 10-100 Гбит/с. И это не считая трафика по поддержанию актуальности данных на серверах... Так что, имхо, одним датацентром и DNS-балансировкой тут не обойдешься. Сейчас в Европе живет около 800 миллионов человек, в США около 300 миллионов, в Японии - 130 миллионов, в Южной Корее - 50 миллионов и так далее, не говоря уже об Индии (1 миллиард человек) и Китае (1.3 миллиарда человек). В Европе, в США, в Японии уже практически все люди 16...45 лет так или иначе постоянно используют Интернет (дома, на работе, в библиотеках, в интернет-кафе и т.п.), а через 5 лет человек, который не пользуется Интернетом в повседневной жизни, будет казаться таким же странным, как сейчас человек без мобильника. Кстати мобильные сервисы опять-таки будут все реализованы через IP! (это важно). Предположим, что есть некий сервис, ожидаемое число активных пользователей которого через 4-5 лет составит около 300 миллионов человек, а количество разовых посетителей может быть еще в два раза больше, где-то 600 миллионов человек. Если каждый из них в день в среднем пошлет 10 запросов, то получится трафик примерно в один миллион запросов в секунду. Конечно, нет и речи о том, что у сервиса сразу будет столько пользователей - но специфика такова, что есть смысл создавать его только в полной уверенности, что в ближайшие 5 лет компания не столкнется с проблемой взрывного роста популярности и сервис не упадет из-за неспособности наших серверов "переварить" трафик. Не должно быть именно технических проблем - они угробят всю идею. Идея этого бизнеса такова, что он должен стать именно глобальным и войти в повседневную жизнь масс. miksoftимхо, цифра в миллион запросов в секунду - абсолютно безосновательна! в мире порядка одного миллиарда интернет-пользователей, неужели они все круглые сутки будут каждую тысячу секунд делать по запросу?Через 5 лет - будут. Они будут делать эти запросы не только сидя за клавиатурой классических PC, но так же со своих мобильных телефонов, всяких гаджетов, из автомобилей и так далее. Кстати отдельное спасибо за статистику. :) miksoft sysprgя написал в данную конференцию, чтобы убедится в этом - ведь от этого зависит принятие решений по проекту (вплоть до отказа от проекта, если он вообще технически или алгоритмически нереален).этот проект сможет реализовать только тот, кто не знает, что он невозможен! :) и при условии, что найдет миллионы долларов на предварительные исследования... и не при текущем уровне развития интернета...Все когда-то начиналось как проекты, имеющие сотню пользователей, а затем НЕКОТОРЫЕ из этих компаний получили сотни миллионов пользователей. Почему бы не попытать счастья? :) Необходимое условие в данном случае - наличие технической/алгоритмической базы - так как было бы действительно глупостью делать проект, который уже через год столкнется с гораздо меньшим, но уже большим трафиком, все сайты полягут, время реакции станет неадекватным и доверие к ресурсу у пользователей будет необратимо подорвано. Я видел как загибались некоторые интересные проекты не справившись с наплывом посетителей. А затем их место занимали другие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 18:00 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
MX -- ALEXу них 5-6 сентября конференция (см на сайте) Будут интересные разработчики. Вам возможно надо поговорить напрямую например - системы в мобильной связи на CACHE Спасибо за информацию! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 18:02 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
очередной порно-движек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 18:04 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, Yo.!!! Ты пишешь: Yo.!!Y> очередной порно-движек не иначе! -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 18:05 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Last_AlienСначал по второй таблице ищем атрибут, который содержится в наименьшем количестве записей. Потом по этому атрибуту делаем предварительную выборку из первой таблицы. Потом по ID и остальным iAttr делаем отсев ненужного. P.S. Если у проекта так хорошо с деньгами, может и мне $50k за идею подкинете?:-)))Увы, тривиальные решения работают только на тривиальных задачах. Пользователь может запросить информацию по двум атрибутам, по каждому из которых есть, скажем, 10000 записей, а их пересечение - всего-навсего 100 записей. Если я буду из базы выгребать даже 10000 записей для последующего отсеивания, то мне никаких машинных мощностей не хватит при большом потоке запросов. Как я сказал в постановке задачи, многих пользователей интересуют "нетривиальные" пересечения, у которых короткий ответ, но по "ID" атрибутов это предсказать трудно - даже по самому "короткому" из них может быть достаточно много записей (не миллионы, но много). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 18:12 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621Это заблуждение. Основные затраты - это не набитые серверами шкафы и не аренда места в датацентрах (это-то как раз дешево), а программная реализация файловой системы, сервера приложений и СУБД. При условии, разумеется, что есть операционная система, которая готова с ними работать. ;)) Напрасно Вы labs.google.com проигнорировали. В том-то и дело - именно поэтому я и спрашиваю в этом форуме о существовании ГОТОВЫХ СУБД с такими характеристиками - пусть даже частично удовлетворяющих требованиям. Именно из-за четкого осознания того, что разработка соответствующего ПО самостоятельно - чрезвычайно сложная, трудоемкая и долгая в реализации задача (без гарантии успеха, кстати). А вот файловая система и ОС подойдут "любые" - сейчас это фактически просто низкий уровень, как процессор, например. Мы ставим разные процессоры в свои компьютеры, а приложения не сильно напрягаются анализом того, какой именно процессор там установлен (если система команд одна и та же, например Intel x86). До такого же уровня развития дошли и ОС, файловые системы - по большому счету (если не брать крайности) уже пофиг, какая именно ОС и какая именно современная файловая система используется ниже уровня СУБД. Собственно все упирается в саму СУБД (которая файловую систему может не использовать вовсе, а от ОС ей нужны только средства управления страничной памятью, TCP/IP и еще драйвер диска, по большому счету). guest_20040621Для того, чтобы приложение обеспечивало обработку 1M запросов в секунду, совсем не обязательно, чтобы отдельный экземпляр СУБД обеспечивал такую производительность.Это понятно, но мне лично неясно, как разделить данные и при этом не потерять возможность обрабатывать запросы с помощью СТАНДАРТНЫХ средств (даже самых развитых СУБД, представленных на рынке). Однако вопрос для меня важный, поэтому хотелось убедится, что подходящего готового решения нет. Чтобы не: 1). отказаться от проекта, который на самом деле может быть сделан, 2). не ввязываться в свою разработку в том случае, если подобные готовые движки все же существуют и могут быть куплены в готовом виде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 18:32 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
kdvя тоже сомневаюсь, что при такой постановке задачи человек вообще пойдет что-либо спрашивать, и тем более сюда, при всем уважении к этому форуму.IMHO в ex-USSR программисты быстрее всего изучают новые технологии и знают состояние дел именно в технологическим и алгоритмическом аспекте в среднем лучше, чем на Западе. Поэтому мнение форума мне очень интересно. Задавать же вопросы некоторым ведущим западным специалистам, контакты с которыми потенциально можно найти - нельзя, так как было бы глупостью вводить в суть дела их нанимателей, которые потенциально просто сделают это сами ( если они вдруг заинтересуются идеей). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 18:41 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, sysprg! Ты пишешь: sysprgпотенциально просто сделают это сами (если они вдруг заинтересуются идеей).ааааа... так у вас и идеи имеются... эвона как оно... -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 18:45 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg600 миллионов человек. Если каждый из них в день в среднем пошлет 10 запросов, то получится трафик примерно в один миллион запросов в секунду. даже если все эти 600 миллионов ломанутся к вам в один день (что я считаю абсолютно невероятным для любого сервиса в ближайшие 5 лет), то это получается около 70 тысяч запрос в секунду, но никак не миллион. sysprg miksoftэтот проект сможет реализовать только тот, кто не знает, что он невозможен! :) и при условии, что найдет миллионы долларов на предварительные исследования... и не при текущем уровне развития интернета... увы, остаюсь при своем мнении... разве что миллионы можно заменить на сотни миллионов. sysprgВсе когда-то начиналось как проекты, имеющие сотню пользователей, а затем НЕКОТОРЫЕ из этих компаний получили сотни миллионов пользователей.Это было 5-10 лет назад. Тогда зарождались Яндекс и Гугл... Посмотрите, что они представляют из себя сейчас! Особенно Гугл! а вы хотите из обогнать??? по-быстрому мне удалось найти несколько подсетей, занимаемые Гуглом: 66.102.0.0/20 72.14.192.0/18 66.249.64.0/19 64.233.160.0/19 216.239.32.0/19 это примерно 45 тысяч хостов! и Гугл сейчас выполняет значительно меньше запросов, чем миллион запросов в секунду и еще - тот же Гугл и Яндекс обладают мощными командами разработчиков (в широком смысле этого слова), которые уже не один год строят свои системы. А вам нужно найти значительно больше разработчиков не меньшей квалификации, чтобы хотя бы сравняться с лидерами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 19:13 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> я и спрашиваю в этом форуме о существовании ГОТОВЫХ СУБД Ну как бы абсолютно естественно, что их нет. Нет типовых задач - нет инструментов для их решения. > А вот файловая система и ОС подойдут "любые" Это тоже заблуждение. > пофиг, какая именно ОС и какая именно современная файловая система > используется ниже уровня СУБД Дружище, Вы бы почитали что-нибудь по этому поводу, прежде чем воздух сотрясать. > мне лично неясно, как разделить данные Кто сказал, что их нужно разделять? > хотелось убедится, что подходящего готового решения нет Это опять же неправильно заданный вопрос. Готовых компонентов системы - вагон и маленькая тележка. А готовых к продаже систем нет, что опять же естественно. Был бы спрос - было бы предложение. > готовые движки Дружище, у Вас терминология на уровне школьника, - с такими знаниями незачем лезть в разработку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 19:19 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
"Иногда, глядя с крыльца на двор и на пруд, говорил он о том, что как бы хорошо было, если бы вдруг от дома провести подземный ход или через пруд выстроить каменный мост, на котором были бы по обеим сторонам лавки, и чтобы в них сидели купцы и продавали разные мелкие товары, нужные для крестьян" (С) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 19:21 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
кстати, еще мысль про Гугл и Яндекс - при поиске они дают приблизительный ответ, т.е. не гарантируются ни точность, ни воспроизводимость поиска! И если часть данных по какой-то причине в данный момент недоступна, но сервера оперируют тем, что у них есть. а в обсуждаемой задаче про это не говорится, т.е. поиск должен быть точным? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 19:22 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
miksoft sysprg600 миллионов человек. Если каждый из них в день в среднем пошлет 10 запросов, то получится трафик примерно в один миллион запросов в секунду. даже если все эти 600 миллионов ломанутся к вам в один день (что я считаю абсолютно невероятным для любого сервиса в ближайшие 5 лет), то это получается около 70 тысяч запрос в секунду, но никак не миллион.Через 5 лет все мобильные устройства (телефоны, прочие гаджеты) будут постоянно подключены к Интернету и все интеллектуальные сервисы на них будут реализованы over IP. Если Вы скажете, что это нереально - посмотрите, например, на развитие IP-телефонии. 5 лет назад этот рынок рассматривали как перспективный, но все же не шло речи о том, что IP-телефония убьет обычную. Сейчас миллионы людей уже вообще не имеют у себя обычных телефонных линий, вообще все long-distance call идут через IP (даже если пользователь об этом не догадывается) и не только fixed телефония уже исчезает как класс, но и мобильные телефоны свои voice-сервисы скоро будут делать через VoIP, а не по своим древним протоколам. Точно так же будет и с прочими мобильными сервисами, все они будут реализованы over IP и все мобильные устройства перманентно будут иметь доступ к Интернету (если их хозяин пожелает им воспользоваться - сможет сделать это в любой момент). А теперь скажите мне, сколько пользователей мобильных телефонов в мире? :) Дайте им интересный сервис - и в эпоху тотального подключения всех мало-мальски развитых стран к Интернету Вы получите многие сотни миллионов клиентов. Особенно если стоить им Ваши услуги будут копейки (а некоторые будут бесплатны). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 19:35 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprgВы получите многие сотни миллионов клиентов.только этих клиентов придется делить с сотнями и тысячами других аналогичных сервисов, начиная с монстров типа Гугла, и заканчивая мелкими региональными провайдерами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 19:42 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Это только мысли или у тебя помимо мыслей есть ещё и деньги? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 19:43 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
2 sysprg Это только мысли или у тебя помимо мыслей есть ещё и деньги? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 19:44 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
pavelvp 2 sysprg Это только мысли или у тебя помимо мыслей есть ещё и деньги?нету у него ничего... иначе бы не на форуме прожектёрством занимался, а профессионалов нанял... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 19:52 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
miksoftнету у него ничего... иначе бы не на форуме прожектёрством занимался, а профессионалов нанял... професионалов для порно-движка ? оригинально ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 20:20 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
miksoftи еще - тот же Гугл и Яндекс обладают мощными командами разработчиков (в широком смысле этого слова), которые уже не один год строят свои системы.Важно понмнить - так было не всегда. miksoftА вам нужно найти значительно больше разработчиков не меньшей квалификации, чтобы хотя бы сравняться с лидерами.Если бы эта логика была правильной, то того же google или, скажем, ICQ, eBay и прочих просто не существовало бы. Как и Microsoft, кстати. Впрочем мы уходим в обсуждение offtopic-а - что такое бизнес и почему маленькие компании регулярно "выносят" с рынка "монстров". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 20:21 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Странно все это. 1. Вместо того, чтобы запустить проект для много меньшей нагрузки и начать зарабатывать деньги, автор сотрясает воздух. 2. автор действительно надеется, что люди уже обладающие такими знаниями будут ими делиться? 3. На мой взгляд, количество запросов в 1М/с необосновано. 4. Дальше, больше... автор планирует сделать сервис, который за 3 минуты обработает больше запросов, чем живет человек в России. За 30 - всех китайцев... Еще за 20 - индусов.... Ну там останутся дальше комары да блошки всякие. Ладно... все это шутки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 20:26 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg miksoftА вам нужно найти значительно больше разработчиков не меньшей квалификации, чтобы хотя бы сравняться с лидерами.Если бы эта логика была правильной, то того же google или, скажем, ICQ, eBay и прочих просто не существовало бы. Как и Microsoft, кстати. Впрочем мы уходим в обсуждение offtopic-а - что такое бизнес и почему маленькие компании регулярно "выносят" с рынка "монстров". странно, что ж до сих пор никто не "вынес" никого из приведенного списка? "Вынесите", пожалуйста, Microsoft! Возможно, тогда я стану вашим пользователем :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 20:31 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621 sysprgпофиг, какая именно ОС и какая именно современная файловая система используется ниже уровня СУБД Дружище, Вы бы почитали что-нибудь по этому поводу, прежде чем воздух сотрясать.Вот только не нужно надувать щеки и строить из себя "крутого", фамильярничая. Файловую систему вообще обычно не используют когда нужна скорость, работая с raw разделами на дисках - именно для ускорения работы. Даже на mainframe файловую систему в СУБД не используют по назначению. От ОС же требуется по сути только драйвер дисков (работающих в режиме raw доступа), страничный механизм памяти (опять-таки - более тонкое распределение памяти - самописное во всех движках СУБД), виртуализация процессора (threads, для утилизации мультипроцессорности) и еще TCP/IP стек быстрый. Так что по сути пофиг, какая именно ОС используется - все современные ОС примерно одинаково хорошо справляются с этой базовой работой. Про мэйнфреймы IBM с их уникальным особенным железом и операционными системами за миллион долларов сдаваемыми в аренду можно мне не рассказывать. guest_20040621 sysprgмне лично неясно, как разделить данныеКто сказал, что их нужно разделять?Логика. Разделение позволяет избежать перегрузки отдельного узла - распараллелить работу. guest_20040621А готовых к продаже систем нет, что опять же естественно. Был бы спрос - было бы предложение.Вот это я и хотел выяснить. Сайты производителей СУБД переполнены описаниями всяких жаб и прочей чешуи, докопаться же до информации о том, что же собственно они могут выжать из железа в своей основной области деятельности (в поиске информации в базе) - очень туманна. Тем более нет информации о том, над чем они сейчас работают. Вот благодаря подсказке в форуме удалось выяснить, что ближе всех по своим характеристикам мне подходит IBM DB2, которая реально демонстрировалась на больших кластерах и действительно работает на них и есть отзывы об этом (удалось найти статьи). Увы, система IBM не лишена недостатков - она использует подход sharing nothing, но это все же намного лучше, чем то, что показывают другие. Интересные наработки у Oracle - но похоже у них проблемы с масштабируемостью на большие кластеры. guest_20040621Дружище, у Вас терминология на уровне школьника, - с такими знаниями незачем лезть в разработку.См. первое предложение в ответе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 20:51 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
miksoftкстати, еще мысль про Гугл и Яндекс - при поиске они дают приблизительный ответ, т.е. не гарантируются ни точность, ни воспроизводимость поиска! И если часть данных по какой-то причине в данный момент недоступна, но сервера оперируют тем, что у них есть. а в обсуждаемой задаче про это не говорится, т.е. поиск должен быть точным?Увы, точным - так как иногда это будет связано с деньгами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 20:52 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
много лет назад я сказал в беседе с одним старым, опытным, и высокопоставленным телекомщиком - "канальная коммуникация must die!" На что он мне ответил - "не дождетесь!" Затем я долго работал в телекоме, и теперь я уже совсем не так категоричен :) Вы привикли, что если нет света, воды, тепла, то вы всегда можете снять трубки и набрать кто 911б кто 01-02-03 IP не убъет канальную коммуникацию в обозримом будущем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 20:55 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
miksoft sysprgВы получите многие сотни миллионов клиентов.только этих клиентов придется делить с сотнями и тысячами других аналогичных сервисов, начиная с монстров типа Гугла, и заканчивая мелкими региональными провайдерами.Опять мы про бизнес. :) Но раз уж зашел разговор, то тут есть два соображения: - Некоторые сервисы ценны именно своей глобальностью и будучи растащенными по отдельным провайдерам или территориям они или полностью теряют смысл, или сильно теряют привлекательность в глазах клиента. Поэтому их следует реализовывать как глобальные в плане географии и метода подключения к Сети с самого начала. - Если повезет быть первыми - то потом другим тысячам сайтов придется пытаться урвать у тебя кусочек рынка, а не тебе с ними тягаться. :) Вспомните - когда-то Google не существовало, когда-то ICQ не существовало, когда-то eBay не существовало и даже Microsoft когда-то не существовало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 20:59 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Yo.!!очередной порно-движек неа - Big Brother ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 21:01 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, Anton! Ты пишешь: Anton Yo.!!очередной порно-движек AD> неа - Big Brother учитывая ту порнографию, которую они учинили с ЕГАИС, не удивлюсь... -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 21:05 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
ggvмного лет назад я сказал в беседе с одним старым, опытным, и высокопоставленным телекомщиком - "канальная коммуникация must die!" На что он мне ответил - "не дождетесь!" Затем я долго работал в телекоме, и теперь я уже совсем не так категоричен :) Вы привикли, что если нет света, воды, тепла, то вы всегда можете снять трубки и набрать кто 911б кто 01-02-03 IP не убъет канальную коммуникацию в обозримом будущем.У меня дома нет fixed телефона вообще, как и у миллионов других людей. Если мне нужно будет позвонить в экстренную службу, а IP-провайдер полег - я воспользуюсь мобильным телефоном. Который хотя и не использует сейчас IP, но использует пакетную передачу данных. А через некоторое время будет использовать классические VoIP технологии (по мнению ведущих западных аналитиков). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 21:08 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
miksoftиначе бы не на форуме прожектёрством занимался, а профессионалов нанял...Hint: подскажите мне, как проще всего отличить профессионала от распальцованного "специалиста" с тысячей сертификатов ищущего нереальную зарплату? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 21:19 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
если у вас нет фиксированной линии - то это не значит, что пакетная коммутация окончательно победила :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 21:25 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
pavelvp 2 sysprg Это только мысли или у тебя помимо мыслей есть ещё и деньги?Деньги эфемерны и не в них счастье, так какой смысл обсуждать в форуме интересные проблемы в разрезе денег? Деньги приходят к тому, кто готов их взять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 21:27 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg Вот благодаря подсказке в форуме удалось выяснить, что ближе всех по своим характеристикам мне подходит IBM DB2, которая реально демонстрировалась на больших кластерах и действительно работает на них и есть отзывы об этом (удалось найти статьи). Увы, система IBM не лишена недостатков - она использует подход sharing nothing, но это все же намного лучше, чем то, что показывают другие. Интересные наработки у Oracle - но похоже у них проблемы с масштабируемостью на большие кластеры. "shared nothing" архитектура - это именно то, что позволяет мастшабироваться б.м. линейно на кластерах. С введением общего диска (RAC) появляется проблема синхронизации кэшей. И проблема эта , как теоретически доказано, является принципиальной (можно поискать исследования на эту тему). Именно поэтому O. не показывает ничего выдающегося на кластерах. А об использовании данной архитектуры в тысячных кластерах можно забыть сразу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 21:35 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
AAronСтранно все это. 1. Вместо того, чтобы запустить проект для много меньшей нагрузки и начать зарабатывать деньги, автор сотрясает воздух.Деньги поначалу поступают медленнее, чем растет нагрузка. Если стартовать не имея запаса прочности, то весь проект будет провален из-за того, что элементарно поляжет под нагрузкой и дискредитирует себя в глазах своих пользователей. Но тут же на это место придут другие, как бывает всегда. Поэтому в данном случае нужно сначала проработать ядро системы на опережение (и в бизнесе, так и в технологии) и уже затем запускать сервис. Я видел, как погибали интересные бизнесы, которые не справились с нагрузкой - и на их место приходили другие ребята. Представляете как было обидно тем, первым? AAron2. автор действительно надеется, что люди уже обладающие такими знаниями будут ими делиться?Какими знаниями? Я же не прошу технического задания для программистов или описания структуры базы данных. Меня интересует опыт участия и примерные соображения как это сделать, интересуют имеющиеся технические средства (готовые СУБД) и алгоритмические идеи - если тут присутствуют представители "академической среды". AAron3. На мой взгляд, количество запросов в 1М/с необосновано.Сейчас - согашусь, да. Но нужно думать о будущем, если ты в проекте участвуешь не просто формально, за зарплату. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 21:38 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
ggvесли у вас нет фиксированной линии - то это не значит, что пакетная коммутация окончательно победила :)Если сами телефонные компании гонят long-distance трафик через IP, то даже не смотря на то, что у "традиционных" абонентов пока что еще стоят обычные телефоны - это все равно говорит о том, что пакетная коммуникация победила. :) Зачастую уже дешевле платить за IP, чем за классическую fixed телефонную линию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 21:42 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprgВот благодаря подсказке в форуме удалось выяснить, что ближе всех по своим характеристикам мне подходит IBM DB2, которая реально демонстрировалась на больших кластерах и действительно работает на них и есть отзывы об этом (удалось найти статьи). Увы, система IBM не лишена недостатков - она использует подход sharing nothing, но это все же намного лучше, чем то, что показывают другие. Интересные наработки у Oracle - но похоже у них проблемы с масштабируемостью на большие кластеры. Читаем мнение Оракла по этому поводу (PDF). Вот линк на документ, сравнивающий подходы Оракла и IBM (в URL-e есть скобки, которые мешают оформить его правильно на форуме): http://www.oracle.com/technology/products/database/clustering/pdf/twp_rac_10g_vs_db2_v8.2[1].pdf Я еще раз отошлю на www.tpc.org Кто-нибудь, найдите мне успешное применение кластеров DB2 для OLTP !!! Желательно на 1024 нодах Кстати, было бы интересно посмотреть на аналогичное сравнение от IBM, может кто видел - киньте линк, плиз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 22:32 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> Вот только не нужно надувать щеки ;)) Дружище, Вам учиться нужно, а не фигню в форумах писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.08.2006, 23:18 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Anton DemidovКстати, было бы интересно посмотреть на аналогичное сравнение от IBM, может кто видел - киньте линк, плиз. Что нашел на их сайте: www-306.ibm.com/software/data/db2/benchmarks/111704.html www-306.ibm.com/software/data/highlights/scalecluster.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 06:32 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Anton Demidov sysprgВот благодаря подсказке в форуме удалось выяснить, что ближе всех по своим характеристикам мне подходит IBM DB2, которая реально демонстрировалась на больших кластерах и действительно работает на них и есть отзывы об этом (удалось найти статьи). Увы, система IBM не лишена недостатков - она использует подход sharing nothing, но это все же намного лучше, чем то, что показывают другие. Интересные наработки у Oracle - но похоже у них проблемы с масштабируемостью на большие кластеры. Читаем мнение Оракла по этому поводу (PDF). Вот линк на документ, сравнивающий подходы Оракла и IBM (в URL-e есть скобки, которые мешают оформить его правильно на форуме): http://www.oracle.com/technology/products/database/clustering/pdf/twp_rac_10g_vs_db2_v8.2[1].pdf Я еще раз отошлю на www.tpc.org Кто-нибудь, найдите мне успешное применение кластеров DB2 для OLTP !!! Желательно на 1024 нодах Кстати, было бы интересно посмотреть на аналогичное сравнение от IBM, может кто видел - киньте линк, плиз. Забавно, что Oracle только рассуждает о теоретических преимуществах их подхода, а IBM публикует результаты TPC-C ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 08:36 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg Сейчас - согашусь, да. Но нужно думать о будущем, если ты в проекте участвуешь не просто формально, за зарплату. Если думать о будущем, то надо принимать во внимание что планируется глобальный проект, а это означает тысячи серверов распределенных по всему миру. Наличие такого количества серверов уменьшает нагрузку на каждый отдельно взятый сервер до приемлемых сотен запросов в секунду. Сотовой связью сейчас тоже пользуются миллиарды, но никто же не требует супермощности от отдельной базовой станции. Я практически уверен что любой сервер БД через пять лет потянет вышеописанный сценарий. Даже MySQL. Если правильно настроить load balancing и репликацию. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 09:01 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg[Увы, тривиальные решения работают только на тривиальных задачах. Пользователь может запросить информацию по двум атрибутам, по каждому из которых есть, скажем, 10000 записей, а их пересечение - всего-навсего 100 записей. Если я буду из базы выгребать даже 10000 записей для последующего отсеивания, то мне никаких машинных мощностей не хватит при большом потоке запросов. Как я сказал в постановке задачи, многих пользователей интересуют "нетривиальные" пересечения, у которых короткий ответ, но по "ID" атрибутов это предсказать трудно - даже по самому "короткому" из них может быть достаточно много записей (не миллионы, но много). Тривиальное решение было придумано в курилке за пять минут в рамках существующих СУБД. Идея проекта интересна. Но ядро придется писать с 0 (некоторые наработки по этой теме у меня имеются, так что принципиальных проблем не вижу). В-принципе есть мысли по практической реализации подобной системы даже на современном железе, но обсуждать это в общедоступном форуме считаю глупым. Так что, если хотите - пишите письма, адрес моего почтового ящика - в профиле. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 10:24 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Выбегалло Забавно, что Oracle только рассуждает о теоретических преимуществах их подхода, а IBM публикует результаты TPC-C уважаемый, протрите глаза ;) у бимеров были когда-то кластерные тесты, я помню, видать теперь им за них стыдно. пока только оракл показывает реальную работу кластеров (e-bay, amazon и т.п.) и только оракл показывает тесты на кластерах в ERP задачах (sap parallel, oebs) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 10:27 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
miksoftстранно, что ж до сих пор никто не "вынес" никого из приведенного списка? А вот Digital вынесли :-((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 12:47 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, pavelvp! Ты пишешь: pavelvpp> А вот Digital вынесли ибо нефик было связываться с Билли. а то продали Катлера со товарищи, да поверили сказкам про то, что Alpha + NT будет на каждом столе... кстати, та же история повторяется с Борландом... -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 12:58 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprgДеньги эфемерны и не в них счастье, так какой смысл обсуждать в форуме интересные проблемы в разрезе денег? Деньги приходят к тому, кто готов их взять. А... Значит ты готов. Тогда ещё вопрос. А есть ли кто-то, кто готовых их отдать? Просто поучаствовать в таком проекте хотелось бы. Но если денег нету... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 12:59 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
pavelvp sysprgДеньги эфемерны и не в них счастье, так какой смысл обсуждать в форуме интересные проблемы в разрезе денег? Деньги приходят к тому, кто готов их взять. А... Значит ты готов. Тогда ещё вопрос. А есть ли кто-то, кто готовых их отдать? Код: plaintext А у тебя есть конкретные идеи для участия? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 13:02 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
до тех пор, пока результаты TPC-C на одной SMP машине лучше, чем на кластерах (а последнее время становятся еще все дешевле и дешевле), IBM нет смысла делать тесты на кластерах. В OLTP пока нет такой задачи, которую бы не решил последний p5. Могу продположитть, что ситуация не начнет меняться до тех пор, пока такая задача не появится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 13:05 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Last_AlienА у тебя есть конкретные идеи для участия? Для начала могу предложить автору топика посмотреть в сторону Teradata... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 13:18 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
pavelvpДля начала могу предложить автору топика посмотреть в сторону Teradata... Я не автор, но посмотрел. Ну и...? Ну РСУБД, ну 1024 ноды. Прочитай внимательно первый авторский пост. Какие идеи по решению основной задачи в рамках классической СУБД? Сделать таблицу с 1000 ключами и 10^8 записями? Думаю не потянет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 13:34 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Last_Alien Прочитай внимательно первый авторский пост. Какие идеи по решению основной задачи в рамках классической СУБД? Из первого поста совершенно ясно что автору сначала надо прослушать курсы по проектированию БД. Уже после слов "с динамически добавляемыми колонками" можно отправлять в сад. Ты же сам привел решение в рамках классической СУБД, которое было отвергнуто под абсолютно надуманным предлогом. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 14:00 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Из первого поста совершенно ясно что автору сначала надо прослушать курсы по проектированию БД. Уже после слов "с динамически добавляемыми колонками" можно отправлять в сад. Ты же сам привел решение в рамках классической СУБД, которое было отвергнуто под абсолютно надуманным предлогом. Posted via ActualForum NNTP Server 1.3 Автор мыслит креативно. И этого с него достаточно. Если бы он был проф.админом-программистом БД, он бы с этими вопросами сюда не пришел. Если у него есть возможность выбить финансирование под проект и решить др.организационные вопросы - то какие к нему претензии? Про то мое решение - см.мой комент выше. Предлог не надуманный. Идеи по более глубокому и качественному решению у меня уже есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 14:20 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
:) Задача в усеченном варианте: - критерии только на строгое равенство - количество результирующих записей относительно невелико Решение в самом общем виде: 1. Кластер брокеров запросов (производительность, достаточная для обработки 1М запросов в секунду :) ). 2. Группа кластеров хранения атрибутов, на каждый атрибут свой кластер. Храним: - индекс "[значение атрибута]->[кол-во объектов]+[список идентификаторов объекта]". - индекс "[идентификатор]->[значение атрибута]" 3. Порядок работы: - Кластер брокеров запросов получает запрос, разбирает критерии и посылает запросы по отдельным критериям соответствующим кластерам атрибутов. - Получает от них информацию по количеству идентификаторов с данным значением соответствующего атрибута, составляет список опроса. - По списку опроса запрашивает у соответствующего кластера с мин. кол-вом объектов список их идентификаторов. - Список идентификаторов последовательно рассылается оставшимся кластерам для корректировки на вхождение идентификаторов. - Итоговый список идентификаторов посылается на оставшиеся атрибутные кластеры для получения значений атрибутов. - Результат отправляется на клиент. Вроде все параллелится. И кажется, что время отклика линейно зависит от кол-ва кластеров и узлов в них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 14:37 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg pavelvp 2 sysprg Это только мысли или у тебя помимо мыслей есть ещё и деньги?Деньги эфемерны и не в них счастье, так какой смысл обсуждать в форуме интересные проблемы в разрезе денег? Деньги приходят к тому, кто готов их взять. Если кому что-то с автором было непонятно, должно было стать понятным после этой фразы. ИМХО, автор, вам лучше с бабульками на лавочке вести разговоры - продуктивнее получится. А судьбы мира на загаженной кухне мы все давно умеем решать вообще без СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 14:51 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
_niсht_schissen_:) Вроде все параллелится. И кажется, что время отклика линейно зависит от кол-ва кластеров и узлов в них. Слишком много железа. Посмотри критику автором моего первоначального варианта. Если у тебя выборки по двум отдельным атрибутам будут по 100тыс.записей, а их пересечение - 100 записей, то как будет вести себя система? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 14:55 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Random_Goodman sysprg pavelvp 2 sysprg Это только мысли или у тебя помимо мыслей есть ещё и деньги?Деньги эфемерны и не в них счастье, так какой смысл обсуждать в форуме интересные проблемы в разрезе денег? Деньги приходят к тому, кто готов их взять. Если кому что-то с автором было непонятно, должно было стать понятным после этой фразы. ИМХО, автор, вам лучше с бабульками на лавочке вести разговоры - продуктивнее получится. А судьбы мира на загаженной кухне мы все давно умеем решать вообще без СУБД. Уважаемый, а Вы думать и изрекать свои мысли начинаете только после того, как Вам стобаксовой бумажкой перед носом покрутят?:-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 14:58 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Last_Alien Уважаемый, а Вы думать и изрекать свои мысли начинаете только после того, как Вам стобаксовой бумажкой перед носом покрутят?:-))) Именно так. Или если они у меня уже есть и мне наплевать кто что скажет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 15:01 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Вы-то сами понимаете о чем тут речь? Автор собирается построить дворец куруче всех на свете, только денюжек нету... Инфантилизм это ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 15:03 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Random_GoodmanВы-то сами понимаете о чем тут речь? Автор собирается построить дворец куруче всех на свете, только денюжек нету... Инфантилизм это Автор поставил глобальную задачу, что в этом плохого? Если Вы ищете работу за деньги, идите в форум Работа... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 15:06 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Last_Alien Автор поставил глобальную задачу, что в этом плохого? Если Вы ищете работу за деньги, идите в форум Работа... Я и так работаю за деньги, спасибо Просто я неоднократно видел уже таких вот "генераторов идей в плоскости теории" и даже по молодости пытался на них пахать бесплатно или за гроши Эффект один и тот же, причм всегда - сначала что-то делают, потом выясняется что денег это не приносит, потому что остальные давно сделали лучше и что вообще для того чтобы просто кого-то хоть немного заинтересовать нужно вбухать кучу денег Проект забрасывается. а у генератора рождается очередная "гениальная" мысль, и все сначала Это же ведь не образовательный проект, где получил грант и купил дом яхту и дом на канарах а в отдельное от отдыха время че-то делаешь Это надо спонсора найти. а спонсора нынче днем с огнем не сыщещь, особенно на такой проект В Яндекс вбухивали очень неслабые деньги 5 лет прежде чем он просто начал окупаться Поэтому задача совершенно другая: КАК сначала найти спонсора, а потом уж задаваться вопросом о СУБД, которая как здесь правильно заметили отнюдь не на первом месте по важности Тем более что таких проектов никто не делал и опыта просто нет, а если и есть то не поделятся (вряд ли тут тусуются пьяные в попу отцы-программисты из Гугла или Яндекса) поэтому вопрос просто некорректен А вообще, прежде чем фантазировать о ядерной войне надо сначала раздобыть боеголовку Наоборот только дети поступают ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 15:18 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, Last_Alien! Ты пишешь: Last_AlienLA> Автор поставил глобальную задачу, что в этом плохого? автор плавает в теме как ЗОЛОТО в проруби. базовых знаний, и тем более, опыта, практически 0. почему бы ему не помечтать о лунном садоводстве? или о ландышах на марсе. практически, выхлоп будет идентичен. -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 15:21 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий автор плавает в теме как ЗОЛОТО в проруби. базовых знаний, и тем более, опыта, практически 0. почему бы ему не помечтать о лунном садоводстве? или о ландышах на марсе. практически, выхлоп будет идентичен. подписываюсь, это стихи ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 15:23 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
При удвоении мощьностей процессоров каждые 1,8 года через 5 лет это будет уже в ~8 раз. Причем в индустрии кажется начинается очередная революция - массовое распаралеливание и децентрализация. Чего на пацана накинулись? Задача интересная, пусть сегодня и неразрешимая (кажется). Эпл в гараже начинался. Лари вообще идею чужую подхватил и до ума довел. Все когда то начинается, причем когда "специалистов, имеющих опыт в данной области" еще нет и в помине. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 15:33 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, casmith! Ты пишешь: casmithc> Эпл в гараже начинался. а Моцарт написал свою первую симфонию, когда ему было 7-8 лет. но ведь он никого не спрашивал КАК?.. -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 15:41 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
casmithПри удвоении мощьностей процессоров каждые 1,8 года через 5 лет это будет уже в ~8 раз. Причем в индустрии кажется начинается очередная революция - массовое распаралеливание и децентрализация. Чего на пацана накинулись? Задача интересная, пусть сегодня и неразрешимая (кажется). Эпл в гараже начинался. Лари вообще идею чужую подхватил и до ума довел. Все когда то начинается, причем когда "специалистов, имеющих опыт в данной области" еще нет и в помине. подпесалсо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 15:44 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Random_Goodman, у тебя ведь денег никто не просит. По существу вопроса ты ничего сказать не можешь. Так к чему весь этот оффтоп? Тебе не повезло по молодости с работодателями? Сочувствую. Но автор топа к этому никакого отношения не имеет и тебя за уши в проект не тянет :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 15:48 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
casmithЭпл в гараже начинался. Лари вообще идею чужую подхватил и до ума довел. Все когда то начинается, причем когда "специалистов, имеющих опыт в данной области" еще нет и в помине. Вот именно потому что они взяли и тихо собрали в гараже то что было всем нужно, а не ходили и не спрашивали всех "какой именно конфигурации гараж нам нужен. чтобы убить IBM" они это и сделали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 15:49 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
casmith Задача интересная, пусть сегодня и неразрешимая (кажется). Брось, она даже сегодня решается, как я уже писал выше. Вот только придется отвлечься от маниловщины и точно выяснить вопросы которые я же задавал в соседней теме. Хотя бы первый. Ну еще и параметры запросов неплохо бы уточнить. Чтобы можно было структуру подгонять под допустимое время отклика (только не надо говорить "требуется мгновенно"). Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 15:49 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Random_Goodman casmithЭпл в гараже начинался. Лари вообще идею чужую подхватил и до ума довел. Все когда то начинается, причем когда "специалистов, имеющих опыт в данной области" еще нет и в помине. Вот именно потому что они взяли и тихо собрали в гараже то что было всем нужно, а не ходили и не спрашивали всех "какой именно конфигурации гараж нам нужен. чтобы убить IBM" они это и сделали. Если ты не понял, этот топ может закончится сбором тима, который тихо решит эту задачу. А остальные просто забудут о ней лет на 5... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 15:51 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Last_AlienЕсли ты не понял, этот топ может закончится сбором тима, который тихо решит эту задачу. А остальные просто забудут о ней лет на 5... Может, но не закончится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 15:54 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov casmith Задача интересная, пусть сегодня и неразрешимая (кажется). Брось, она даже сегодня решается, как я уже писал выше. Вот только придется отвлечься от маниловщины и точно выяснить вопросы которые я же задавал в соседней теме. Хотя бы первый. Ну еще и параметры запросов неплохо бы уточнить. Чтобы можно было структуру подгонять под допустимое время отклика (только не надо говорить "требуется мгновенно"). Posted via ActualForum NNTP Server 1.3 На критику твоего решения ты почему-то не отреагировал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 15:54 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, Last_Alien! Ты пишешь: Last_AlienLA> Если ты не понял, этот топ может закончится сбором тима, LA> который тихо решит эту задачу. LA> А остальные просто забудут о ней лет на 5...какого нах тыма... видели мы таких шапкозакидателей. проект NOGANO, не слышал? где вы хлопцы? ау-у!!! -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 15:57 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий Привет, Last_Alien! Ты пишешь: Last_AlienLA> Если ты не понял, этот топ может закончится сбором тима, LA> который тихо решит эту задачу. LA> А остальные просто забудут о ней лет на 5...какого нах тыма... видели мы таких шапкозакидателей. проект NOGANO, не слышал? где вы хлопцы? ау-у!!! -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 Дай сцылку, посмотрю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 16:02 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, Last_Alien! Ты пишешь: Last_AlienLA> Дай сцылку, посмотрю.у них был сайт nagano.ru сейчас этот домен свободен. видимо альтруизм и шапкозакидательство не позволили хлопцам оплатить поддержку домена ЗЫ: не путать с IBM WebSphere Performance Pack (aka Nagano) -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 16:09 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Last_Alien На критику твоего решения ты почему-то не отреагировал... Ты меня с кем-то спутал. Я не предлагал никаких решений. Но могу и предложить. В стандартной "Тенцеровской" двухтабличной схеме "сущность - аттрибуты" запрос Код: plaintext 1. 2. 3. 4. 5. убыванию релевантности. Заставить этот вопрос работать приемлемо быстро - задача подбора СУБД и железа. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 16:10 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, Last_Alien! Ты пишешь: Last_AlienLA> Дай сцылку, посмотрю.вот последнее, что от них осталось... http://www.delphiplus.org/articles/press_release/nagano.html -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 16:11 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЕсли думать о будущем, то надо принимать во внимание что планируется глобальный проект, а это означает тысячи серверов распределенных по всему миру. Наличие такого количества серверов уменьшает нагрузку на каждый отдельно взятый сервер до приемлемых сотен запросов в секунду. Сотовой связью сейчас тоже пользуются миллиарды, но никто же не требует супермощности от отдельной базовой станции. Совершенно правильно. Однако даже при наличие у нас такой инфраструктуры (скажем тысячи серверов, раскиданных по миру, с очень скоростными каналами связи между ними) и имея теоретическую возможность раскидать между ними работу (предположим, что задача создания кластера решена) все равно можно упереться в тупик, если нет алгоритма для эффективного поиска в пространстве с большой (к тому же переменной) размерностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 16:11 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий Привет, Last_Alien! Ты пишешь: Last_AlienLA> Дай сцылку, посмотрю.вот последнее, что от них осталось... http://www.delphiplus.org/articles/press_release/nagano.html -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 Ну и что??? Сходи на sourceforge.org, там сотни (если не тысячи) умерших и закончившихся выкидышем проектов. Это не повод, чтобы не делать ничего нового, или заниматься оффтопом и мешать другим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 16:17 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, Last_Alien! Ты пишешь: Last_AlienLA> Ну и что??? Сходи на sourceforge.org, там сотни (если не тысячи) LA> умерших и закончившихся выкидышем проектов. Это не повод, LA> чтобы не делать ничего нового, или заниматься оффтопом и мешать LA> другим.хорошему танцору, яйца не мешают. а плохому, даже хороший хирург помочь не в силах... -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 16:21 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg упереться в тупик, если нет алгоритма для эффективного поиска в пространстве с большой (к тому же переменной) размерностью. Если предыдущий приведенный мною запрос не справится, релевантность только полная а количество критериев ограничено парой дюжин то self-join с правильными индексами обеспечит работу влет. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 16:22 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
pavelvpДля начала могу предложить автору топика посмотреть в сторону Teradata...Спасибо, посмотреть, конечно, можно - да вот только совсем непонятно, как это поможет собственно решить содержательную часть проблемы - сделать поиск по нескольким выбранным пользователем критериям быстрым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 16:24 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg Совершенно правильно. Однако даже при наличие у нас такой инфраструктуры (скажем тысячи серверов, раскиданных по миру, с очень скоростными каналами связи между ними) и имея теоретическую возможность раскидать между ними работу (предположим, что задача создания кластера решена) все равно можно упереться в тупик, если нет алгоритма для эффективного поиска в пространстве с большой (к тому же переменной) размерностью. Алгоритм есть. Только здесь я его выкладывать не буду :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 16:26 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
_niсht_schissen_- Кластер брокеров запросов получает запрос, разбирает критерии и посылает запросы по отдельным критериям соответствующим кластерам атрибутов. - Получает от них информацию по количеству идентификаторов с данным значением соответствующего атрибута, составляет список опроса. - По списку опроса запрашивает у соответствующего кластера с мин. кол-вом объектов список их идентификаторов. - Список идентификаторов последовательно рассылается оставшимся кластерам для корректировки на вхождение идентификаторов. - Итоговый список идентификаторов посылается на оставшиеся атрибутные кластеры для получения значений атрибутов. - Результат отправляется на клиент.Ваше решение - это продвинутый вариант решения, предложенного здесь Last_Alien . Решение хорошее для маленькой базы, однако для большой с ним будут проблемы. Предположим, что по одному "популярному" атрибуту у нас в среднем в запрос попадает 2 миллиона записей, а по другому, который в каждом запросе свой - в среднем по 10 тысяч записей. Интуитивно ясно, что если у нас есть 100 миллионов записей и у них очень много разных атрибутов, то такая картина вполне реальна. Один атрибут соответствует какой-то базисной, часто используемой характеристике - и по нему у нас в среднем выпадает по паре миллионов записей при поиске. Другой атрибут - уже более интересный, по нему у нас всего-навсего 10 тысяч записей. А пересечение - вообще маленькое, в 100 записей. За этим пересечением и гонится пользователь - на умении его искать мы и делаем свой бизнес... И вот мы получили компактный список на 10 тысяч записей с одной машины. Но теперь нам нужно "проредить" его пользуясь длинным списком на 2 миллиона элементов. Даже 10 тысяч прямых проб в этом списке займут много времени, даже если он целиком в памяти... А если он еще и популярен, его многие пользователи в своих запросах указывают - тогда работа с этим длинным списком станет "бутылочным горлом" системы и станет лимитировать скорость ее работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 16:40 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Last_AlienПрочитай внимательно первый авторский пост. Какие идеи по решению основной задачи в рамках классической СУБД? Сделать таблицу с 1000 ключами и 10^8 записями? Думаю не потянет. Не знаю откуда взялись 1000 ключей, но это как раз для Teradata. Именно для таких задач она и разработана. Правда нифига не "слабосвязанный" кластер ей нужен, а нормальная MPP. Но архитектурно именно под такие вещи заточена - хеш-секционирование с перманентной привязкой данных к узлу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 16:44 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Last_AlienЕсли у тебя выборки по двум отдельным атрибутам будут по 100тыс.записей, а их пересечение - 100 записей, то как будет вести себя система?Да, это еще более удачный пример, чем в моем предыдущем сообщении - симметрично два больших списка и короткое пересечение между ними. О чем бы не шла речь в моей исходной задаче, но когда у нас 100 миллионов записей и 1000 атрибутов - такое компактное пересечение двух длинных списков вполне вероятно. Как я сказал в постановке задачи - именно за компактными пересечениями и гонится наш пользователь - наверное, в будущем собственно за подобные задачи и будут платить деньги. И еще за поиск "ближайших" записей по заданному шаблону. Классический же поиск по заранее обдуманным и проиндексированным по указанию разработчика фиксированным атрибутам, дающий 10 тысяч записей в ответе, все менее интересен. Поэтому обсудить задачу поиска в разряженной таблице с динамически добавляемыми колонками (или в многомерном пространстве переменной размерности, кому такая терминология ближе) интересно даже в отрыве от конкретных проектов. Это будущее в развитии СУБД. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 16:51 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
а вот помнится год-два назад был тут такой serg99 - собирался свою СУБД написать и вроде почти уже написал... но вот тут неожиданно всплыл - как и два года назад уже есть прототип. Подождём еще два года чем-то ситуация напоминает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 16:52 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, SergSuper! Ты пишешь: SergSuperS> а вот помнится год-два назад был тут такой serg99 - собирался свою СУБД S> написать и вроде почти уже написал... S> но вот тут неожиданно всплыл - как и два года назад уже есть прототип. S> Подождём еще два года S> чем-то ситуация напоминаетнапоминает Шуклина. на "Мембране"... тьфу-тьфу-тьфу... а где он, кстати? что-то давно он саморекламой не занимался... -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 16:54 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Random_GoodmanПоэтому задача совершенно другая: КАК сначала найти спонсора, а потом уж задаваться вопросом о СУБД, которая как здесь правильно заметили отнюдь не на первом месте по важностиСобственно этот подход и плодил пустые дот-комы до конца 2001 года - тогда народ сначала находил спонсора (инвестора), а затем вдруг оказывалось, что они не знают, как сделать то, за что взялись . Конец у всех, кто начинает с поиска спонсора без видения, как он решит задачу, всегда один - разорение. Да, еще есть программисты-стервятники, которые в таких проектах до разорения предпринимателя, нашедшего инвесторов, успевают поотсасывать из него зарплаты по 3-5K$ в месяц и вовремя смыться, чтобы поработать где-нибудь еще. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 17:03 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЕсли предыдущий приведенный мною запрос не справится, релевантность только полная а количество критериев ограничено парой дюжин то self-join с правильными индексами обеспечит работу влет.Предположим есть записи, характеризующиеся некоторыми атрибутами и этих записей много, как говорилось в постановке задачи - порядка 100 миллионов. Пусть пользователь хочет поискать те записи, у которых пара атрибутов строго равна указанным значениям. Вот такая простая задачка. Но при таком большом числе записей интуитивно ясно (и в проблемной области так оно и есть), что, скорее всего, найдется много записей, у которых данный атрибут равен данному значению. Скажем - 10 тысяч записей вдоль одного атрибута и 10 тысяч вдоль другого. А пересечение у них может быть очень компактным - быть может 100, а то и 10 записей! Собственно за этим пересечением и "охотится" наш пользователь, подавая запрос... На умении искать такие пересечения мы делаем деньги. :) Как нам быстро найти пересечение, не перебирая 10 тысяч записей движением вдоль только одного атрибута? Если мы будем перебирать 10 тысяч записей двигаясь вдоль какого-то атрибута - то мы прогрузим работой весь кластер, так как (скорее всего) эти 10 тысяч записей окажутся размазанными по всем машинам кластера... Нам нужен поиск, быстро сходящийся к нужной области многомерного пространства - без подъема в память всех записей вдоль одного из атрибутов. Ладно, это еще ничего - тут можно пересечь списки записей, которые возможно будут компактными и будут храниться на нескольких машинах. Современные базы типа DB2 и Oracle так и сделают, при наличии отдельных индексов по атрибутам. Может быть - при наличии индекса по паре {ID атрибута, значение} в Вашем примере. Но представьте себе, что вдоль одного из атрибутов у нас 2 миллиона записей, а вдоль другого - 10 тысяч. И опять-таки пересечение между ними - в 100 записей. В этом случае пересекать списки не получится - так как один из них очень длинный (2 миллиона элементов) и наверняка он размазан по всему кластеру. Или же хранящая его машина будет перегружена работой (особенно если он "популярный" - участвует во многих запросах). Собственно больше всего меня интересует база данных, которая умеет решать эту задачу, или алгоритм ее решения, или мысли по этому алгоритму. DB2 или Oracle, например, даже потенциально будучи интересными в плане масштабируемости, тут ничем не помогут IMHO, так как в них просто в принципе нет способов индексации адекватных этой задаче. У них только списки да bitmaps. Атрибуты (колонки в виртуальной разряженной таблице, размерности пространства) добавляются динамически в процессе работы - поэтому классические способы индексирования встроенные в саму базу типа DB2 или Oracle тут не подходят. И никто не знает, какие пары (или, скажем, тройки) атрибутов будут интересны пользователю, чтобы заранее построить по ним объединенные индексы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 17:17 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg...да вот только совсем непонятно, как это поможет собственно решить содержательную часть проблемы - сделать поиск по нескольким выбранным пользователем критериям быстрым. Отвечаю. Именно на такие запросы заточена эта СУБД. Если конечно Вы сами понимаете то, о чём говорите :-\ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 17:18 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
pavelvpОтвечаю. Именно на такие запросы заточена эта СУБД. Если конечно Вы сами понимаете то, о чём говорите :-\Каким образом она может быть заточена под такие запросы, если в ней нет никаких методов для индексации многомерных данных, все возможные виды индекса - это индексы по заранее выбранной упорядоченной группе атрибутов или по какой-то заранее специфицированной выборке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 17:29 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprgСкажем - 10 тысяч записей вдоль одного атрибута и 10 тысяч вдоль другого. А пересечение у них может быть очень компактным - быть может 100, а то и 10 записей! Собственно за этим пересечением и "охотится" наш пользователь, подавая запрос... Если объём данных очень велик и его динамика неизвестна, а количество атрибутов (если это конечно атрибуты??? (атрибуты отношения), что у меня вызывает серьёзные сомнения...) не ограничено и непредсказуемо, то ваша задача не имеет решения. Нормально распараллелить работу можно только при наличии условий/критериев параллелизма. Если же их изначально нет... В исходной "постановке", в какой уж есть :-), задача не параллелится. Я уже задавал эти вопросы, но они были проигнорированы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 17:35 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg...группе атрибутов или по какой-то заранее специфицированной выборке? Вы сначала определитесь, что есть в Вашем понимании атрибут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 17:48 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
pavelvp sysprgСкажем - 10 тысяч записей вдоль одного атрибута и 10 тысяч вдоль другого. А пересечение у них может быть очень компактным - быть может 100, а то и 10 записей! Собственно за этим пересечением и "охотится" наш пользователь, подавая запрос... Если объём данных очень велик и его динамика неизвестна, а количество атрибутов (если это конечно атрибуты??? (атрибуты отношения), что у меня вызывает серьёзные сомнения...) не ограничено и непредсказуемо, то ваша задача не имеет решения. Нормально распараллелить работу можно только при наличии условий/критериев параллелизма. Если же их изначально нет... В исходной "постановке", в какой уж есть :-), задача не параллелится. Я уже задавал эти вопросы, но они были проигнорированы. Но гугл то как-то подобные вещи делает... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 17:53 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
SergSuperНо гугл то как-то подобные вещи делает... Ничего подобного гугл не делает. Начнём с того, что он не обрабатывает миллион запросов в секунду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 17:56 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprgСобственно этот подход и плодил пустые дот-комы до конца 2001 года - тогда народ сначала находил спонсора (инвестора), а затем вдруг оказывалось, что они не знают, как сделать то, за что взялись . Конец у всех, кто начинает с поиска спонсора без видения, как он решит задачу, всегда один - разорение. Да, еще есть программисты-стервятники, которые в таких проектах до разорения предпринимателя, нашедшего инвесторов, успевают поотсасывать из него зарплаты по 3-5K$ в месяц и вовремя смыться, чтобы поработать где-нибудь еще. :)Уважаемый, вы передергиваете и ставите все с ног на голову. Это проблемы спонсора а не того кто что-то для него делал. Ваша же задача - финансирования - от этого легче не становится. Если спонсор вложится и програет - вам все равно. Если спонсор не вложится - однозначно проиграете вы. Какой смысл обсуждать, подойдет ли для вашей задачи скажем MS SQL, если для ее решения требуется (предположим) 8-и процессорный блэйд, который, вкупе с лицензиями на MS SQL вам без спонсора не потянуть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 18:08 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
У автора на самом деле только один выход: написать общую концепцию и с ней ходить по инстатнциям. Потому что если вдруг найдется спонсор даст деньги но с условием что СУБД скажем может быть любой кроме МС СКЛ, а автор давно настроился на МС СКЛ и уже что-то делает - проект тут же накроется медным тазом. автор пойдет гордо искать спонсора дальше. В результате ни проекта. ни денег, ни радости\горя у спонсора по поводу вложения. Иначе говоря. ничего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 18:25 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Random_GoodmanУважаемый, вы передергиваете и ставите все с ног на голову. Это проблемы спонсора а не того кто что-то для него делал.Что такое репутация и доверие Вам известно? В инвестиционном бизнесе это ключевые качества. Вы просто смотрите на мир глазами человека, которому главное успеть получить свои бабки до того, как дело развалится. Если так относится к инвестору (типа мы ничего не сделали - но это его проблемы, сам дурак, что вложил в нас деньги) - то Ваш первый проект будет и последним. Кстати, кто такой "спонсор" я не знаю, никогда не видел человека, который бы безвозмездно вкладывал деньги в IT-проекты. Есть инвесторы - это люди, которые вкладывают деньги в обмен на долю в компании. Random_GoodmanЕсли спонсор вложится и програет - вам все равно.Увы, но это рассуждения наемника, который работает чисто за зарплату и которому действительно все равно, что будет в итоге (и это определяет и эффективность работы). Но тот, кто платит ему зарплату из инвесторских денег, теряет свою репутацию, когда бизнес разоряется. Поэтому в инвестиционные проекты стараются не брать людей с такой идеологией. Random_GoodmanКакой смысл обсуждать, подойдет ли для вашей задачи скажем MS SQL, если для ее решения требуется (предположим) 8-и процессорный блэйд, который, вкупе с лицензиями на MS SQL вам без спонсора не потянуть?Вас вообще базы данных интересуют или чужие деньги? :) Если базы данных, то давайте обсудим как решить исходную задачу. Если деньги - извините, вы обратились не по адресу, я не "спонсор". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 18:45 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg Anton DemidovКстати, было бы интересно посмотреть на аналогичное сравнение от IBM, может кто видел - киньте линк, плиз. Что нашел на их сайте: www-306.ibm.com/software/data/db2/benchmarks/111704.html www-306.ibm.com/software/data/highlights/scalecluster.html Первая ссылка на тестирование, результаты которого ИВМ позднее отозвала. Вторая от 2003 года. Вот например тестирование от DELL 10-ти нодового Оракла. ВыбегаллоЗабавно, что Oracle только рассуждает о теоретических преимуществах их подхода, а IBM публикует результаты TPC-C Вы бредите. У IBM нет ни одного кластерного результата в TPC-C ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 18:53 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg Dimitry SibiryakovЕсли предыдущий приведенный мною запрос не справится, релевантность только полная а количество критериев ограничено парой дюжин то self-join с правильными индексами обеспечит работу влет.Предположим есть записи, характеризующиеся некоторыми атрибутами и этих записей много, как говорилось в постановке задачи - порядка 100 миллионов. Пусть пользователь хочет поискать те записи, у которых пара атрибутов строго равна указанным значениям. Вот такая простая задачка. Но при таком большом числе записей интуитивно ясно (и в проблемной области так оно и есть), что, скорее всего, найдется много записей, у которых данный атрибут равен данному значению. Скажем - 10 тысяч записей вдоль одного атрибута и 10 тысяч вдоль другого. А пересечение у них может быть очень компактным - быть может 100, а то и 10 записей! Собственно за этим пересечением и "охотится" наш пользователь, подавая запрос... На умении искать такие пересечения мы делаем деньги. :) Как нам быстро найти пересечение, не перебирая 10 тысяч записей движением вдоль только одного атрибута? Если мы будем перебирать 10 тысяч записей двигаясь вдоль какого-то атрибута - то мы прогрузим работой весь кластер, так как (скорее всего) эти 10 тысяч записей окажутся размазанными по всем машинам кластера... Нам нужен поиск, быстро сходящийся к нужной области многомерного пространства - без подъема в память всех записей вдоль одного из атрибутов. Ладно, это еще ничего - тут можно пересечь списки записей, которые возможно будут компактными и будут храниться на нескольких машинах. Современные базы типа DB2 и Oracle так и сделают, при наличии отдельных индексов по атрибутам. Может быть - при наличии индекса по паре {ID атрибута, значение} в Вашем примере. Но представьте себе, что вдоль одного из атрибутов у нас 2 миллиона записей, а вдоль другого - 10 тысяч. И опять-таки пересечение между ними - в 100 записей. В этом случае пересекать списки не получится - так как один из них очень длинный (2 миллиона элементов) и наверняка он размазан по всему кластеру. Или же хранящая его машина будет перегружена работой (особенно если он "популярный" - участвует во многих запросах). Собственно больше всего меня интересует база данных, которая умеет решать эту задачу, или алгоритм ее решения, или мысли по этому алгоритму. DB2 или Oracle, например, даже потенциально будучи интересными в плане масштабируемости, тут ничем не помогут IMHO, так как в них просто в принципе нет способов индексации адекватных этой задаче. У них только списки да bitmaps. Атрибуты (колонки в виртуальной разряженной таблице, размерности пространства) добавляются динамически в процессе работы - поэтому классические способы индексирования встроенные в саму базу типа DB2 или Oracle тут не подходят. И никто не знает, какие пары (или, скажем, тройки) атрибутов будут интересны пользователю, чтобы заранее построить по ним объединенные индексы. Извините за вторжение. Долго читал этот топик и все никак не мог понять, что же конкретно хочет и ищет автор. Но вот у него мелькнули слова "На умении искать такие пересечения мы делаем деньги" и вообще словами "анализ данных" повеяло. Может вам нужен типа такой продукт http://www.sybase.ru/Syb/products/databases/sybaseiq/iq_12_5.htm И вообще, помотреть в сторону хранилищ данных и анализа, я Sybase в качестве примера привел. Это должно быть как раз то что Вам надо. Только будьте готовы к тому , что основная работа здесь будет это именно граммотно спроектировать такое хранилище под вашу задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 18:54 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
pavelvpЕсли объём данных очень велик и его динамика неизвестна, а количество атрибутов (если это конечно атрибуты??? (атрибуты отношения), что у меня вызывает серьёзные сомнения...) не ограничено и непредсказуемо, то ваша задача не имеет решения.Хорошо, поясню на очень простом примере, придуманном "на лету". Предположим, у нас есть 100 миллионов товаров. Для каждого товара определен тип (например, "книга", "фильм" или "автомобиль"). Для книг и фильмов так же известен их язык ("русский", "английский" и т.п.). Для любого товара так же указан город, где его продают (например, "Нью-Йорк" или "Москва"). В базе есть 10 тысяч наименований книг. Есть 100 тысяч товаров, имеющих отношение к русскому языку. Есть 2 миллиона товаров, которые продаются в Нью-Йорке. Но при этом в Нью-Йорке продается всего-навсего 100 книг на русском языке. Собственно их и нужно найти. Задача была бы тривиальной, если бы мы строили базу данных конкретно под продажу книг и заранее знали, какие у них есть атрибуты и какие запросы интересны пользователю. Но тогда вообще не стоило бы обращаться с подобной задачей ни в какую конференцию, искать под нее новейшие решения (готовые СУБД) и т.п. Так как любая современная СУБД прекрасно справилась бы с ней. Всю не тривиальность реальной задаче (и этой вымышленной задачке) придает то, что таких атрибутов, как в данном примере "тип товара", "город", "язык" - их около тысячи. И более того - эти атрибуты добавляются динамически, по мере развития проблемной области. И мы не знаем заранее, какие именно сочетания характеристик заинтересуют пользователя. Классические базы данных в чистом виде здесь вообще неприменимы - так как их алгоритмы поиска в приведенном мной примере в лучшем случае пойдут от 10 тысяч книг и будут каждую из них через индексы или напрямую тестировать на тему соответствия другим критериям запроса. Но они как минимум совершат 10 тысяч обращений к хранилищу данных. Мне нужна система, которая в данном трехмерном пространстве быстро локализовалась бы в той его узкой области, где лежит 100 искомых записей. Не поднимая много других данных - как можно меньше. И (это важно!) не сдохла бы, когда размерность пространства с трех возрастет до 1000 измерений (атрибутов). pavelvpНормально распараллелить работу можно только при наличии условий/критериев параллелизма. Если же их изначально нет......то система должна автоматически находить их без участия человека. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 19:28 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprgКлассические базы данных в чистом виде здесь вообще неприменимы - так как их алгоритмы поиска в приведенном мной примере в лучшем случае пойдут от 10 тысяч книг и будут каждую из них через индексы или напрямую тестировать на тему соответствия другим критериям запроса. Но они как минимум совершат 10 тысяч обращений к хранилищу данных. Блядть, да хватит уже чушь гнать. Индексная алгебра давно изобретена и успешно используется. Начиная с настольных фокспро и аксеса. Может перестанете Рашмора изобретать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 19:33 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg я все-таки не понимаю, что же именно вы хотите здесь найти, техническое решение? если да, то где постановка задачи? Если отталкиваться от примера с товарами, то ничего сложного я в задаче не вижу, если не кидаться в крайности типа миллиона запросов в секунду. Я делал фрагмент большой БД, который построен примерно так, как в примере. При количестве значений атрибутов порядка 35 тысяч и количестве отношений товар-значение_атрибута порядка 10 миллионов никаких проблем с производильностью в Оракле у меня не было, причем даже без применения партиционирования. В MySQL пришлось повозиться, но тоже получилсоь вполне потребно. Думаю, на хорошем серваке на моих объемах данных вполне реально добиться выполнения сотен или даже тысяч запросов в секунду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 19:44 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
miksoftя все-таки не понимаю, что же именно вы хотите здесь найти Он здесь пытается изобрести алгоритм, используемый со времен FoxPro под MS DOS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 19:46 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprgКлассические базы данных в чистом виде здесь вообще неприменимы - так как их алгоритмы поиска в приведенном мной примере в лучшем случае пойдут от 10 тысяч книг и будут каждую из них через индексы или напрямую тестировать на тему соответствия другим критериям запроса. Но они как минимум совершат 10 тысяч обращений к хранилищу данных. Классические базы данных пересекут несколько битвекторов и и прочитав только нужные страницы с данными отдадут ответ... Очень быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 19:47 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
antandДолго читал этот топик и все никак не мог понять, что же конкретно хочет и ищет автор. Но вот у него мелькнули слова "На умении искать такие пересечения мы делаем деньги" и вообще словами "анализ данных" повеяло. Может вам нужен типа такой продукт http://www.sybase.ru/Syb/products/databases/sybaseiq/iq_12_5.htmСпасибо за ссылку, с интересом прочитал описание! Все отлично, но они строят индексы только по отдельным атрибутам (колонкам), более же сложные индексы нужно создавать вручную. Значит на моих запросах эта система будет работать медленно, если не изучить очень хорошо предметную область и не построить все мыслимые комплексные индексы самостоятельно. А это не всегда возможно сделать, если заниматься этим вручную. Однако радует, что кто-то уже работает над идеей динамического и столь же легкого, как добавление строки, добавления новых столбцов в таблицу. antandИ вообще, помотреть в сторону хранилищ данных и анализа, я Sybase в качестве примера привел. Это должно быть как раз то что Вам надо. Только будьте готовы к тому , что основная работа здесь будет это именно граммотно спроектировать такое хранилище под вашу задачу.Да, я смотрел описания некоторых систем для хранилищ данных и анализа данных. Но они или ориентированы на статику (а в моей задаче речь идет о постоянно меняющейся в реальном времени базе и естественно нужна поддержка транзакций) или же они реализуются как аналитические надстройки поверх традиционных реляционных СУБД (типа DB2, Oracle), то есть проблемы быстроты поиска в многомерном пространстве остаются теми же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 19:59 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
pavelvpКлассические базы данных пересекут несколько битвекторов и и прочитав только нужные страницы с данными отдадут ответ... Очень быстро.Возьмем тот же пример, который я уже приводил - по одному атрибуту мы имеем 2 миллиона записей из 100 миллионов, по другому - 10 тысяч. И вот база данных возьмет этот битовый вектор, в котором 2 миллиона единиц, общей длиной в 100 миллионов битов (компрессия тут не сильно поможет, так как мы имеем довольно плотное распределение единиц) и пересечет его с коротким компрессированным битовым вектором (если движек поддерживает компрессию битмапов). Во что это выливается по быстродействию? В обработку 100m / 8 = примерно 11 мегабайтов данных. Если этот атрибут (по которому у нас 2 миллиона записей подпадает под запрос) популярный у пользователей, и многие пользователи его указывают в своих запросах, то мы на каждый из запросов будем перехреначивать (или хотя бы читать из памяти и передавать на другой узел кластера, чтобы не грузить одну машину превращая ее в "бутылочное горло"!) 11 мегабайтов данных, пересекая их с другим аналогичным (только разряженным) индексом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 20:11 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Ну детский сад какой-то... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 20:21 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
miksoftя все-таки не понимаю, что же именно вы хотите здесь найти, техническое решение? если да, то где постановка задачи?Да фиг с ним, с техническим решением. Во-первых, я не отслеживаю детально положение дел в области устройства баз данных, а на этом форуме много специалистов по новейшим ведущим коммерческим СУБД - и меня заинтересовало текущее состояние дел. Чтобы не изобретать велосипед и купить готовую систему, если она уже создана разработчиками IBM, Oracle, Sybase, Microsoft или еще кем-то. Во-вторых, традиционно считается, что в России (ex-СССР) очень сильная академическая среда, куча специалистов по алгоритмам и т.п. Почему бы не ожидать, что те из них, кто занимается базами данных - тусуются на этом форуме, а не только в своем университете или еще где-то. Тогда от них можно было бы получить обзор современного состояния дел в алгоритмике поиска в многомерных пространствах, какие-то ценные советы, наводки на пути решения проблемы. Не инженерные, но алгоритмические идеи. В-третьих, по более простым темам здесь людям дают ценные советы, с помощью которых они решают свои проблемы. Значит тут есть хорошие специалисты-практики, которые работают с самыми разными задачами. Я подумал, что если не брать скорость обработки, то задача-то эта должна всплывать и в других проектах - а значит, у кого-то может быть хоть какой-то опыт решения подобных проблем на больших объемах данных, например (но не с такой скоростью). Учесть чужой опыт (в том числе негативный) всегда полезно при проектировании своей системы. Конечно, было ожидаемо, что поняв масштабы задачи сразу кто-то скажет: "тут без реальных бабок на стол и контракта на работу никаких советов дать невозможно". И как на любом другом форуме, найдется пара распальцованных ламеров, которые разведут флейм на тему моего умственного развития. Но это неизбежные издержки общения. :) Кое-какую ценную информацию я уже собрал и думаю, что обсуждение можно продолжать дальше - с теми, кто представляет себе внутренее устройство СУБД и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 20:32 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
pavelvpНу детский сад какой-то...Глядя на эту реплику возникает прямой вопрос - Вы вообще представляете себе "внутреннюю кухню" СУБД, как она устроена изнутри, или для Вас это "черный ящик" и знания об индексах ограничиваются практикой использования готовой программы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 20:35 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
2 sysprg ))))))))))) Забавный вы ! Подрастайте скорее, что бы было кем ЧАЛ-а заменить :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 20:38 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, sysprg! Ты пишешь: sysprgs> Глядя на эту реплику возникает прямой вопрос - s> Вы вообще представляете себе "внутреннюю кухню" СУБД, s> как она устроена изнутри, или для Вас это "черный ящик" s> и знания об индексах ограничиваются практикой s> использования готовой программы?жжжжошЪ мальчик, ты даже не догадываешься кого ты ламером обозвал... не, граждане, это цирк! ей Богу! -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 20:41 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprgпоиска в многомерных пространствахя пока вижу лишь двумерное пространство, которое большинству современным СУБД вполне по силам. sysprgНе инженерные, но алгоритмические идеи.Почитайте, как работает оракловый оптимизатор. Его идеи на два порядка превосходят те, которые вы здесь высказывали. sysprgу кого-то может быть хоть какой-то опыт решения подобных проблем на больших объемах данных, например (но не с такой скоростью). Учесть чужой опыт (в том числе негативный) всегда полезно при проектировании своей системы.Опыт есть. Что дальше? sysprgдумаю, что обсуждение можно продолжать дальше - с теми, кто представляет себе внутренее устройство СУБД и т.п.Думаете они будут читать вам лекции о современной алгоритмике в СУБД? сильно сомневаюсь! Для решения такого рода задач надо хорошо разбираться хотя бы в основах теории БД и, очень желательно, хотя бы в одной СУБД, чего у вас, извините, не видно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 20:47 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийне, граждане, это цирк! ей Богу! +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 20:49 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
To all opponents: ---------------------------------------------------------------------- Давайте остановимся в каких-то неконструктивных разборках кто из нас круче и просто вспомним "основы". ---------------------------------------------------------------------- Человечество придумало множество структур данных для очень эффективного решения проблемы поиска информации в большом массиве записей по одному конкретному полю (атрибуту записи) - особенно, если это поле - первичный ключ. Существует множество самых разных организаций индексов, которые ориентированы на разные типы атрибутов и на разные задачи поиска. Например, простые инвертированные списки, B-деревья, битовые карты, хеш-таблицы и их сочетания. Так же не составляет труда построить эффективно работающий индекс для комплексного ключа, который представляет собой упорядоченное множество атрибутов (полей) собранных вместе. Но для этого мы должны заранее знать особенности распределения значений ключей в базе и типы запросов, которые подает пользователь. Однако, задача поиска по произвольным полям , выбранным пользователем в процессе работы системы, не решается хорошо через элементарные поиски по отдельным полям и объединение результатов этих поисков пересечением списков или битовых карт. Не важно, как именно организованы индексы - битовые маски это, B-деревья или что-то иное - если они построены для каждого поля в отдельности , то поиск записей, подпадающих под сложный запрос, включающий несколько полей сразу - будет неэффективным в общем случае . Это прописная истина, известная со времен какого-нибудь первого издания книжки Кнута про сортировку и поиск. Не существует в природе и не может существовать алгоритма, который бы сделал эффективным поиск сразу по нескольким полям с использованием ТОЛЬКО отдельных индексов, построенных по конкретным отдельным полям. Чтобы эффективно искать по произвольному, заранее не зафиксированному при проектировании базы набору полей, нам нужно рассматривать запись как вектор в многомерном пространстве, координатами которого являются значения этих самых полей. Или же нужно искать другую абстракцию, которая учитывает именно ВЗАИМНОЕ СОЧЕТАНИЕ значений полей, а не смотрит на каждое поле записи в ОТДЕЛЬНОСТИ, в отрыве от значений других полей. Это - прописные истины. Поэтому, прежде чем обвинять меня в ламерстве, разберитесь, пожалуйста, с довольно четко и в разных формах описанной постановкой задачи. И не предлагайте решения по сведению 1000-мерного пространства к двумерному через тривиальную укладку в две таблицы. Есть куча примеров задач, где даже при маленькой размерности любая попытка эффективного поиска в большой базе данных при построении индексов по ОТДЕЛЬНЫМ полям будет неэффективной. И нельзя построить индекс по одному упорядоченному набору полей, чтобы ускорить произвольный поиск - так как пространство в общем случае изотропное вдоль каждого из измерений, все они равнозначны и фиксируя порядок, мы создаем неэффективность в поиске. Нужен именно пространственный или какой-то еще более хитрый индекс. Они существуют (R-Tree, GiST, rotating hyperplane и т.п.), но страдают от проблемы "взрыва размерности", необходимости статической предобработки или менее эффективны, чем линейный поиск. Здесь же еще ситуация усложняется ПЕРЕМЕННОЙ размерностью пространства - атрибуты добавляются в процессе работы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 21:21 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Дык прямо и скажи. Хочу Сферического Коня В Вакууме(СКВВ). Или Обощенный Решатель Задач с Речевым Вводом-Выводом(ОРЗсРВВ). И тебя ответят прямо. СКВВ и ОРЗсРВВ не существует в природе и принципиально существовать не могут. А потом зададут Основной Вопрос Славянской Философии(ОВСФ): а нафига ? И от до тех пор пока ты на него внятно не ответишь - дельного совета не получишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 21:28 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Anton Demidov sysprg Anton DemidovКстати, было бы интересно посмотреть на аналогичное сравнение от IBM, может кто видел - киньте линк, плиз. Что нашел на их сайте: www-306.ibm.com/software/data/db2/benchmarks/111704.html www-306.ibm.com/software/data/highlights/scalecluster.html Первая ссылка на тестирование, результаты которого ИВМ позднее отозвала. Вторая от 2003 года. Вот например тестирование от DELL 10-ти нодового Оракла. ВыбегаллоЗабавно, что Oracle только рассуждает о теоретических преимуществах их подхода, а IBM публикует результаты TPC-C Вы бредите. У IBM нет ни одного кластерного результата в TPC-C Еще более забавно, что кластерный результат для TPC-C всего один - от Оракла. http://%5Dhttp://www.tpc.org/tpcc/results/tpcc_perf_results.asp?resulttype=cluster%5B/url] И в общем зачете он занимает 5е место, уступив (очень сильно) DB2 v9, DB2 v 8.2, и немного MS SQL Server и самому себе - в некластерном варианте. http://]http://www.tpc.org/tpcc/results/tpcc_perf_results.asp Никакое тестирование IBM не отзывала - вторая строчка в TCP-C это оно и есть. Еще одно забавное место - там, где у Оракла по вашей ссылке начинаются непонятки (Fig 9, Transactions per second, начиная с 8 машин в кластере, непонятки усугубляются при 10ти машинах) - Dell тестирование прекращает и ничтоже сумяшесе объявляет линейное масштабирование аж до 17 машин. За такое в приличном обществе канделябром по морде полагается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 21:31 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
А почему Вы, sysprg, говорите про "индекс по одному упорядоченному набору полей" ? И не уточняете - сколько в среднем "атрибутов" имеют не пустые значения в каждой Вашей "динамической записи" ? Может всего 5 (5!=120). Проведите простейший эксперимент по поддержке n! сочетаний при индексировании "динамических записей", где n - число непустых атрибутов. Что касается "добавления атрибутов в процессе работы", то это ничего не усложняет, если всегда индексируются все сочетания. Можно подумать об "интеллекте", основанном на простых статистиках, и не индексировать "маловостребованные" сочетания (при необходимости проиндексировать). И если уж распределять нагрузку, то именно по индексированию сочетаний. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 22:03 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Блин, Ктулху разбудили, мать вашу... Что ж так орать-то ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 22:13 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprgКстати, кто такой "спонсор" я не знаю, никогда не видел человека, который бы безвозмездно вкладывал деньги в IT-проекты. Есть инвесторы - это люди, которые вкладывают деньги в обмен на долю в компании. Зато я видел компании-спонсоры. Например фармацевтические. Спонсоров дофига у opensource проектов - начиная от поддержки крупными корпорациями (хотя и отнюдь не всегда безвозмездно) и заканчивая кнопочкой "donate" на сайте, на которую зачастую жмут куда чаще, чем русский человек может себе представить без саркастической умешки, увы. Увы, но это рассуждения наемника, который работает чисто за зарплату и которому действительно все равно, что будет в итоге (и это определяет и эффективность работы).Вы вообще работали когда-нибудь с наемниками? Наемник - это человек, который любит и ценит процесс свой работы. И чем больше ему платят, тем больше он будет вкалывать, потому что ему это нравится. Думаете, я редко на работе засиживаюсь до упора? А если вы не можете собрать нормальную команду наемников - это ваши проблемы, а не проблемы наемника или инвестора (хотя финансовые - и его тоже). Проще всего пойти в интситут и нанять студентов - глаза горят энтузиазмом, готовы работать по ночам.... наш институт помню так пару раз решил сделать... Вас вообще базы данных интересуют или чужие деньги? :) Если базы данных, то давайте обсудим как решить исходную задачу. Конечно, деньги. Причем не чужие, а свои, и чужие+метод как сделать их своими и при этом желательно не своровать. А вы что подумали? СУБД интересуют? Конечно. Это же часть плана. как заработать деньги :-) Я вам вот что скажу. Я видел, как очень неслабый, развивавшийся около 5 лет переводили с Оракла на МС СКЛ - так хотел заказчик.Где-то около нескольких миллионов записей в день там обновлялось. За полгода не торопясь перевели. Правда, как он сейчас работает, увы не знаю, но когда я его видел в последний раз он был живой и здоровый в бета-виде. Сделать можно всечто угодно и на чем угодно, просто на чем-то это сделать будет проще, на чем-то сложнее. На то и башка, чтобы проблемы решать. А в, если агрегировать посты, хотите визарда, чтоб сетап - и все было. не получится. "Атрибуты руками писать". СКЛ тоже руками писать, ну и что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 22:22 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprgГлядя на эту реплику возникает прямой вопрос - Вы вообще представляете себе "внутреннюю кухню" СУБД, как она устроена изнутри, или для Вас это "черный ящик" и знания об индексах ограничиваются практикой использования готовой программы? Я здесь тусуюсь полгода всего лишь, но на моей памяти тут не было sys dba-программеров. И потом, как вы это себе представляете? Скажем, я знаю C#, знаю его более-менее хорошо, а Python не знаю, потому что не до него. И все равно прежде чем его нормально заценить необходимо месяц-два на нем программировать, для чего все равно нет времени. Преимущества C# я вам распишу, кто-нить другой распишет преимущества Python, не зная C#, в результате мы поломаем друг о друга копья и закидаем слюнями, а более-менее прав окажется какой-нить полный ламер-журналист, который из всего возможного знал только ВБА в институте и то на двойку с минусами, зато прочел всю нашу полемику и взял да написал статью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 22:37 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
И последнее: вы меня тока не бейте, но у меня почему-то очень сильное подозрение, что если взять идею дорогого аффтора, стереть нафиг его проектирование, почесать репу и сделать свое, то в результате получится не миллион, а сто и не кластер а комп а может и вообще на WinXp Home Edition+ mySQL запашет прекрасно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 22:40 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Выбегалло Еще более забавно, что кластерный результат для TPC-C всего один - от Оракла. ну нада же , не поверишь, он там 3 года как ... Выбегаллоhttp://www.tpc.org/tpcc/results/tpcc_perf_results.asp?resulttype=cluster И в общем зачете он занимает 5е место, уступив (очень сильно) DB2 v9, DB2 v 8.2, и немного MS SQL Server и самому себе - в некластерном варианте. http://www.tpc.org/tpcc/results/tpcc_perf_results.asp а по твоему RAC должен был совершить чудо и переплюнуть системы с последним покалением итаниумом в которых только процы на 20% быстрее (С) интел ? или переплюнуть последние покаления систем ibm которые даже сейчас в 16 раз дороже ? да, а MS же только со второго раза смогла переплюнуть, по началу она даже до этого результата не дотянула (на новых процах). Выбегалло Dell тестирование прекращает и ничтоже сумяшесе объявляет линейное масштабирование аж до 17 машин я полагаю только очки не позволили разглядеть 16 нод в tpc-c тесте ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 22:57 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
ВыбегаллоЕще более забавно, что кластерный результат для TPC-C всего один - от Оракла. Не означает ли это, что кластеры DB2 показали совсем плачевные результаты в TPC-C и чтоб не позорится их не публикуют? Мы уже обсуждали на форуме, что по этой же причине нет данных AS/400 и mainframe (упс, я упомянул это слово - ggv сейчас объявится и начнет ругаться нехорошими словами на меня). ВыбегаллоНикакое тестирование IBM не отзывала - вторая строчка в TCP-C это оно и есть. Признаю свою ошибку - я был невнимателен и подумал, что DB2 тоже был кластерным (хотя ведь читал эту заметку, и не раз). Впрочем, если внимательно сравнить строчки 2 (DB2, tpmC=3,210,540) и 3 (Oracle 1,601,784), то видно, что при одинаковых процессорах (Power5 - 1.9 GHz), у IBM их было 32, а у Oracle - 16. При великолепной распараллеливаемости TPC-C получаем линейное увеличение производительности. IMHO данный тест показал великолепные аппаратные возможности p5 , а не преимущество DB2 над Ораклом. ВыбегаллоЕще одно забавное место - там, где у Оракла по вашей ссылке начинаются непонятки (Fig 9, Transactions per second, начиная с 8 машин в кластере, непонятки усугубляются при 10ти машинах) - Dell тестирование прекращает и ничтоже сумяшесе объявляет линейное масштабирование аж до 17 машин. За такое в приличном обществе канделябром по морде полагается. Они описали это на 7й странице DELLNote: Figure 9 shows a few noticeable troughs for the 8- and 10-node clusters. These performance declines were likely caused by undo tablespace management issues on one of the nodes in the cluster; these issues were later resolved by increasing the size of the tablespace. Какого хрена они экстраполировали до 17 узлов я не знаю (и почему именно 17?!) IMHO DB2 Share Nothing Clustering по своей природе будет плохо работать с OLTP нагрузкой, так что ничего удивительного. Кстати, вчера IBM разместила результат ТРС-Н теста на 10 Тб - весьма неплохо! Обогнала Оракл в два раза. Правда цифра Оракла была 2х летней давности ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 23:05 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Anton Demidov ВыбегаллоЕще более забавно, что кластерный результат для TPC-C всего один - от Оракла. Не означает ли это, что кластеры DB2 показали совсем плачевные результаты в TPC-C и чтоб не позорится их не публикуют? Я думаю, это означает, что кластеры вообще непригодны для побития рекордов в TPC-C (OLTP тип нагрузки) - именно то, что пытается опровергнуть Оракл. А пригоды они для data warehousing, где shared nothing архитектура - то, что доктор прописал. Ну и для повышения надежности, естественно. Anton Demidov ВыбегаллоНикакое тестирование IBM не отзывала - вторая строчка в TCP-C это оно и есть. Признаю свою ошибку - я был невнимателен и подумал, что DB2 тоже был кластерным (хотя ведь читал эту заметку, и не раз). Впрочем, если внимательно сравнить строчки 2 (DB2, tpmC=3,210,540) и 3 (Oracle 1,601,784), то видно, что при одинаковых процессорах (Power5 - 1.9 GHz), у IBM их было 32, а у Oracle - 16. При великолепной распараллеливаемости TPC-C получаем линейное увеличение производительности. Линейным оно бывает у SMP, кластеры пока линейности не показали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 23:17 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Anton Demidov ВыбегаллоЕще более забавно, что кластерный результат для TPC-C всего один - от Оракла. Не означает ли это, что кластеры DB2 показали совсем плачевные результаты в TPC-C и чтоб не позорится их не публикуют? Я думаю, это означает, что кластеры вообще непригодны для побития рекордов в TPC-C (OLTP тип нагрузки) - именно то, что пытается опровергнуть Оракл. А пригоды они для data warehousing, где shared nothing архитектура - то, что доктор прописал. Ну и для повышения надежности, естественно. Anton Demidov ВыбегаллоНикакое тестирование IBM не отзывала - вторая строчка в TCP-C это оно и есть. Признаю свою ошибку - я был невнимателен и подумал, что DB2 тоже был кластерным (хотя ведь читал эту заметку, и не раз). Впрочем, если внимательно сравнить строчки 2 (DB2, tpmC=3,210,540) и 3 (Oracle 1,601,784), то видно, что при одинаковых процессорах (Power5 - 1.9 GHz), у IBM их было 32, а у Oracle - 16. При великолепной распараллеливаемости TPC-C получаем линейное увеличение производительности. Линейным оно бывает у SMP, кластеры пока линейности не показали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 23:17 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Yo.!! Выбегалло Еще более забавно, что кластерный результат для TPC-C всего один - от Оракла. ну нада же , не поверишь, он там 3 года как ... И о чем говорит отсутствие свежих результатов ? О чем говорит отсутствие результотов от других производителей ? О чем говорит, прямо скажем, заурядный результат самого бенчмарка ? Не говорит ли это благородному дону, большого ума человеку, о том, что кластеры в TPC-C - дело неблагодарное, и другие производители поняли это сразу, а Оракл пытался поддать рекламной копоти своему RACу, да сел немножко в лужу ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 23:22 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> прежде чем обвинять меня в ламерстве Да чего ж тут обвинять, тут соболезновать нужно... Дружище, Вы придумали абсолютно идиотскую задачу и собираетесь решать ее абсолютно идиотскими способами. Вам пытаются об этом сказать, но, к сожалению, слушать Вы умеете гораздо хуже, чем говорить. Если Ваша задача хм... что-то вроде большого каталога всего и вся, то она решается абсолютно по-другому и совершенно без геморроя. Точно так же без геморроя пишется масштабируемое приложение для нормальной, а не придуманной фиг знает кем нагрузки. Наймите вменяемого архитектора - эскиз с тестами он набросает Вам за неделю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 23:30 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg, вы особо на guest_20040621 внимания не обращайте. Он у нас как стервятник на падаль, как где кто слабину дал (как вы с постановкой) - накидывается коршуном, очень любит советовать а) подучиться, б) нанять нормальных специалистов и в) перестать быть идиотом (вариант - работать среди идиотов). При этом разговаривать по теме опасается, чтобы не попасть в просак, отделываясь рекомандациями куда-то сходить и на что-то взглянуть. Короче, мастер жанра "у нас есть такие приборы, но мы вам о них не расскажем". А по теме - интересно было бы Sybase IQ попробовать (как вам уже посоветовали), поскольку с ихним хранением данных (только ненулевых) по столбцам он очень подходит для сильноразреженных матриц. В таком вот аксепте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 23:48 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Выбегалло И о чем говорит отсутствие свежих результатов ? О чем говорит отсутствие результотов от других производителей ? О чем говорит, прямо скажем, заурядный результат самого бенчмарка ? Не говорит ли это благородному дону, большого ума человеку, о том, что кластеры в TPC-C - дело неблагодарное, и другие производители поняли это сразу, а Оракл пытался поддать рекламной копоти своему RACу, да сел немножко в лужу ? слушай, для особо одаренных нужно снова пересказывать тему http://www.sql.ru/forum/actualthread.aspx?tid=210788&][поговорим о маштабируемости] ? это действительно необходимо ? ну ок, повторю - у остальных производителей shared nothing архитектура, которая нафиг ненужна ни одному кастомеру (я утрирую ). пару лет назад ibm и ms перестали публиковать кластерные тесты, но как щазз их помню. что до ораклового rac, так кроме болтавни (которая юзается реальными компаниями на реальных задачах) rac показал лучший результ на itanium2 1.5Ghz, причем впервые так что smp система с теми же процами оказалась медленее, т.е. на данной задачке smp оказался медленее rac, другое дело, что задачка tpc-c ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2006, 23:49 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Yo.!! Выбегалло И о чем говорит отсутствие свежих результатов ? О чем говорит отсутствие результотов от других производителей ? О чем говорит, прямо скажем, заурядный результат самого бенчмарка ? Не говорит ли это благородному дону, большого ума человеку, о том, что кластеры в TPC-C - дело неблагодарное, и другие производители поняли это сразу, а Оракл пытался поддать рекламной копоти своему RACу, да сел немножко в лужу ? слушай, для особо одаренных нужно снова пересказывать тему http://www.sql.ru/forum/actualthread.aspx?tid=210788&][поговорим о маштабируемости] ? это действительно необходимо ? ну ок, повторю - у остальных производителей shared nothing архитектура, которая нафиг ненужна ни одному кастомеру (я утрирую ). пару лет назад ibm и ms перестали публиковать кластерные тесты, но как щазз их помню. что до ораклового rac, так кроме болтавни (которая юзается реальными компаниями на реальных задачах) rac показал лучший результ на itanium2 1.5Ghz, причем впервые так что smp система с теми же процами оказалась медленее, т.е. на данной задачке smp оказался медленее rac, другое дело, что задачка tpc-c ... Слушай, особо одаренный : Oracle с RAC в твоем SAP SD Parallel Standard Application Benchmark Results -- With Round Robin показывает 241,000 line items per hour, c average responce time 1.95. А IBM DB2 8.2 в SAP SD Standard Application Benchmark Results, Three-Tier Internet Configuration показывает 1,937,000 line items per hour, c average responce time 1.77 сек. Теперь ты понимаешь, что SMP примерно в 8 раз производительнее кластеров с shared disk архитектурой на SAP SA benchmark, и только дураки будут продолжать проводить и выставлять кластерные результаты ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 00:01 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
ВыбегаллоЛинейным оно бывает у SMP, кластеры пока линейности не показали. Вот те раз! А что там нам DELL разрисовывал на восьмой странице? Линейный прирост производительности при росте числа узлов с 1 до 8. ВыбегаллоИ о чем говорит отсутствие свежих результатов ? О чем говорит отсутствие результотов от других производителей ? О чем говорит, прямо скажем, заурядный результат самого бенчмарка ? Не говорит ли это благородному дону, большого ума человеку, о том, что кластеры в TPC-C - дело неблагодарное, и другие производители поняли это сразу, а Оракл пытался поддать рекламной копоти своему RACу, да сел немножко в лужу ? Сел в лужу IBM - это у него попугаев получилось меньше в ТРС-С, вот и шифруется теперь. А что "TPC-C - дело неблагодарное" - согласен на все 100%, но с оговоркой, что для shared nothing от IBM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 00:13 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Anton Demidov ВыбегаллоЛинейным оно бывает у SMP, кластеры пока линейности не показали. Вот те раз! А что там нам DELL разрисовывал на восьмой странице? Линейный прирост производительности при росте числа узлов с 1 до 8. ВыбегаллоИ о чем говорит отсутствие свежих результатов ? О чем говорит отсутствие результотов от других производителей ? О чем говорит, прямо скажем, заурядный результат самого бенчмарка ? Не говорит ли это благородному дону, большого ума человеку, о том, что кластеры в TPC-C - дело неблагодарное, и другие производители поняли это сразу, а Оракл пытался поддать рекламной копоти своему RACу, да сел немножко в лужу ? Сел в лужу IBM - это у него попугаев получилось меньше в ТРС-С, вот и шифруется теперь. А что "TPC-C - дело неблагодарное" - согласен на все 100%, но с оговоркой, что для shared nothing от IBM Деллу в данном случае мне особой веры нет, поскольку гоняли они не TPC-C, а, как утверждают, "the test team selected benchmarks similar to the TPC-C". Ключевое слово - similar . Уж насколько оно сходно с TPC-C - знают только Делл и Оракл, а то ведь можно слегда подкрутить тест там, слегка подточить здесь - и получится прекрасно распараллеливаемый тест, который, к слову сказать, и на shared nothing дал бы линейную масштабируемость, да никто не пробовал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 00:38 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Anton DemidovСел в лужу IBM - это у него попугаев получилось меньше в ТРС-С, вот и шифруется теперь. А что "TPC-C - дело неблагодарное" - согласен на все 100%, но с оговоркой, что для shared nothing от IBM Так ведь и Оракл в TCP-C сам себя высек - SMP по результатам обошло RAC... А если кластер заведомо проигрышней SMP на OLTP типа нагрузке, то зачем бенчмарки гонять, зачем результаты выставлять и позориться, а ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 00:40 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
ВыбегаллоА если кластер заведомо проигрышней SMP на OLTP типа нагрузке, то зачем бенчмарки гонять, зачем результаты выставлять и позориться, а ? Ключевое слово - масштабируемость . SMP можно расширять до какого-то предела как средство №1, потом можно еще один узел добавить, когда уже некуда процессора и память втыкать. Подход IBM - выкиньте старое SMP железо и купите (конечно же у них) более мощное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 00:55 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Anton DemidovСел в лужу IBM - это у него попугаев получилось меньше в ТРС-С, вот и шифруется теперь. да, я тоже не понял понял почему sap parrallel c лотус нотес на железе из другой эпохи не сравнить, там тоже какие-то попугаи, а че тоже 2 буквы в названии тестов совпадает ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 01:35 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Yo.!! Anton DemidovСел в лужу IBM - это у него попугаев получилось меньше в ТРС-С, вот и шифруется теперь. да, я тоже не понял понял почему sap parrallel c лотус нотес на железе из другой эпохи не сравнить, там тоже какие-то попугаи, а че тоже 2 буквы в названии тестов совпадает че сказать-то хотели ? И как насчет разницы в результатах TPC-C - есть достоверное объяснение, почему так слабо и почему никто, включая Оракла, давно не выкладывает новых ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 02:24 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Yo.!! Anton DemidovСел в лужу IBM - это у него попугаев получилось меньше в ТРС-С, вот и шифруется теперь. да, я тоже не понял понял почему sap parrallel c лотус нотес на железе из другой эпохи не сравнить, там тоже какие-то попугаи, а че тоже 2 буквы в названии тестов совпадает че сказать-то хотели ? И как насчет разницы в результатах TPC-C - есть достоверное объяснение, почему так слабо и почему никто, включая Оракла, давно не выкладывает новых ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 02:29 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Anton Demidov ВыбегаллоА если кластер заведомо проигрышней SMP на OLTP типа нагрузке, то зачем бенчмарки гонять, зачем результаты выставлять и позориться, а ? Ключевое слово - масштабируемость . SMP можно расширять до какого-то предела как средство №1, потом можно еще один узел добавить, когда уже некуда процессора и память втыкать. Подход IBM - выкиньте старое SMP железо и купите (конечно же у них) более мощное. Месье теоретик ? Вот товарищ от сохи рассказывает : /topic/210788&pg=2 ------ Тот же тривиальный SUN B1000 можно проапгрейдить заменой CPU на двухядерный А еще можно шасси взять и позже платами добивать Да много вариантов. У меня на старой работе заменили стариный RS/6000 - просто вернули местному IBM и доплатили. Получили новый. Вариантов куча. ------ А при постановке новых узлов - ваши 8 дешевых нодов будут работать как 5. Так что слухи о дешевизне RAC сильно преувеличены. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 02:36 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Ба, никак дба мухосранский прорезался. ;) Ну что, дружище, рассказали своему CIO о резервировании? Слюнявчик от моего имени пообещали? Хм... огорчу, передумал. Нефиг всем подряд в красявых слюнявчиках в цветочек щеголять. ;) > как стервятник на падаль Спасибо, дружище. > разговаривать по теме опасается По какой теме, дружище? ;) Полагаете, я должен объяснить всем дебилам на свете, почему именно 100 Тб оперативных данных не бывает? Хм... а зачем? Если человеку нравится топорщить пальцы, рассуждая о VLDB - пусть топорщит, мне это ничуть не мешает. Дружище, я уже говорил, что dba - это исключительно тупая работа. Не нужно вот так буквально стараться соответствовать моим тезисам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 02:42 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621Ба, никак дба мухосранский прорезался. ;) Ну что, дружище, рассказали своему CIO о резервировании? Слюнявчик от моего имени пообещали? Хм... огорчу, передумал. Нефиг всем подряд в красявых слюнявчиках в цветочек щеголять. ;) > как стервятник на падаль Спасибо, дружище. > разговаривать по теме опасается По какой теме, дружище? ;) Полагаете, я должен объяснить всем дебилам на свете, почему именно 100 Тб оперативных данных не бывает? Хм... а зачем? Если человеку нравится топорщить пальцы, рассуждая о VLDB - пусть топорщит, мне это ничуть не мешает. Дружище, я уже говорил, что dba - это исключительно тупая работа. Не нужно вот так буквально стараться соответствовать моим тезисам. А вы у нас, стало быть, столичная штучка. Правда, ничего слаще Firebird-а вы не видели, к 100Т хранилищам и близко не подходили, а земля, по-вашему, безусловно плоская. Кстати, все забываю спросить - так что вам ваш знакомый с будущим "пикобайтным" хранилищем сказал по поводу бэкапа на ленты ? Покрутил у виска ? Или, как я подозреваю, нет никакого знакомого ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 04:20 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
есть такой продукт (ну или семейство продуктов) - Product Center. Предназначен для хранения инфы по всевозможным категориям товаров со всевозможным кол-вом аттрибутов (как пример - пластиковая бутылка воды в торг сети описывается около 50 атрибутами), позволяет моделировать всевозможнейшие иерархии, и выгружать необходимые срезы В основном предназнаен для работы в пакетном режиме - когда предприятия/департамент выгружает нужную ему иерархию товаров и с ней работают, но может работать и в режиме хаба, отвечая на запросы. Создан продукт так как была потребность предприятий в едином взгляде на товары/услуги с разных сторон - бухгалтер смотрит, например, с одной стороны на номенклатуру товаров, а технолог совсем с другой. Предприятие производитель имеет свои взгляды на производимую им бутилированную воду, а вот магазин имеет свои, совсем другие взгляды. Та же "разреженная таблица с переменным супер-пупер динамическим" кол-вом аттрибутов. Только ее никто таблицей не называет. И используют по назначению, под имеющиеся задачи. И справляется с очень охрененными кол-вами данных. Ведь не редкость, что предприятие имеет дело с тысячами товаров, с сотнями поставщиков, и с тысячами аттрибутов. Их произведение - охрененная величина. Была реальная потребность - сделали решение. IBM продает и внедряет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 09:51 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Кстати, что-то подобное на схожую тему я читал в PCWeek. Там в самом начале есть коротенькие заметки об американской военщине. Много сообщений о попытках и проектах анализа и работы с разреженными массивами данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 10:05 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg Автор читал Кнута??? Ну тогда можно общаться дальше :-) Как Вы относитесь к оптимальным бинарным деревьям поиска и построению системы на их основе? Для примера пересечения 2млн.записей с атрибутом 1 и 10тыс.записей с атрибутом 2 и их пересечением в 100 записей, можно реализовать систему, поднимающую с диска максимум 122 записи при условии хранения значений атрибутов в самих записях. Увеличение кол-ва записей с атрибутами при том же их пересечении в 100 раз приведет к росту необходимой выборки до 138 записей. (формулы здесь рисовать вломы). Если Вам это не интересно, можете продолжать общаться с флудерами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 10:29 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Random_Goodman И последнее: вы меня тока не бейте, но у меня почему-то очень сильное подозрение, что если взять идею дорогого аффтора, стереть нафиг его проектирование, почесать репу и сделать свое, то в результате получится не миллион, а сто и не кластер а комп а может и вообще на WinXp Home Edition+ mySQL запашет прекрасно... Боюсь это ясно уже почти всем кроме самого аффтара. Он загипнотизировал себя словами "переменное количество столбцов" и "очень разряженные данные". На практике это "переменное количество" на счет "раз" сворачивается в фиксированное, а данные уплотняются. Ну и дальше, как и сказал Последний Алиен, в ход идут оптимальные деревья и битовые маски. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 11:16 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Боюсь это ясно уже почти всем кроме самого аффтара. Он загипнотизировал себя словами "переменное количество столбцов" и "очень разряженные данные". На практике это "переменное количество" на счет "раз" сворачивается в фиксированное, а данные уплотняются. Ну и дальше, как и сказал Последний Алиен, в ход идут оптимальные деревья и битовые маски. Posted via ActualForum NNTP Server 1.3 Не цитируй меня, не зная моей идеи. Ты мыслишь в рамках существующих СУБД. Для решения поставленной задачи нужна система, заточенная под разреженные таблицы большой размерности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 11:32 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Читаю, читаю этот топик.... устал. Опять пошли разговоры не по теме и т.п. К автору. Пожалуйста, ну очень Вас прошу, приведите хотя бы краткую постановку задачи с примерами и подайте ее людям для обсуждения. Ну, если не хотите ваших страшных тайн открывать, на которых Вы деньги будете зарабатывать на миллионах пользователей, приведите пример из другой области. В противном случае, все обсуждение ничего не даст, Вы и сами это видите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 11:35 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
antandЧитаю, читаю этот топик.... устал. Опять пошли разговоры не по теме и т.п. К автору. Пожалуйста, ну очень Вас прошу, приведите хотя бы краткую постановку задачи с примерами и подайте ее людям для обсуждения. Ну, если не хотите ваших страшных тайн открывать, на которых Вы деньги будете зарабатывать на миллионах пользователей, приведите пример из другой области. В противном случае, все обсуждение ничего не даст, Вы и сами это видите. Читай топик полностью и не ленись :-) Автор уже раз пять задачу ставил. Обсуждение кое-что дает. Если бы не мешали личности уровня db admin/prog, было бы проще. Задача должна решаться на уровне алгоритмов и sys prog. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 11:39 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, Last_Alien! Ты пишешь: Last_AlienLA> Читай топик полностью и не ленись :-) LA> Автор уже раз пять задачу ставил.а она всё не стоит и не стоит... интеллектуальная импотенция, не иначе! -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 12:16 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий Если тебе нечего сказать, то лучше промолчи (будешь казаться умнее). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 12:22 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, Last_Alien! Ты пишешь: Last_AlienLA> Если тебе нечего сказать, то лучше промолчи (будешь казаться умнее). иди с дичком воюй, обиженный. если ты считаешь тот нефильтрованный поток сознания, который выплеснул в форум автор, постановкой задачи , то вам двоим действительно есть о чём поговорить... -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 12:38 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий Привет, Last_Alien! иди с дичком воюй, обиженный. если ты считаешь тот нефильтрованный поток сознания, который выплеснул в форум автор, постановкой задачи , то вам двоим действительно есть о чём поговорить... -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 Так мы с ним и общаемся. А ты только и делаешь, что вставляешь свои абсолютно бессмысленные коментарии. Читай другие ветки, где тебе постановка задач нравится. В чем проблема-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 12:43 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, Last_Alien! Ты пишешь: Last_AlienLA> Так мы с ним и общаемся. А ты только и делаешь, что вставляешь LA> свои абсолютно бессмысленные коментарии. Читай другие ветки, LA> где тебе постановка задач нравится. В чем проблема-то?в ЕКБ, наверное... -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 12:45 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий в ЕКБ , наверное... расшифруй ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 12:47 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Last_Alien Не цитируй меня, не зная моей идеи. Ты мыслишь в рамках существующих СУБД. Так изложите ее, о великий. Я вижу Вы таки считаете необходимым под его типовую задачу разрабатывать специализированную СУБД... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 13:12 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Так изложите ее, о великий. Я вижу Вы таки считаете необходимым под его типовую задачу разрабатывать специализированную СУБД... Posted via ActualForum NNTP Server 1.3 Зачем бесплатно отдавать то, на чем можно сделать деньги? Чтобы их сделали другие?:-))) Виртуальный гипермаркет планетарного масштаба для Вас типовая задача???? Из какой галактики Вы к нам прилетели, уважаемый?:-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 13:19 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Армейская исследовательская лаборатория США заказала у фирмы Linux Networx (www.linuxnetworx.com) кластер из 4096 процессоров Intel Xeon 5100 / 3 ГГц с суммарной производительностью около 50 Тфлопс. ОЗУ комплекса составит 8,5 Тб, объём жестких дисков — 260 Тб. Специалисты Linux Networx в данный момент развертывают в лаборатории ещё один специализированный кластер LS Visual Supersystem, предназначенный для визуализации больших объёмов данных. В ходе опытной эксплуатации на этом кластере пакета распределенного рендеринга сложных трёхмерных сцен EnSight DR 8 (www.ensight.com) был достигнут мировой рекорд скорости рендеринга — 1,5 млрд. полигонов/с (почти в три раза выше предыдущего). При этом система показывает линейный рост производительности при наращивании числа процессоров. Пока в ней задействуется 128 двухъядерных процессоров AMD Opteron Model 280 с общим ОЗУ 1024 Мб. Кластер работает под управлением RedHat Enterprise Linux. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 13:23 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> А вы у нас, стало быть, столичная штучка. Комплексуете? Бросьте. Зато, видимо, Вы первый, кому социальные службы по работе с умственно отсталыми нашли работу dba. > "пикобайтным" хранилищем Дружище, "пико" - это 10^-12. Оптимисты работают в этой социальной службе. И работодатель Ваш - оптимист. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 13:32 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, Last_Alien! Ты пишешь: Last_AlienLA> Зачем бесплатно отдавать то, на чем можно сделать деньги? LA> Чтобы их сделали другие?:-))) LA> Виртуальный гипермаркет планетарного масштаба для Вас типовая задача???? Когда я был маленький, злой дебил, За моей спиной стоял огромный мир. Казался тенью от моих волос, И дышал мне в темя, как теплый пес. Но пришел черед и для моих работ... /*Алексей Кортнев.*/ начинающие всегда уверены, что их первая программа перевернёт мир... с возрастом это проходит. обычно. -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 13:38 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprgИ не предлагайте решения по сведению 1000-мерного пространства к двумерному через тривиальную укладку в две таблицы. А вы предлагаете хранить Терабайты пустоты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 13:39 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий начинающие всегда уверены, что их первая программа перевернёт мир... с возрастом это проходит. обычно. Хороший способ оправдать свою бездарность и лень. Твое желание погадить в эту ветку только подтверждает мою правоту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 13:41 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, Last_Alien! Ты пишешь: Last_AlienLA> Хороший способ оправдать свою бездарность и лень. LA> Твое желание погадить в эту ветку только подтверждает мою правоту. ну, давай ещё достанем и померяемся -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 13:44 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
miksoft А вы предлагаете хранить Терабайты пустоты? Пустоту хранить никто не предлагает. Просто решение на двух таблицах в классической субд не дает нужной скорости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 13:44 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Last_Alien miksoft А вы предлагаете хранить Терабайты пустоты? Пустоту хранить никто не предлагает. Просто решение на двух таблицах в классической субд не дает нужной скорости.да ну? две таблички в памяти будут медленнее Терабайт данных и индексов, которые надо будет поднимать с дисков? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 14:20 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
miksoft Last_Alien miksoft А вы предлагаете хранить Терабайты пустоты? Пустоту хранить никто не предлагает. Просто решение на двух таблицах в классической субд не дает нужной скорости.да ну? две таблички в памяти будут медленнее Терабайт данных и индексов, которые надо будет поднимать с дисков? ??? Смотри обсуждение выше. Вообще-то говоря, индексы нужны именно для того, чтобы не поднимать с диска террабайты данных... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 14:31 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Last_Alien Просто решение на двух таблицах в классической субд не дает нужной скорости. Только не говорите что под "нужной скоростью" Вы понимаете "миллион запросов в секунду"... Для "глобального гипермаркета" время отклика в пару секунд более чем приемлемо. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 14:35 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Только не говорите что под "нужной скоростью" Вы понимаете "миллион запросов в секунду"... Для "глобального гипермаркета" время отклика в пару секунд более чем приемлемо. Откуда Вы взяли эту цифру??? Говоря о скорости, я имею в виду не время отклика системы (взятое с потолка), а сравнение двух алгоритмов, например, в max кол-вах операций чтения записей, необходимых для получения результата. Классика в лучшем случае дает m*О(n), где n - количество записей, а m - количество атрибутов, используемых при поиске. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 14:52 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
извиняюсь: m*O(ln(n)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 14:53 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Last_Alienизвиняюсь: m*O(ln(n))а Last_Alienрешение на двух таблицах в классической субд, которое вам так не нравится, даст O(ln(m*n)), где m - среднее количество значений атрибутов у одного объекта, что значительно меньше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 15:17 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Да уж, ребята... С такими познаниями "классических СУБД" можно много насоветовать :-\ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 15:30 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
miksoft Last_Alienизвиняюсь: m*O(ln(n))а Last_Alienрешение на двух таблицах в классической субд, которое вам так не нравится, даст O(ln(m*n)), где m - среднее количество значений атрибутов у одного объекта, что значительно меньше Вообще-то я говорил о НАИХУДШЕМ случае, а не о среднем. Далее. Если мы ищем по 10 атрибутам, для каждого из которых в базе есть по 2млн. записей, а общее пересечение составляет 100 записей, вам придется поднять с диска порядка 20млн.записей. Очень обнадеживающий и перспективный результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 15:37 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
pavelvpДа уж, ребята... С такими познаниями "классических СУБД" можно много насоветовать :-\ Великий гуру! Открой нам, ничтожным, истину!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 15:39 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, Last_Alien! Ты пишешь: Last_AlienLA> Великий гуру! Открой нам, ничтожным, истину!!!в школу, нах, в школу! там и читать научат. не только писать. -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 15:45 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий Привет, Last_Alien! Ты пишешь: Last_AlienLA> Великий гуру! Открой нам, ничтожным, истину!!!в школу, нах, в школу! там и читать научат. не только писать. -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 Ты форум случаем не перепутал? Для такого рода срача, которым ты страдаешь, предназначены ПТ, ЗПТ и area 51. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 15:47 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Last_AlienЕсли мы ищем по 10 атрибутам, для каждого из которых в базе есть по 2млн. записей, а общее пересечение составляет 100 записей, вам придется поднять с диска порядка 20млн.записей. Очень обнадеживающий и перспективный результат.А вы блоках посчитайте, а не в записях. Выйдет порядка на три (исходя из фразы автора темы "этих атрибутов очень-очень много - единицы тысяч") меньше, чем при развернутом хранении. Уж не говоря о том, что при свернутом хранении высока вероятность вообще данные (с нужными индексами) уместить в памяти. PS. тема, действительно, превратилась в цирк. Кто-то ругается, кто-то пытается что-то обсуждать, недоговаривая такое количество умолчаний, что понять друг друга невозможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 15:50 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
miksoftА вы блоках посчитайте, а не в записях. Выйдет порядка на три (исходя из фразы автора темы "этих атрибутов очень-очень много - единицы тысяч") меньше, чем при развернутом хранении. Уж не говоря о том, что при свернутом хранении высока вероятность вообще данные (с нужными индексами) уместить в памяти. PS. тема, действительно, превратилась в цирк. Кто-то ругается, кто-то пытается что-то обсуждать, недоговаривая такое количество умолчаний, что понять друг друга невозможно. На данном этапе обсуждения до блоков памяти еще как до луны. Что вы понимаете под свернутым хранением? P.S. Я предлагал автору топа обсуждать все по почте, но он посчитал это излишним. А без цирка на скуле не обойдешься ни как. Специфика места :-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 15:58 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Действительно, всякие ублюдки лезут со своими оценками, не относящимися к существу дела. Ну вот, и я туда же. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 16:17 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Last_AlienЧто вы понимаете под свернутым хранением?а вот примерно то, что sysprg называет "сведение 1000-мерного пространства к двумерному через тривиальную укладку в две таблицы", хотя у меня таблиц получается четыре, но только две из них серьезно большие. PS. Информация чисто до кучи. Как строят большие датацентры и цитата от туда же: Google now has more than 450,000 servers spread over at least 25 locations around the world ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 16:40 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий Привет, Last_Alien! Ты пишешь: Last_AlienLA> Зачем бесплатно отдавать то, на чем можно сделать деньги? LA> Чтобы их сделали другие?:-))) LA> Виртуальный гипермаркет планетарного масштаба для Вас типовая задача???? Когда я был маленький, злой дебил, За моей спиной стоял огромный мир. Казался тенью от моих волос, И дышал мне в темя, как теплый пес. Но пришел черед и для моих работ... /*Алексей Кортнев.*/ начинающие всегда уверены, что их первая программа перевернёт мир... с возрастом это проходит. обычно. -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 плох солдат который не мечтает стать генералом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 17:45 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, MX! Ты пишешь: MXMA> плох солдат который не мечтает стать генераломречь в общем-то, не о том. человек настолько уверен, что его "идея" настолько уникально-гениальна, что боится даже заикаться о каких-либо подробностях. бо украдут, нах. не украдут. ибо между идеей и реализацией - пропасть, зачастую непреодолимая. особенно для "гениев", не имеющих прочного теоретического базиса под ногами. или в голове. -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 17:53 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Чернышев Андрей ЛеонидовичА почему Вы, sysprg, говорите про "индекс по одному упорядоченному набору полей" ? И не уточняете - сколько в среднем "атрибутов" имеют не пустые значения в каждой Вашей "динамической записи" ? Может всего 5 (5!=120). Проведите простейший эксперимент по поддержке n! сочетаний при индексировании "динамических записей", где n - число непустых атрибутов. Очень мало атрибутов (единицы) присутствуют именно в каждой записи. Однако многие атрибуты заполнены у большинства записей - таких около двух десятков. Не вижу между ними разницы с точки зрения ускорения поиска (атрибут заполнен у большинства записей или он заполнен строго у всех записей). А еще есть несколько десятков атрибутов, заполненных более чем у одного процента записей. Однако, при ста миллионах записей (прогнозируемое наполнение базы уже в первые годы работы) это означает, что несколько десятков атрибутов заданы для 1-5 миллионов записей. Остальные же атрибуты действительно "мало популярны" - им соответствует сотня, тысяча или десятки тысяч записей (из 100 миллионов). Если смотреть на значения атрибутов, то увы - есть такие значения, для которых объем выборки - миллионы или даже десятки миллионов записей. И эти значения будут часто фигурировать в запросах. Однако их пересечения могут быть удивительно компактны. В качестве иллюстрации я привел вымышленный пример базы товаров для какого-нибудь "ebay" - когда, например, есть 100 тысяч медиа-товаров, в атрибутах которых значится "русский язык", есть 10 тысяч товаров, которые классифицированы как "книга" (не важно, на каком языке) и 2 миллиона товаров выставлены на продажу в городе "Нью-Йорк". Однако в Нью-Йорке выставлены на продажу всего-навсего 100 русскоязычных книг... Но мы не знаем заранее, что заинтересует пользователя - и у нас нет заранее построенного индекса для свертки "город" * "язык" * "тип товара". Разных пользователей интересуют разные срезы... Чернышев Андрей ЛеонидовичЧто касается "добавления атрибутов в процессе работы", то это ничего не усложняет, если всегда индексируются все сочетания. Можно подумать об "интеллекте", основанном на простых статистиках, и не индексировать "маловостребованные" сочетания (при необходимости проиндексировать). И если уж распределять нагрузку, то именно по индексированию сочетаний.Да, возможно, что динамическая и при этом автоматическая (от статистики запросов) генерация нужных индексов - это хорошая идея. Но это не панацея - запросов будет много и они разнообразны - поэтому нужна и базисная структура, которая бы в любом случае неплохо справлялась с задачей БЕЗ дополнительных "частных" индексов. Если просто динамически строить индексы (и даже уничтожать старые по какому-нибудь LRU), то из-за разнообразия пользовательских запросов все время уйдет на генерацию этих самых индексов. И никакой памяти под них не хватит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 18:26 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
ВыбегаллоА по теме - интересно было бы Sybase IQ попробовать (как вам уже посоветовали), поскольку с ихним хранением данных (только ненулевых) по столбцам он очень подходит для сильноразреженных матриц. Спасибо за советы :) и действительно Sybase IQ интересная разработка именно для таких задач. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 18:49 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg В качестве иллюстрации я привел вымышленный пример базы товаров для какого-нибудь "ebay" - когда, например, есть 100 тысяч медиа-товаров, в атрибутах которых значится "русский язык", есть 10 тысяч товаров, которые классифицированы как "книга" (не важно, на каком языке) и 2 миллиона товаров выставлены на продажу в городе "Нью-Йорк". Однако в Нью-Йорке выставлены на продажу всего-навсего 100 русскоязычных книг... Но мы не знаем заранее, что заинтересует пользователя - и у нас нет заранее построенного индекса для свертки "город" * "язык" * "тип товара". Разных пользователей интересуют разные срезы... Надо ли это понимать как пример вашей задачи?(пусть даже мы каждую цифру здесь увеличим допустим в 1000 раз). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 18:52 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg ВыбегаллоА по теме - интересно было бы Sybase IQ попробовать (как вам уже посоветовали), поскольку с ихним хранением данных (только ненулевых) по столбцам он очень подходит для сильноразреженных матриц. Спасибо за советы :) и действительно Sybase IQ интересная разработка именно для таких задач. Не за что, Да Sybase IQ вещь классная. Главное только правильно применить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 18:53 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Last_AlienКак Вы относитесь к оптимальным бинарным деревьям поиска и построению системы на их основе?Деревья - это хорошо. :) Last_AlienДля примера пересечения 2млн.записей с атрибутом 1 и 10тыс.записей с атрибутом 2 и их пересечением в 100 записей, можно реализовать систему, поднимающую с диска максимум 122 записи при условии хранения значений атрибутов в самих записях. Увеличение кол-ва записей с атрибутами при том же их пересечении в 100 раз приведет к росту необходимой выборки до 138 записей.Учитываете ли Вы тот факт, что по условиям задачи у нас не два атрибута, заранее известных, для которых мы можем построить одно дерево (или два пересекающихся дерева), а 1000 атрибутов, и мы не знаем заранее, какие именно из них потребуются пользователю в запросе... Один пользователь возьмет из этой тысячи своих два атрибута, другой - два, три или сразу пять других. Поэтому просто обычное дерево или тривиальное решение под два конкретных атрибута нам не подходит. Я не в курсе - возможно у Вас есть решение, не завязанное на количество атрибутов, но из Вашего объяснения это не ясно. Вы слышали о такой структуре данных: k-d Tree? Она на каждом шаге построения дерева делит пространство по какому-то одному измерению. И это позволяет быстро локализоваться в пространстве, даже если оно многомерное. Однако, эта структура перестает эффективно работать при очень большой размерности пространства и она очень плохо работает с бинарными атрибутами, ведь их можно поделить только один раз. И главное - я не видел ни одного адаптивного и при этом гарантировано логарифмического варианта структуры данных, основанной на идее k-d дерева. :( А динамическое добавление (изменение) информации требуется по условиям задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 19:11 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНа практике это "переменное количество" на счет "раз" сворачивается в фиксированное, а данные уплотняются. Ну и дальше, как и сказал Последний Алиен, в ход идут оптимальные деревья и битовые маски.Снижение размерности - хорошая идея, которую часто обсуждают в статьях, но здесь нужно локальное снижение размерности, так как в разных областях общего 1000-мерного пространства есть свои и совсем разные гиперкубы, в которые упакованы не все, но многие точки этой области. Уверяю Вас, если именно для ВСЕХ записей как-то попытаться снизить размерность одним общим способом сразу с 1000 и до разумно маленькой величины - то это породит кучу очень медленных поисков на пользовательских запросах. Данные неоднородны, хотя они и не случайны (поэтому говорить о снижении размерности как о методе можно). Если у Вас есть идеи именно по адаптивному алгоритму, который бы сам снижал размерность для разных групп точек, делая это по-разному в разных областях простанства - что же, буду рад услышать, если согласны поделится идеями. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 19:23 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprgТак же интересно, есть ли люди, которым приходилось решать конкретно задачу многокритериального поиска в сильно разряженной таблице с тысячами "столбцов" по сотням миллионов записей. Пусть и не с таким рейтом запросов...Привет, мне приходилось. Моя СУБД с таким работает, вот только решение несколько неадекватное, я отказался от таблиц. Моя субд - сетевая. Однако для вашей цели не подойдет - однопользовательская. ИМХО следует серьезно обдумать вариант реализации собственного движка под свою задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 19:30 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, shuklin! Ты пишешь: shuklins> Привет, мне приходилось.урааааа!!! шуклин живой! я переживал. честно. -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 19:31 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
antandПожалуйста, ну очень Вас прошу, приведите хотя бы краткую постановку задачи с примерами и подайте ее людям для обсуждения. Ну, если не хотите ваших страшных тайн открывать, на которых Вы деньги будете зарабатывать на миллионах пользователей, приведите пример из другой области.Еще раз привожу пример. ---------------------------------------------------------------------- Для начала у нас есть база данных, в которой каждая запись содержит всего три атрибута - "тип товара", "язык" и "город". Тип товара может быть, например, "книга", "фильм", "песня" или, например, "атомобиль". Для медиа-продукции второй атрибут, "язык", говорит нам, на каком языке издана книга, какой язык в переводе фильма и т.п. Третий атрибут - это город, где этот товар выставлен на продажу. У нас есть 100 миллионов записей о товарах. Из них: - 2 миллиона записей относятся к городу "Нью-Йорк", - 100 тысяч разных записей имеют отношение к русскому языку, - 10 тысяч записей имеют тип "книга". Но всего-навсего 100 книг на русском языке продаются в Нью-Йорке, а остальные - нет. Их и хочет найти наш пользователь. Задача тривиальная, если мы заранее, зная специфику пользовательских запросов специально возьмем и построим в какой-нибудь существующей системе индекс по сочетанию полей {"тип товара", "язык", "город"}. А теперь переходим к полной постановке задачи - снимаем ограничение на количество атрибутов. Этих атрибутов - около тысячи. Причем они добавляются в процессе работы системы, время от времени. И мы не знаем заранее, КАКИЕ именно запросы будут интересны пользователю. У нас очень много пользователей с разными интересами и каждый из них ищет что-то свое, выбирая произвольные атрибуты из 1000 доступных... ---------------------------------------------------------------------- Что нам предлагают коммерческие СУБД в такой ситуации? В лучшем случае они нам предлагают построить индексы по каждому из атрибутов в отдельности (или индекс по паре {ID атрибута, значение}). И затем они будут оъединять списки или битовые маски, выполняя сложный запрос, включающий больше одного атрибута. В данном примере они возьмут самый короткий список - список книг (10 тысяч идентификаторов записей в базе) и начнут проверять, присутствуют ли эти же ID записей в списке русскоязычных товаров (100 тысяч элементов) и в списке продающихся в Нью-Йорке (2 миллиона элементов). Как именно это делается - слиянием ли списков, или пересечением битмапов - не важно. В любом случае это очень-очень медленная работа ПО СРАВНЕНИЮ С ИТОГАМИ - со 100 результирующими записями. Так происходит потому, что не зная заранее, по каким сочетаниям атрибутов будет искать пользователь, они вынуждены плясать от ОТДЕЛЬНЫХ атрибутов. ---------------------------------------------------------------------- Нужен же "пространственный" индекс, который даже в 1000-мерном пространстве быстро найдет пересечение и поднимет в память не намного больше данных, чем 100 результирующих записей. Он считает больше - чудес же не бывает, но не намного... Однако "стандартные" виды таких индексов 1). отсутствуют практически во всех коммерческих СУБД (кроме Postgress?) 2). не рассчитаны на пространства большой размерности 3). не рассчитаны на некоторые виды атрибутов, например, на бинарные. И как я понял за последние 5 лет никаких сдвигов в этой области в коммерческих СУБД не произошло и не наметилось. Значит нужно искать свое решение. Не так ли? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 19:48 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Мимопроходящийа она всё не стоит и не стоит...Мимопроходящий, когда же ты наконец пройдешь мимо? Или сложности с выбором направления движения? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 19:52 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
miksoft sysprgИ не предлагайте решения по сведению 1000-мерного пространства к двумерному через тривиальную укладку в две таблицы.А вы предлагаете хранить Терабайты пустоты?Нет, даже если хранить по столбцам, как предлагают в Sybase IQ, то этого не будет. Только индексации пространственной у них все равно при этом нет, к сожалению - поэтому решив проблему не хранения пустоты и динамического добавления столбцов, они увы не решают проблему быстроты поиска (хотя делают ad hoc поиск быстрее обычных СУБД, как они утверждают иногда в десятки и сотни раз быстрее). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 19:56 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий шуклин живой!Та куда ж я денусь. ))) Ващето лето было продуктивным. Несколько версий СУБД Cerebrum, Медовый месяц в симферополе под традиционными взрывами Украинских складов ... ))) А на самом деле просто время на флейм нету ((( Если чего - лучче меня почтой пинать. Всегда объясню как Cerebrum внутре устроен и зачем там неонки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 20:01 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, sysprg! Ты пишешь: sysprgs> Мимопроходящий, когда же ты наконец пройдешь мимо? s> Или сложности с выбором направления движения?гюльчатай, открой личико, а?! (С) вдруг я тебя полюблю. с разбегу. -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 20:01 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg miksoft sysprgИ не предлагайте решения по сведению 1000-мерного пространства к двумерному через тривиальную укладку в две таблицы.А вы предлагаете хранить Терабайты пустоты?НетТаки объясните, пожалуйста, чем именно не нравится такой метод? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 20:03 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
miksoftТаки объясните, пожалуйста, чем именно не нравится такой метод?"Физикой" процесса выполнения запроса. Возьмем мой пример, который приводился здесь. Выполняя поиск в предложенной Вами базе, ядро классической СУБД построит сначала список записей по "самому короткому" значению - список всех книг (10 тысяч элементов). Это компактная маленькая структура. Но затем они объединят его уже с более крупным и менее компактным списком записей, для которых "язык" = "русский" (100 тысяч элементов). Как именно они это сделают - не важно. Тут уже много работы, но это еще не самое страшное. У них останется, скажем, 1000 идентификаторов записей (книг на русском языке). Условно так скажем целых чисел, равномерно размазанных по числовой оси на интервале [0; 10^8]. И вот теперь они возьмут последний список из 2 миллионов элементов и начнут его сливать с этим коротким из 1000... Тут-то все и накроется (по быстродействию). А у нас в параллель идут десятки тысяч и сотни тысяч таких запросов (если Вам не нравится моя цифра в миллион). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 20:22 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg И вот теперь они возьмут последний список из 2 миллионов элементов , увидят что многовато будет (для этого ведется статистика) и сделают full scan по 1000 записей. Ващето ваша задача решается за O(1) но это O в практических случаях скорее всего окажеться больше чем обычные O(NlnN) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 20:28 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
miksoft sysprgИ не предлагайте решения по сведению 1000-мерного пространства к двумерному через тривиальную укладку в две таблицы. А вы предлагаете хранить Терабайты пустоты? В силу своей архитектуры Sybase IQ не хранит пустоту, очень быстро обрабатывает ad-hoc запросы, в том числе звездообразные, допускает несколько индексов на одну колонку и поддерживает до 45,000 колонок в таблице ("There may be performance penalties with more than 10,000 columns in a table"). Позволяет работать в кластере с shared disk архитектурой. Достаточно неплохое решение для данной задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 20:56 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg Чернышев Андрей ЛеонидовичА почему Вы, sysprg, говорите про "индекс по одному упорядоченному набору полей" ? И не уточняете - сколько в среднем "атрибутов" имеют не пустые значения в каждой Вашей "динамической записи" ? Может всего 5 (5!=120). Проведите простейший эксперимент по поддержке n! сочетаний при индексировании "динамических записей", где n - число непустых атрибутов. Очень мало атрибутов (единицы) присутствуют именно в каждой записи. Однако многие атрибуты заполнены у большинства записей - таких около двух десятков. Не вижу между ними разницы с точки зрения ускорения поиска (атрибут заполнен у большинства записей или он заполнен строго у всех записей). А еще есть несколько десятков атрибутов, заполненных более чем у одного процента записей. Однако, при ста миллионах записей (прогнозируемое наполнение базы уже в первые годы работы) это означает, что несколько десятков атрибутов заданы для 1-5 миллионов записей. Остальные же атрибуты действительно "мало популярны" - им соответствует сотня, тысяча или десятки тысяч записей (из 100 миллионов). Если смотреть на значения атрибутов, то увы - есть такие значения, для которых объем выборки - миллионы или даже десятки миллионов записей. И эти значения будут часто фигурировать в запросах. Однако их пересечения могут быть удивительно компактны. В качестве иллюстрации я привел вымышленный пример базы товаров для какого-нибудь "ebay" - когда, например, есть 100 тысяч медиа-товаров, в атрибутах которых значится "русский язык", есть 10 тысяч товаров, которые классифицированы как "книга" (не важно, на каком языке) и 2 миллиона товаров выставлены на продажу в городе "Нью-Йорк". Однако в Нью-Йорке выставлены на продажу всего-навсего 100 русскоязычных книг... Но мы не знаем заранее, что заинтересует пользователя - и у нас нет заранее построенного индекса для свертки "город" * "язык" * "тип товара". Разных пользователей интересуют разные срезы... Чернышев Андрей ЛеонидовичЧто касается "добавления атрибутов в процессе работы", то это ничего не усложняет, если всегда индексируются все сочетания. Можно подумать об "интеллекте", основанном на простых статистиках, и не индексировать "маловостребованные" сочетания (при необходимости проиндексировать). И если уж распределять нагрузку, то именно по индексированию сочетаний.Да, возможно, что динамическая и при этом автоматическая (от статистики запросов) генерация нужных индексов - это хорошая идея. Но это не панацея - запросов будет много и они разнообразны - поэтому нужна и базисная структура, которая бы в любом случае неплохо справлялась с задачей БЕЗ дополнительных "частных" индексов. Если просто динамически строить индексы (и даже уничтожать старые по какому-нибудь LRU), то из-за разнообразия пользовательских запросов все время уйдет на генерацию этих самых индексов. И никакой памяти под них не хватит. Денормализация - вот что вас спасет. Сколько может быть атрибутов у одного товара ? ну десять, ну двадцать, ну тысяча. Заведите таблицу товаров, с тысячей полей для аттрибутов, и специальную таблицу переполнения для того 0.00001 % товаров с более чем 1000 атрибутов. У клиентов хранится описатель товаров, в котором для каждого товара прописаны возможные аттрибуты и колонки, в которых их искать - чтобы не было запросов вида "col100=12345 OR col101 = 12345 OR ..." ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 21:17 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Привет, Выбегалло! Ты пишешь: ВыбегаллоВ> Денормализация - вот что вас спасет. зуб даёшь, что аффтар знаком с нормализацией, как таковой вааще? -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 21:21 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621> А вы у нас, стало быть, столичная штучка. Комплексуете? Бросьте. Зато, видимо, Вы первый, кому социальные службы по работе с умственно отсталыми нашли работу dba. > "пикобайтным" хранилищем Дружище, "пико" - это 10^-12. Оптимисты работают в этой социальной службе. И работодатель Ваш - оптимист. Ах, пардон, обшибся. Всего лишь петабайтное хранилище. Ну откройте же мне, отсталому дба из мухосранска - что сказал вам знакомый провайдер по поводу бэкапов на ленту ? типа business contingency план у него имеется ? и это хороший план, забористый ? позволяет влехкую восстановить его петабайтный варехауз буквально за пару минут, пользуясь парой стримеров и дисководом для пятидюймовых дискет ? Не томите, проковыряйте шашкой своей мудрости дырку в черной завесе моего невежества, дабы яркий свет сокровенного знания бэкапов озарил убогий ландшафт социальных служащих ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 21:31 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Мимопроходящий Привет, Выбегалло! Ты пишешь: ВыбегаллоВ> Денормализация - вот что вас спасет. зуб даёшь, что аффтар знаком с нормализацией, как таковой вааще? -- With best regards, Мимопроходящий. Posted via ActualForum NNTP Server 1.3 ну, на гугле ж его не забанили ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 21:32 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
shuklin sysprg И вот теперь они возьмут последний список из 2 миллионов элементов , увидят что многовато будет (для этого ведется статистика) и сделают full scan по 1000 записей.Да, согласен - может быть и так. И так как именно пространственную локализацию при хранении записей они не учитывают (записи упорядочены в лучшем случае по первичному ключу), то эти 1000 записей окажутся равномерно раскиданными по всем нодам кластера (или по всему диску на одной машине) и эта выборка будет очень медленной. shuklinВащето ваша задача решается за O(1) но это O в практических случаях скорее всего окажеться больше чем обычные O(NlnN)Каким образом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 21:52 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
ВыбегаллоВ силу своей архитектуры Sybase IQ не хранит пустоту, очень быстро обрабатывает ad-hoc запросы, в том числе звездообразные, допускает несколько индексов на одну колонку и поддерживает до 45,000 колонок в таблице ("There may be performance penalties with more than 10,000 columns in a table"). Позволяет работать в кластере с shared disk архитектурой. Достаточно неплохое решение для данной задачи.Согласен, что возможно это лучшее решение из стандартных (судя по описаниям на сайте). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 21:56 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
ВыбегаллоДенормализация - вот что вас спасет. Сколько может быть атрибутов у одного товара? ну десять, ну двадцать, ну тысяча.Если говорить об этом примере с товарами - то у каждого конкретного товара действительно будет мало атрибутов - обычно два-три десятка, ну пара сотен от силы... Только у разных товаров - эти атрибуты разные. Зачастую они разные даже в одной группе по классификации, из-за многообразия мира и из-за неполноты информации. И многие из атрибутов (не все, конечно) характерны для разных групп товаров - они общие семантически. А значит, пользователь может захотеть поискать по ним. Это я к тому, что выделить особенно важные характеристики (кроме нескольких общих) или предсказать заранее основные варианты поиска в общем случае не удастся, как и сократить число атрибутов. ВыбегаллоЗаведите таблицу товаров, с тысячей полей для аттрибутов, и специальную таблицу переполнения для того 0.00001 % товаров с более чем 1000 атрибутов. У клиентов хранится описатель товаров, в котором для каждого товара прописаны возможные аттрибуты и колонки, в которых их искать - чтобы не было запросов вида "col100=12345 OR col101 = 12345 OR ..."Что это даст-то мне с точки зрения более умной индексации? Все равно дальше будут построены индексы только по отдельным колонкам и еще по паре десятков самых типовых сочетаний, которые я угадаю заранее, логически поразмыслив над проблемной областью задачи. Но затем многие пользователи начнут свою работу по добыче полезных для себя редких сочетаний данных подавая заранее не предсказанные мной запросы (часто простые, но не продуманные заранее - это невозможно) и база данных начнет объединять списки перелопачивая "весь диск" или все ноды в кластере. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 22:13 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> откройте ;) Расслабьтесь. Выдохните. Дискуссии с Вами меня перестали развлекать. Очень обяжете, если сделаете вид, что мы не знакомы, - сэкономите мне кучу времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 22:33 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Я вам еще раз настоятельно рекомендую освежить в памяти принципы работы bitmap индексов в Оракле или EVT индексов у DB2. Индексируйте таким образом все колонки с атрибутами и тогла БД сможет просто применяя битовые операции быстро найти необходимые пересечения. Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 22:34 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg ВыбегаллоДенормализация - вот что вас спасет. Сколько может быть атрибутов у одного товара? ну десять, ну двадцать, ну тысяча.Если говорить об этом примере с товарами - то у каждого конкретного товара действительно будет мало атрибутов - обычно два-три десятка, ну пара сотен от силы... Только у разных товаров - эти атрибуты разные. Зачастую они разные даже в одной группе по классификации, из-за многообразия мира и из-за неполноты информации. И многие из атрибутов (не все, конечно) характерны для разных групп товаров - они общие семантически. А значит, пользователь может захотеть поискать по ним. Это я к тому, что выделить особенно важные характеристики (кроме нескольких общих) или предсказать заранее основные варианты поиска в общем случае не удастся, как и сократить число атрибутов. ВыбегаллоЗаведите таблицу товаров, с тысячей полей для аттрибутов, и специальную таблицу переполнения для того 0.00001 % товаров с более чем 1000 атрибутов. У клиентов хранится описатель товаров, в котором для каждого товара прописаны возможные аттрибуты и колонки, в которых их искать - чтобы не было запросов вида "col100=12345 OR col101 = 12345 OR ..."Что это даст-то мне с точки зрения более умной индексации? Все равно дальше будут построены индексы только по отдельным колонкам и еще по паре десятков самых типовых сочетаний, которые я угадаю заранее, логически поразмыслив над проблемной областью задачи. Но затем многие пользователи начнут свою работу по добыче полезных для себя редких сочетаний данных подавая заранее не предсказанные мной запросы (часто простые, но не продуманные заранее - это невозможно) и база данных начнет объединять списки перелопачивая "весь диск" или все ноды в кластере. Еще раз : 1. заводите классификатор товаров. каждому товару приписываете атрибут. Атрибут имеет уникальный ключ, отличный от всех других атрибутов, и номер столбца в таблице фактов. Классификатор выдается каждому юзеру в локальное пользование (вытягивается клиентским приложением) 2. пользователь запрашивает товар с атрибутами 1, 10 и 121. Допустим, эти атрибуты могут храниться в колонках 1, 20 и 54. При формировании запроса приложение учитывает, в каких колонках эти атрибуты имеются, и создает SELECT * from tovar where col1 = 1 and col20 = 10 and col54=121. Уверяю вас, данный запрос при наличии индекса на каждую колонку (и up to date статистики по этому индексу) будет летать - сначала выберется наиболее избирательный индекс, затем выберется сотня строк, потом , если СУБД не позволяет использовать одновременно 2 индекса, банально проверятся значения в остальных колонках - короче, совершенно стандартная ситуация, давно и прочно отработанная. Проблема как раз в неуникальности атрибутов для нескольких товаров - необходимо следить, чтобы атрибуты одного товара не попадали в одни и те же колонки, но эта проблема разрешима. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 22:46 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621> откройте ;) Расслабьтесь. Выдохните. Дискуссии с Вами меня перестали развлекать. Очень обяжете, если сделаете вид, что мы не знакомы, - сэкономите мне кучу времени. СЗ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 22:47 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Random_GoodmanИ последнее: вы меня тока не бейте, но у меня почему-то очень сильное подозрение, что если взять идею дорогого аффтора, стереть нафиг его проектирование, почесать репу и сделать свое, то в результате получится не миллион, а сто и не кластер а комп а может и вообще на WinXp Home Edition+ mySQL запашет прекрасно... Честно говоря, у меня тоже такая мысль бродит. Ну да ладно. Что мне показалось неправильным. Разряженная таблица с тысячами полей. Кажется во всех базах есть ограничение на количество полей в таблице, следовательно реально заданую структуру можно сделать только на вариациях модели Тенцера. И уж совсем меня привело в шок требование добавления полей в таблицу Ну да ладно-2. Если это действительно клевая идея, то вмешаются факторы политические и экономические. Конкуренты создадут аналогичный продукт и будет не 1 млн запросов в секунду, а тысяч 5-10. А Китай запретит ее использование на своей территории ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2006, 23:54 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Модератор: Тут этому топику будет лучше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2006, 00:07 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Как я понял, sysprg, Вы уже провели эксперимент, о котором я говорил, и получили результат: "все время уходит на генерацию индексов" и "никакой памяти не хватает". Если не секрет, не могли бы Вы рассказать, хотя бы вкратце, подробности эксперимента. Какую технологию БД Вы использовали ? Применяли ли Вы какой-либо метод сокращения составных индексов (например, "отсечение", поскольку в запросах обычно используется до 5, например, атрибутов; "интересов", конечно, много, но сложно представить пользователей, которые указывали бы в запросах условия на 28 атрибутов)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2006, 00:31 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Anton DemidovЯ вам еще раз настоятельно рекомендую освежить в памяти принципы работы bitmap индексов в Оракле или EVT индексов у DB2. Индексируйте таким образом все колонки с атрибутами и тогла БД сможет просто применяя битовые операции быстро найти необходимые пересечения.Сказу замечу, что bitmap-индексы подходят только для тех атрибутов, которые являются перечислениями (или у которых очень мало значений в реальной базе данных). Особенно хороши они для бинарных атрибутов. :) К счастью, многие атрибуты в реальном приложении будут бинарными, многие другие - перечислениями. И bitmaps для них применимы. Однако, bitmaps не панацея и в моей задаче не помогают существенно ускорить выборки. Предположим, что у нас есть две битовых маски - на два "популярных" значения двух разных атрибутов. В одном случае у нас есть битовая маска содержащая 10 тысяч единиц, в другом случае - 10 миллионов (при общей длине несжатой маски в 100 миллионов битов). Первую битовую маску хорошая СУБД эффективно сожмет. Вторую тоже может немножко поджать, но накладные расходы на компрессию велики и она не станет с ней заморачиваться. И вот у нас есть битовая маска длиной в 100 миллионов битов. Это 100000000 битов / 8 = ~11 мегабайтов данных. Если ради каждого запроса мы будем считывать с диска для проверки (или для наложения по AND) эти 11 мегабайтов в каждом запросе - система не справится с нагрузкой. Если даже предположить, что эти 11 мегабайтов лежат в памяти одной машины - то все равно плохо, так как данная машина станет "бутылочным горлом" (если этот атрибут популярный и все за ним лезут к этой машине)... Если эти 11 мегабайт поделить на страницы и размазать по кластеру - тогда ради элементарного слияния двух атрибутов мы будем дергать сотни хостов, собирая кусочки битовой карты... Не говоря уже о том, что таких индексов для атрибута-перечисления будет несколько - по одному на каждое значение. Так что не всегда они целесообразны и помогают. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2006, 04:25 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Выбегалло2. пользователь запрашивает товар с атрибутами 1, 10 и 121. Допустим, эти атрибуты могут храниться в колонках 1, 20 и 54.А зачем нужно такое переименование? Почему атрибуты 1, 10 и 121 не хранятся прямо в колонках 1, 10 и 121? Чтобы сделать возможным хранение нескольких разных атрибутов в одной и той же колонке, если они не могут быть указаны для одного товара одновременно (в силу семантики типов товаров)? Если так, тогда я понимаю Вашу идею, иначе извиняюсь, но ничего не понял - поэтому задаю вопрос на уточнение... ВыбегаллоПри формировании запроса приложение учитывает, в каких колонках эти атрибуты имеются, и создает SELECT * from tovar where col1 = 1 and col20 = 10 and col54=121. Уверяю вас, данный запрос при наличии индекса на каждую колонку (и up to date статистики по этому индексу) будет летать - сначала выберется наиболее избирательный индекс, затем выберется сотня строк, потом , если СУБД не позволяет использовать одновременно 2 индекса, банально проверятся значения в остальных колонках - короче, совершенно стандартная ситуация, давно и прочно отработанная.Уверяю Вас, в этой ситуации внутренне СУБД поведет себя именно так, как я неоднократно описывал - она займется пересечениями коротких списков с очень длинными (или наложениями очень длинных битмапов) и в результате мы получим неприемлемое быстродействие. К тому же в Вашей схемы Вы не учитываете, что далеко не все атрибуты бинарные, часто нас интересует не только факт наличия атрибута, но и его значение - оно задает критерий выборки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2006, 18:02 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg miksoftТаки объясните, пожалуйста, чем именно не нравится такой метод?"Физикой" процесса выполнения запроса. "Физика" процесса (обычно это называют планом выполения запроса), которую описали вы, далеко не единственный способ строить выборки на такой структуре данных. Ув. shuklin правильно отметил: shuklin sysprg И вот теперь они возьмут последний список из 2 миллионов элементов , увидят что многовато будет (для этого ведется статистика) и сделают full scan по 1000 записей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2006, 20:37 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Я осилил этот топик, местами даже не пропускал :) 2 автор: Хотя тут по большей части обсуждаются технические вопросы, вот что хочу спросить: 1. Инвестору Вы, конечно, предоставите некий прототип подобной системы? Пусть работающий с обработкой 10 или 100 запросов в сек., но РАБОТАЮЩИЙ? Нет ли такого прототипа уже сейчас? Или макета прототипа, где описана система с задачами, с картинками как это представляется в работе и т.п.? Или пока что есть только задумка? 2. А кого Вы представляете? Ну там юридическое лицо (фирма, НИИ и т.д.) или физическое лицо (себя лично)? Что Вы ЛИЧНО хотите вложить это дело (в смысле какую роль видите за собой) хотя бы на первых этапах проекта? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2006, 15:19 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Андрей - он же дядя Сэм1. Инвестору Вы, конечно, предоставите некий прототип подобной системы? Пусть работающий с обработкой 10 или 100 запросов в сек., но РАБОТАЮЩИЙ?У нас есть хорошо проработанная схема данных для нашего проекта, которая позволяет решить все поставленные в его рамках задачи (которые мы видим на данный момент). Но у нас пока что нет законченного технического решения для СУБД под эту схему. Что же касается инвесторов, то не факт, что нужно привлекать в такой проект инвестиции с самого начала, отдавая кому-то часть компании. ЕСЛИ у нас получится наша задумка, то мы вообще не хотим продавать фирму, поэтому нам не все равно, кто там будет в совете директоров. :) Андрей - он же дядя СэмНет ли такого прототипа уже сейчас? Или макета прототипа, где описана система с задачами, с картинками как это представляется в работе и т.п.?Сейчас нет необходимости в прототипе. Если это будет целесообразно, то всегда можно сделать работающий прототип, использующий предложенную тут схему entiry-attribute-value. Но это техническая сторона вопроса, кроме которой в проекте есть не менее важная идея массового сервиса, точнее группы сервисов, основанных на базе данных с такими характеристиками, как было описано. Сервис по своей сущности задуман именно как глобальный и поэтому для меня так важно быстродействие СУБД. Мы считаем, что в этой области на рынке победит тот, кто запустит подобный сервис первым и (это важно!) не захлебнется от взрывного роста трафика. Андрей - он же дядя Сэм2. А кого Вы представляете? Ну там юридическое лицо (фирма, НИИ и т.д.) или физическое лицо (себя лично)?Себя лично. Андрей - он же дядя СэмЧто Вы ЛИЧНО хотите вложить это дело (в смысле какую роль видите за собой) хотя бы на первых этапах проекта?Если решение проблемы масштабируемости будет найдено, то проект, который сейчас существует как идея , превратится в проект моей маленькой startup-компании. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2006, 18:57 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Андрей - он же дядя Сэм - молодец. Грамотно расставил акценты. После фантастического заявления про "хорошо проработанную схему данных", под которую не удалось подобрать СУБД, уже не удивительно почему sysprg не ответил на простой вопрос о результатах простого эксперимента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2006, 20:32 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Чернышев Андрей ЛеонидовичПосле фантастического заявления про "хорошо проработанную схему данных", под которую не удалось подобрать СУБД, уже не удивительно почему sysprg не ответил на простой вопрос о результатах простого эксперимента.Эксперимент, о котором Вы говорите, лишен смысла. Общее представление по количеству атрибутов и разных значений этих атрибутов у нас есть и общая картина приводилась мной в процессе обсуждения. Этого достаточно. Точная информация о распределении значений и атрибутов просто в принципе не может быть получена по простой причине - мы не можем знать этого до запуска проекта и более того, эти распределения будут существенно меняться в процессе эволюции сервиса. Когда появляется новый информационный сервис люди начинают осваивать его и находят ему различные применения, иногда даже неочевидные для создателей сервиса. Заранее никто не может предсказать, каково будет распределение данных в подобном сервисе и главное - оно будет меняться в процессе работы и по мере роста популярности. Просто задумайтесь на досуге над простым вопросом - могли ли создатели www.ebay.com ЗАРАНЕЕ знать, какой будет статистика наполнения базы и запросов? Поэтому вообще не нужно закладываться на распределения значений. Той информации об общей картине, которую я Вам сообщил, достаточно для разработки архитектуры. Далее, когда Вы говорите об объеме индексов, например, это подразумевает, что разработана какая-то модель потока запросов от пользователей. Но по условиям задачи мы не знаем характер этих запросов! Пройдет пара лет, пока такая статистика будет собрана. Строить какие-то модели бессмысленно - это интеллектуальный онанизм, который отнимет время, а модели окажутся неадекватными реальным шаблонам пользовательских запросов. Не нужно затачиваться ни на что, кроме общей схемы. Нужно общее решение задачи быстрой выборки из разряженного, но очень многомерного пространства. Не идеальное, но ОПТИМАЛЬНОЕ решение этой задачи. Как я понимаю, Вы ничего предложить по этой теме не можете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 01:13 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprgНе идеальное, но ОПТИМАЛЬНОЕ решение этой задачи. Гы-гы, оптимальное является "идеальным" по определению! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 09:47 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprgВ одном случае у нас есть битовая маска содержащая 10 тысяч единиц, в другом случае - 10 миллионов (при общей длине несжатой маски в 100 миллионов битов). Первую битовую маску хорошая СУБД эффективно сожмет. Вторую тоже может немножко поджать, но накладные расходы на компрессию велики и она не станет с ней заморачиваться. Битовые индексы очень хорошо сжимаются - в десятки раз - простыми алгоритмами. Вы считаете, что накладные расходы на межузловой трафик будут меньше, чем расходы на сжатие/распаковку битмапа? Вы пускаетесь в пространные рассуждения по поводу многомерных пространств, но при этом создаётся в печатление абсолютного непонимания элементарных вещей (например R-деревья и т.п. в Вашей задаче неприменимы вовсе не по причине взрыва размерности...). С одной стороны Вы говорите о распределённой системе, но при этом постоянно что-то куда-то хотитете перекачать в немерянных объёмах... Когда же речь заходит о "распределении" нагрузки, Вам это снова не нравится - как так все узлы нагружать, нехорошо! Так что Вы хотите? "За рубли и в кредит?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 11:07 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprg shuklinВащето ваша задача решается за O(1) но это O в практических случаях скорее всего окажеться больше чем обычные O(NlnN)Каким образом? O это ведь всего лишь оценка, с точностью до множителя. Скажем на миллиарде строк O(1) может быть запросто >>>> O(N*N) ИМХО более адекватной будет оценка O(AlnN), где A - число аттрибутов по которым идет поиск, а N - число записей. И еще, надо учитывать, что выигрыш в скорости означает проигрыш в размере индекса. А это означает дополнительную потерю в IO при вставках. А что касается реализации - можно взять архитектуру БД аналогичную Cerebrum - пропадает проблема хранения объектов с переменным числом аттрибутов. Потом нормализуете аттрибуты. Строите инвертированные деревья. Получаете O(AlnN) при еще вменяемой потере памяти на индексы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:12 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Cat2Что мне показалось неправильным. Разряженная таблица с тысячами полей. Кажется во всех базах есть ограничение на количество полей в таблице, следовательно реально заданую структуру можно сделать только на вариациях модели Тенцера. И уж совсем меня привело в шок требование добавления полей в таблицуИзвините что вмешуюсь, но не во всех движках. В Cerebrum "колонок" в "таблице" может быть до 2х млрд. Это в текущей версии. Добавлять аттрибуты к записи можно независимо от наличия "колонок" в "таблицах". Одну и ту же запись можно держать одновременно в разных таблицах и иметь для нее разные колонки соответсвенно для каждой таблицы. и тд. и тп... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:18 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
pavelvpБитовые индексы очень хорошо сжимаются - в десятки раз - простыми алгоритмами.Согласен, они хорошо сжимаются простыми алгоритмами, но только в двух случаях - или если они разряженные, или если распределение единиц там далеко от случайного. Чтобы сделать его не случайным, нужно отсортировать записи в базе данных по тому атрибуту, для которого мы строим битовую маску или же должна быть четко выраженная корреляция между первичным ключом, по которому отсортированы записи, и нашим атрибутом. Атрибутов много, а первичный ключ один, большинство атрибутов с ним четкой корреляции не имеют, поэтому битовая маска будет "случайной". Если там сопоставимое количество единиц и нулей, то разряженной ее не назовешь. Эффективно сжать такие маски можно только компрессией общего вида, из которых наиболее эффективной по скорости будет какая-нибудь адаптация методов семейства LZ к двоичному алфавиту. Это не будет быстро работать и поэтому никем не используется на практике для on-line транзакций, насколько мне известно. Простые же методы компрессии хорошо жмут только сильно разряженные битовые маски. pavelvpВы считаете, что накладные расходы на межузловой трафик будут меньше, чем расходы на сжатие/распаковку битмапа?Даже если эту битовую маску идеально сжать самым совершенным методом, то в моем примере она займет в сжатом виде ~2.4 мегабайта. Пересекать битовые маски такого размера в каждом запросе - согласитесь будет накладно по быстродействию даже при десятках тысяч запросов в секунду, о сотнях же тысяч запросов в секунду не может быть и речи при разумной стоимости железа. pavelvpВы пускаетесь в пространные рассуждения по поводу многомерных пространств, но при этом создаётся в печатление абсолютного непонимания элементарных вещей (например R-деревья и т.п. в Вашей задаче неприменимы вовсе не по причине взрыва размерности...).Во-первых, R-деревья это отнюдь не тривиальные вещи, во-вторых, для моей задачи они не подходят именно из-за "взрыва размерности" - как показали различные исследования, эта структура при размерности в районе 5-6 проигрывает полному перебору. pavelvpС одной стороны Вы говорите о распределённой системе, но при этом постоянно что-то куда-то хотитете перекачать в немерянных объёмах...Наоборот, я не хочу ничего перекачивать в немерянных объемах, и именно поэтому мне нужна структура индекса, которая быстро выходит на нужную область пространства. Качать в немерянных объемах мне придется при традиционном подходе (с индексами по отдельным атрибутам или с индексом по классическому разложению в модели EAV). pavelvpКогда же речь заходит о "распределении" нагрузки, Вам это снова не нравится - как так все узлы нагружать, нехорошо! Так что Вы хотите?Наоборот, я за распределение нагрузки - только за такое, которое O(размер выборки), а не O(количество узлов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:48 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
shuklinИзвините что вмешуюсь, но не во всех движках. В Cerebrum "колонок" в "таблице" может быть до 2х млрд. Это в текущей версии. Добавлять аттрибуты к записи можно независимо от наличия "колонок" в "таблицах". Одну и ту же запись можно держать одновременно в разных таблицах и иметь для нее разные колонки соответсвенно для каждой таблицы. и тд. и тп...Согласен с Вами, что от терминологии таблиц вообще целесообразно отказаться в таких задачах (и в плане реализации таблицы тоже не лучшая идея), но для описания постановки задачи или при реализации поверх существующих СУБД можно пользоваться и табличной терминологией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 14:54 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprgНаоборот, я не хочу ничего перекачивать в немерянных объемах, и именно поэтому мне нужна структура индекса, которая быстро выходит на нужную область пространства. Заладили одно и то же. Быстро, очень быстро, офигенно быстро... Что значит быстро? Каковы Ваши критерии? Миллион запросов в секунду - это не критерий... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 15:21 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
pavelvpЧто значит быстро? Каковы Ваши критерии? Миллион запросов в секунду - это не критерий...Идеальное решение - это время порядка O(m*ln(N)), где m - это объем окончательного результата выборки, N - количество записей в базе данных. Решения, основанные на индексах по отдельным атрибутам, дают в плохом случае время пропорциональное O(d*N*ln(N)), где d - это размерность подпространства выборки. Вдоль отдельно взятого атрибута у нас могут быть выбраны практически все записи в неудачном случае - поэтому в формуле фигурирует "N". Поэтому при плохом стечение обстоятельств результат даже хуже, чем O(N), то есть хуже полного перебора. Меня это не устраивает, значит, нужно что-то промежуточное между идеальным решением и "классическим" - но ближе к идеальному. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 18:33 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Худшие предположения, на которые нас вывел Андрей - он же дядя Сэм, подтвердились. Для простого эксперимента, который легко провести, не нужна никакая "точная информация о распределении значений и атрибутов". Ваши отвлеченные рассуждения о "какой-то модели потока запросов" и т.п. противоречат Вашим ключевым высказываниям: 1) "схема данных хорошо проработана" (уже !); 2) "мне нужна структура индекса, которая быстро выходит на нужную область пространства". Структура индекса, с которой давно можно было провести простейший эксперимент на любых мыслимых и не мыслимых "объемах", не просто "быстро выходит на область", а сразу выдает результат (при "отсечениях" - "быстро выходит на область"). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 21:09 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Чернышев Андрей ЛеонидовичДля простого эксперимента, который легко провести, не нужна никакая "точная информация о распределении значений и атрибутов".В таком эксперименте вообще нет необходимости, потому, что его результаты могут быть получены просто через несложные выкладки на бумаге при знании устройства индексов в СУБД. Чернышев Андрей ЛеонидовичВаши отвлеченные рассуждения о "какой-то модели потока запросов" и т.п. противоречат Вашим ключевым высказываниям: 1) "схема данных хорошо проработана" (уже !); 2) "мне нужна структура индекса, которая быстро выходит на нужную область пространства. Структура индекса, с которой давно можно было провести простейший эксперимент на любых мыслимых и не мыслимых "объемах", не просто "быстро выходит на область", а сразу выдает результат (при "отсечениях" - "быстро выходит на область").Если я построю превышающее число атомов во Вселенной количество индексов (все неупорядоченные сочетания по 5 злементов из 1000), тогда - да, а иначе Ваше предложение вообще бесполезно. Или Вы имеете ввиду не то, что описали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 21:50 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Вы теперь уточняете, что все "атрибуты" "записи" заполняются, но пользователи указывают в запросе условия на 5 или менее атрибутов ? Или, действительно, "ничего не известно" ? Тогда в каждой "записи" могут быть введены все "атрибуты", и каждый из миллиардов пользователей может установить в запросе условия на все "атрибуты", которые в данный момент имеются в "отношении". Ведь "Ваша система" должна нормально функционировать и в этом случае ? Правильно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 22:14 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
И, кстати, если Вы в начале выразились точно ("большинство атрибутов не заполнено у большинства записей"), то что Вам показал "эксперимент на бумаге", если повышать "отсечение" в зависимости от количества заполненных атрибутов в записи ? Это хорошо известный способ. И алгоритм поиска простой; если записей с большим количеством заполненных атрибутов действительно не много, то все должно "нормально" работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2006, 22:43 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprgОднако, при ста миллионах записей (прогнозируемое наполнение базы уже в первые годы работы) ... зачем Вам 1000-нодовый кластер для хранения 100млн. записей??? Сколько это будет в ГБ? 10? 20? 100? Ну скажем, 200. Ну и купите себе 200ГБ ОЗУ... Надо масштабироваться - еще один сервер и диспетчер запросов. И поднимать данные в ОЗУ на каждой ноде. у меня в месяц данных 250-300млн. приходит... а тут - первые годы. У других, еще больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 00:56 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
AAron sysprgОднако, при ста миллионах записей (прогнозируемое наполнение базы уже в первые годы работы) ... зачем Вам 1000-нодовый кластер для хранения 100млн. записей???Не для хранения, но для скорости обработки запросов. 1000 процессоров это как ни крути намного больше, чем возможности самой лучшей SMP-системы, у которой еще и память общая - и так как на 200 гигабайт никакого L1-L3 кэша не хватит, то эта память - бутылочное горло всей системы. Вообще мне сложно понять, зачем (кроме аргумента традиций и больших наработок) сейчас нужны машины с 64 CPU, когда намного быстрее будет работь 64 CPU каждый со своей индивидуальной полноценной памятью (отдельной шиной и модулями памяти) и быстрым интерконнектом (Infiniband, etc). Просто видимо кластера делать не умеют хорошо на уровне софта СУБД. :) AAronСколько это будет в ГБ? 10? 20? 100? Ну скажем, 200. Ну и купите себе 200ГБ ОЗУ...Собственно данных около 200ГБ и будет, не считая индексов и blob. Через пару-тройку лет конечно, не сразу. AAronу меня в месяц данных 250-300млн. приходит... а тут - первые годы. У других, еще больше.Я имею ввиду данные, требующие оперативной обработки в задачах поиска, в реальном времени. Хранилище данных для особых специальных нужд и истории - это отдельная задача, но там не так критично быстродействие и сойдет традиционная архитектура. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 04:38 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Чернышев Андрей ЛеонидовичВы теперь уточняете, что все "атрибуты" "записи" заполняются, но пользователи указывают в запросе условия на 5 или менее атрибутов?Нет, это просто типичное число атрибутов в одном запросе - пользователю редко нужно больше 5 атрибутов одновременно (но даже если он сам задает меньше 5 атрибутов, то зачастую 2-3 атрибута подкидываются неявным образом). Так что 4-6 атрибутов в запросе будут типичной цифрой. Я соглашусь с Вами (если правильно понимаю), что отсечения лишних записей по 5 атрибутам практически всегда будет достаточно для отличного быстродействия даже более сложных запросов. Если бы по 5 атрибутам, но ПРОИЗВОЛЬНО выбранным (из тысячи доступных), база искала бы быстро - остальное было бы делом техники... Сложность в том, что практически всегда в запрос попадает хотя бы один атрибут из числа примерно 20-30 таких атрибутов, у которых интересному для пользователя значению (или диапазону значений) соответствует несколько миллионов записей. А вот другие атрибуты могут быть самые разные и общем случае нет корреляции между тем, какой именно атрибут из этих 20-30 "плохих" выбран и какой дополнительный атрибут будет взят вместе с ним... Чернышев Андрей ЛеонидовичИли, действительно, "ничего не известно" ? Тогда в каждой "записи" могут быть введены все "атрибуты", и каждый из миллиардов пользователей может установить в запросе условия на все "атрибуты", которые в данный момент имеются в "отношении". Ведь "Ваша система" должна нормально функционировать и в этом случае ? Правильно ?Потенциально могут быть введены и все атрибуты, и кто-то так и сделает (хотя бы из вредности), но на практике количество атрибутов падает по экспоненте по сравнению с количеством пользователей, которые хотят запрос такой сложности. Типичное значение - 5 атрибутов в запросе. Из них всегда есть 1, 2 а то и 3 атрибута с длинными диапазонами интересующих значений - причем разные, а не одни и те же три атрибута (по которым был бы построен индекс заранее). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 04:58 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Я долго вспоминал, что это мне напоминает. И вот: тынц ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 10:15 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprgЕсли бы по 5 атрибутам, но ПРОИЗВОЛЬНО выбранным (из тысячи доступных), база искала бы быстро - остальное было бы делом техники...Строим инвертированные индексы на нормализованных значениях аттрибутов и ориентировочно получаем O(A * R * lnN) где А - число аттрибутов R - колличество найденных записей N - всего записей. В особо неудавшихся случаях будем иметь O(A * N) что есть полный перебор и что статистически будет маловероятно. При поиске по 5 аттрибутам и сотне миллионам N вполне разумная сложность. Требуемые показатели придется выжимать распараллеливанием. Так что нанимайте кодеров и педалить, педалить, педалить... Если оно того стоит - придется несколько потратится на разработчиков ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 14:51 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
PS ващето это стандартная задача полнотекстового поиска по обязательному вхождениию нескольких слов в текст. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 14:56 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
pavelvp sysprgВ одном случае у нас есть битовая маска содержащая 10 тысяч единиц, в другом случае - 10 миллионов (при общей длине несжатой маски в 100 миллионов битов). Первую битовую маску хорошая СУБД эффективно сожмет. Вторую тоже может немножко поджать, но накладные расходы на компрессию велики и она не станет с ней заморачиваться. Битовые индексы очень хорошо сжимаются - в десятки раз - простыми алгоритмами. Да вы о чём говорите?! По его же расчетам выходит несчастных 11 мегабайт, и он их собрался по кластеру "размазывать". А вы их сжимать. Дурдом какой-то. Всё, ухожу в монастырь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 20:01 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Я про макеты спросил только потому, что топик уже разросся нереально, а если б выложили хоть какой-то пример, проще к чему-то прийти. Выложите материал, по которому можно будет судить о задуманной системе, иначе задача, которую Вы сформулировали, слишком широка. По крайней мере, мне не совсем понятно, что Вы хотите сделать. Если есть продуманная схема, то хотелось бы взглянуть на неё. К примеру, информацию о каких именно сущностях собираетесь хранить? Я знаю о поисковой системе в не то чтобы узкой, но всё ж таки ограниченной технической области. В ней 15 тысяч различных атрибутов, причём одно изделие характеризуется в среднем с помощью 40 (из них 5 встречаются относительно часто). Согласен, что обычно технических параметров больше каких-либо других, но всё ж таки Ваши прикидки числа атрибутов можно смело увеличить на пару порядков до 100 тысяч, судя по тому что я прочитал. В поисковой системе, которую я привёл в пример, есть по крайней мере 600 единиц измерения и пользователям нужно переводить миллиметры в метры и т.п. Опять же, судя по размаху, в Вашей системе их будет больше, даже если не брать особенности отдельных стран вроде языков, денежных единиц и систем мер. И у Вас появится неслабая система классификации всего этого добра. Сделайте пробный работающий вариант, не исключено, что найдёте кучу мест, которые нельзя было предусмотреть в теории. ИМХО, если бы я делал что-то подобное, то начал именно с малой системы, на которой можно будет обкатать идею и тогда она уже может быть превратиться в проект. Хотя, как говорится, хозяин - барин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 20:17 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Anton DemidovПо его же расчетам выходит несчастных 11 мегабайт, и он их собрался по кластеру "размазывать". А вы их сжимать. Дурдом какой-то. Всё, ухожу в монастырь.В монастыре между размышлениями о вечном поищите (для саморазвития) ответы на следующие два вопроса: - Сколько раз в секунду можно прокачать через память 11 мегабайтов данных на серийном компьютере, который стоит вменяемых денег? (Hint: это будет Ваш лимит на число запросов в секунду без кластера). - До какого минимального объема можно сжать битовый индекс, содержащий 2 миллиона единиц в случайных позициях с помощью "идеального" алгоритма? (Hints: белый шум, количество информации). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 20:50 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Ваша лень, sysprg, наводит на грустные размышления. Может это, все-таки, курсовик, "зависший" с прошлого семестра ? Написал за Вас пару строк кода. Индексирование записи при n(количество заполненных атрибутов в записи из 1000 атрибутов)=6,7,8,9 (напомню, в индекс помещается n! сочетаний, то есть все сочетания) делается мгновенно. Индексирование записи, в которой заполнены все 1000 атрибутов (в индекс помещаются все сочетания пар атрибутов) делается так же мгновенно. Область индекса разбивается на подобласти. В первой содержатся индексы по всем записям, в которых значения имеют от 1 до 9 атрибутов. И т.д. Если Вас, все-таки, отчислят, это будет справедливо - нельзя же базы данных только "на бумаге" строить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 20:54 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> 15 тысяч различных атрибутов ;)) Вы уверены в том, что это именно _различные атрибуты_? > 600 единиц измерения ;)) Не смущает, что в SI их меньше сотни? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 23:16 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621> 600 единиц измерения ;)) Не смущает, что в SI их меньше сотни?Возможно под единицами измерения в том числе подразумевались цвет, вкус, запах, ворсистость и прочая в том же духе. Как бы шкала существует, хотя и не всегда имеющая порядок, измерения - тоже. С некоторой натяжкой можно принять за единицу измерения. То же самое и с атрибутами. Каждый товар может иметь свои особенности, тот же цвет в одном товаре может фиксироваться для трех позиций, а в другом - для десяти. Причем позиции для разных товаров по смыслу могут напрочь не совпадать и сократить их число не представляется возможным. P.S. Допускаю, что автор на самом деле имел ввиду что-то иное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2006, 23:40 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> Как бы шкала существует Возьмем, например, цвет (он просто первый в списке). Ваши варианты шкал? > хотя и не всегда имеющая порядок В корень зрите. Т. е. легко можно различать стандартные единицы измерений и хм... дополнительные (которые к тому же могут существовать параллельно). > С некоторой натяжкой можно принять за единицу измерения. Imho неверная посылка. Смотря по тому, что за шкала. > по смыслу могут напрочь не совпадать Как Вы этот "смысл" собираетесь определять? ;) Есть варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 01:35 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621> по смыслу могут напрочь не совпадать Как Вы этот "смысл" собираетесь определять? ;) Есть варианты?Вообще, это наверное лучше к sysprg. Возьмем с потолка: белый верх, черный низ для одного из товаров, для другого - белый перед, черный зад, бежевый корпус. Как бы атрибуты есть, и для конкретного товара их вряд ли много, но если их посчитать для всего спектра товаров, то их много и они абсолютно не пересекаются. Отсюда выплывает полный список из "15 тысяч атрибутов". Повторюсь, это всего лишь попытка понять, что имеет в виду sysprg. IMHO, он просто свалил все в кучу, не заботясь о деталях. guest_20040621> С некоторой натяжкой можно принять за единицу измерения. Imho неверная посылка. Смотря по тому, что за шкала.Боюсь, это тоже к sysprg, я всего лишь пытался понять, что он имеет в виду. Полагаю, что подразумевалось нечто в духе этого . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 02:24 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> лучше к sysprg Человек себе все уже построил. И на мой взгляд это "все" - полное дерьмо. Так что ничего нового sysprg мне не скажет. Даже если сильно захочет. На самом деле вы думаете в правильном направлении: атрибуты будут иметь смысл только и исключительно в сочетании с семантической схемой. > Возьмем с потолка Зачем? ;) Вернемся к тому, с чего начали. Единиц измерения, конечно, будет не сильно больше стандартных. Подавляющее большинство дополнительных шкал будут представлять собой потребительские или технологические шкалы. Фишка только и исключительно в их структуре. > свалил все в кучу Так и есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 03:35 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621;)) Вы уверены в том, что это именно _различные атрибуты_? guest_20040621;)) Не смущает, что в SI их меньше сотни? ChA по большей части объяснил насчёт характеристик (только система в технической области). С единицами измерения почти тоже, только они ещё ввели собственные показатели и собственные же единицы измерения - по большей части отношение одной величины к другой (условно, Ватты на метры - вместо цвета, запаха и т.п.). Это-то, по-моему, элементарно понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 18:43 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Кстати, sysprg этого Как бы атрибуты есть, и для конкретного товара их вряд ли много, но если их посчитать для всего спектра товаров, то их много и они абсолютно не пересекаются. Отсюда выплывает полный список из "15 тысяч атрибутов". Повторюсь, это всего лишь попытка понять, что имеет в виду sysprg. не говорил. Во-первых, это сказал я и указал на то, что атрибутов у него будет больше. Во-вторых ни слова не было о том, как эти атрибуты будут представлены. Я указал на масштаб и возможный подводный камень при построении системы классификации атрибутов и единиц измерения, если она вообще задумывалась, конечно. А уж для международной мегапоисковой системы-то :) К примеру, guest_20040621 В корень зрите. Т. е. легко можно различать стандартные единицы измерений и хм... дополнительные (которые к тому же могут существовать параллельно). Люди, давайте о конкретике, а то только уведёте от темы. Говорите о семантике и тут же предалагаете такое "лобовое" решение - основные и дополнительные. И что с того, что одни основные, а другие дополнительные? Проще от этого никому не будет. Или Вы имеете ввиду, что их можно отличить одни от других? Это да, трудно не заметить ;)) А вот система поможет реально, поскольку это добро УЖЕ работает. Подводя черту вышесказанному, опять же говорю о том, что нужно обдумать систему классификации, что-то реализовать, а потом уже смотреть на производительность. Если она вообще будет узким местом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 19:11 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> Это-то, по-моему, элементарно понятно. Дружище, лично мне абсолютно очевидно, что то, что Вы описали, единицами измерения не является. И еще мне абсолютно очевидна абсурдность существования 15 тысяч различных независимых атрибутов. Типичный пример корявого проектирования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 19:17 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621Типичный пример корявого проектирования.А корявое оно от того что РБД такого делать не умеют? ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 20:50 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> А корявое оно от того что РБД такого делать не умеют? ;) Дима, Вам учиться нужно, а не ахинею в форумах писать. Криворукость кодеров никак не характеризует возможности СУБД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2006, 22:21 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621Дружище, лично мне абсолютно очевидно, что то, что Вы описали, единицами измерения не является. И еще мне абсолютно очевидна абсурдность существования 15 тысяч различных независимых атрибутов. Типичный пример корявого проектирования. О майн готт! Родной Вы мой человече, неужели хотя бы в паре постов нельзя обойтись без своего "фи"? Прям как пенсионер, который сидит на лавке и ругает всех подряд Ну что с того что Вам она очевидна? Делали систему классификации специалисты в своей предметной области, отнюдь не программеры. Отмечу, поскольку Вы плохо читаете, систему классификации атрибутов и единиц измерения, а не поисковую систему. И им нужна именно эта система, а не та, которую предложит проектировщик, даже не въехавший в суть вопроса. Если люди занимаются подобными вопросами уже много лет, сделали кучу наработок, то что, придёт программер и скажет - это плохо, потому что много? И при этом он даже НЕ ВИДЕЛ самой системы в работе? P.S. Атрибуты не независимые, а различные. Зависимость-то есть, иначе б не было системы классификации атрибутов и единиц измерения. P.P.S. Эх, выделяете цитированием фразы и придираетесь. Может уже пора наконец-то съездить в отпуск? Когда были в последний раз-то? Пару лет назад? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 07:27 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
shuklinPS ващето это стандартная задача полнотекстового поиска по обязательному вхождениию нескольких слов в текст.Многие задачи похожи в чем-то, но имеют и свои существенные особенности. При "классическом" поиске слова нас интересует только точное совпадение или несовпадение, а тут может быть запрос по диапазону значений. Плюс статистику для частоты встречаемости слов можно считать неизменной в первом приближении. Правда, нечеткий поиск (например, в пределах какой-то edit distance) уже похож на мою задачу, согласен. Это, кстати, тоже проблема - судя по публикациям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 14:38 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
sysprgа тут может быть запрос по диапазону значений. В таком случае ориентировочные оценки сложности в моих предыдущих сообщениях следует считать неприменимыми. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 16:18 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> неужели хотя бы в паре постов нельзя обойтись без своего "фи"? Нельзя, дружище. Объясню, почему: все это дерьмо читают в том числе люди с никакой подготовкой; важно, чтобы у них складывалось правильное представление о существующем положении вещей. "Работает" - никак не связано с тем, что "работает правильно". Видите ли, в чем дело: плохая структура данных - гарантия плохого качества приложения в целом. Независимо от качества не-ddl кода. И мне бы сильно хотелось, чтобы студент (пофиг, курсовую он пишет или пытается денег заработать) не читал статейки Тенцера или Celco, не участвовал в тупых обсуждениях о применении суррогатных ключей или именовании объектов на родном языке, а работал с первоисточниками и думал головой. > что с того что Вам она очевидна? Приведенный пример - хм... крайне низкого качества и в лучшем случае может служить иллюстрацией того, как не нужно делать. А отнюдь не примером для подражания. > систему классификации атрибутов и единиц измерения При чем здесь классификация? > им нужна именно эта система Я за них рад Вы себе не представляете как. Знаете, дружище, читая такие обсуждения я, с одной стороны, понимаю, что отсутствие работы в ближайшие десять лет мне не грозит, а с другой - поверьте, действительно хочется обсуждать реально интересные проблемы, а не бред сивой кобылы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 16:32 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
2 guest_20040621. Уже веселее читать, а то, ей-богу, я воспринимал это как брюзжание :)) Может у Вас мало времени, но хотелось бы чтобы конструктив не тонул в море критики :)) guest_20040621Приведенный пример - хм... крайне низкого качества и в лучшем случае может служить иллюстрацией того, как не нужно делать. А отнюдь не примером для подражания. Да я и не даю пример, хотя, пожалуй, могло так и показаться. Я хотел очертить масштаб и самое слабое место в системе. Мне показалось, что автор топика не рассматривал атрибуты с точки зрения их смысла и близости и привязку к единицам измерения и особенностям стран. Поэтому не стоило бы бежать впереди паровоза и заниматься проблемами производительности вот так с налёта. Что касается приведённой в пример системы - а что делать? Система уже была спроектирована, данные под неё были, а пользователи считали, что так и должно быть. Может что посоветуете: как идти против всех остальных, которые считают себя специалистами-предметниками? Без классификации эта куча атрибутов была бы просто нереализуема. Наверное, тогда это было меньшим из зол. Сейчас-то видно, что нужно изменить, а тогда вряд-ли. Если у Вас большой опыт, то да, конечно, Вы бы, вероятно, предусмотрели множество вещей. Но если сроки установлены жёстко, на перепроектирование времени нет и нужно уложиться в заданные рамки, то можно, конечно, пойти ва-банк, но для этого нужно иметь очень большой авторитет и "вес". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 19:20 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621Видите ли, в чем дело: плохая структура данных - гарантия плохого качества приложения в целом. Интересно, в чем вы оцениваете плохость и хорошесть структуры данных? И на основании чего вешаете на одну структуру ярлык плохой, а на другую - хорошей? Вот оставаясь в теме топика, чем плоха структура данных, предполагающая увеличение числа колонок некоторой таблицы до мллиона? И чем это координально хуже увеличения числа строк в той же таблице? Только тем что существующие промышленные СУБД не расчитаны на такой сценарий? Тогда, извините, модель данных бизнес процесса в полном порядке. Это не у бизнес логики проблемы а у текущей реализации СУБД. То что грамотному разработчику для какой то конкретной СУБД придется извращаться, чтоб реализовать этот нестандартный сценарий учитывая текущие ограничения этой конкретной СУБД к теме данного топика имеет весьма отдаленное отношение. Всеже окажите любезность и озвучте чем плоха структура данных предполагающая миллион колонок в таблице ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 19:40 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> самое слабое место в системе Если честно, я не очень понимаю, почему. Может, Вы расскажете, какие задачи должно решать описанное Вами приложение? > против всех остальных, которые считают себя специалистами-предметниками? А зачем? Каждый должен заниматься своим делом: специалист предметной области - формулировать то, что он хочет видеть, разработчик - проектировать. Никак не вместе и не наоборот. > Без классификации эта куча атрибутов была бы просто нереализуема При чем здесь опять классификация? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 20:54 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> в чем вы оцениваете плохость и хорошесть структуры данных? Ни в чем не оцениваю. Нет таких единиц. Либо структура данных приемлема для конкретной задачи, либо нет. > И на основании чего вешаете на одну структуру ярлык плохой, а на другую - хорошей? На основании формального описания задачи, разумеется. Никто ничего другого пока не придумал. С телепатическими способностями у меня - никак, к сожалению. > чем плоха структура данных, предполагающая увеличение числа колонок некоторой таблицы до мллиона? В принципе нет ни одного повода считать это решением вообще. Ни с точки зрения проектирования, ни с точки зрения здравого смысла. > существующие промышленные СУБД не расчитаны на такой сценарий? Это неправильно заданный вопрос. Не "СУБД не расчитаны", а СУБД предполагают наличие хотя бы минимальных знаний у того, кто занимается проектированием. Вы готовы привести пример сущности с миллионом независимых имеющих смысл атрибутов, которые можно регистрировать? > озвучте чем плоха структура данных предполагающая миллион колонок в таблице Дружище, Ваш вопрос не имеет смысла. Это не структура данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 20:54 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621> чем плоха структура данных, предполагающая увеличение числа колонок некоторой таблицы до мллиона? В принципе нет ни одного повода считать это решением вообще. Ни с точки зрения проектирования, ни с точки зрения здравого смысла. Однако до сих пор от вас я не услышал и ни одного довода для того чтобы не считать это решением, кроме guest_20040621Вы готовы привести пример сущности с миллионом независимых имеющих смысл атрибутов, которые можно регистрировать? А кто вам сказал, что в одном списке(таблице) обязательно хранить только одинаковые сущности? Опять же только текущие ограничения текущих реализаций и стереотипное мышление ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 21:06 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> обязательно хранить только одинаковые сущности? Никто не сказал. Более того, "одинаковость" - понятие растяжимое. Видите ли, в чем проблема: Вы рассматриваете способ хранения данных просто как способ хранения данных. А меня хранение данных интересует с точки зрения возможности извлечения информации. Так вот для этой цели безусловно необходимы и нормализация, и непротиворечивость, и целостность, и компактность. Которые проще и дешевле обеспечить стандартными средствами. > Опять же только текущие ограничения текущих реализаций У "текущих реализаций" нет мешающих мне ограничений. > и стереотипное мышление ;) Посмешили. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 21:38 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621А меня хранение данных интересует с точки зрения возможности извлечения информации. Так вот для этой цели безусловно необходимы и нормализация, и непротиворечивость, и целостность, и компактность. С этим я согласен, вот только как и нормализация, и непротиворечивость, и целостность приводят к неправильности 1 миллиона столбцов у таблицы? guest_20040621Которые проще и дешевле обеспечить стандартными средствами.Другими словами - только через ж т.к. по другому не умеем. Ну и я тут тоже об энтом жеж ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 21:51 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> только как и нормализация, и непротиворечивость, и целостность > приводят к неправильности 1 миллиона столбцов у таблицы? Обычно я в ответ на такие вопросы пишу: "чтение мануалов, букварей и пр. хрени - по такой-то тарифной ставке". Вы понимаете, что такое "независимый атрибут"? Или для Вас это просто набор букв? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 22:19 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621 Если честно, я не очень понимаю, почему. Может, Вы расскажете, какие задачи должно решать описанное Вами приложение? > Без классификации эта куча атрибутов была бы просто нереализуема При чем здесь опять классификация? Система - это упрощённо большой каталог, в котором хранится куча разнородной информации из одной предметной области. Вроде как если бы взяли последние ВАЗовские автомобили и описали все их комплектующие вплоть до болтов и гаек. И по этим параметрам нужно отыскивать нужные детали. Задача-то абсолютно стандартная. Но вот из-за того, что много атрибутов специфических - например, кол-во часов наработки на отказ при таком-то условии, затем при другом (по сути это один атрибут, только у него меняются условия проявления), был сделан вывод о том, что они формально вроде бы похожи, но использовать как один нельзя, поскольку нет прямой зависимости по условиям проявления. И тут выплыло это множество характеристик. Сделали большие группы атрибутов, затем поменьше и потом уже переходят к условиям проявления. Сделали таблицу перевода единиц измерения из одних в другие, поскольку данные похожих характеристик вроде габаритов в зависимости от масштаба деталей задаются по-разному (т.е. габариты-то в миллиметрах - это стандартно, но есть другие атрибуты, в которых это не соблюдается). А к атрибутам прицепили единицы измерения. Понятно, что в простом варианте из десятка тысяч характеристик что-то выбрать тяжело. Дело даже не только в большом списке, а в том, что все эти характеристики можно и не знать. И тут всё это дело начинает группироваться, чтобы можно было этим пользоваться. Раньше это было разделено на кучу мест, где человек работал со знакомыми характеристиками, а вот при объединении - вот она проблема. Получается, что если условие отличается значительно, то значения несопоставимы, а если мало, то сопоставимы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2006, 22:48 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> взяли последние ВАЗовские автомобили и описали все их комплектующие В качестве источника данных что используется? Конструкторская документация? > кол-во часов наработки на отказ при таком-то условии, затем при другом В этой стране, насколько я помню (к сожалению, никак не связан с машиностроением) испытания стандартизованы. Ошибаюсь? > поскольку нет прямой зависимости по условиям проявления Для однотипных деталей? > но есть другие атрибуты, в которых это не соблюдается Пример можете привести? > А к атрибутам прицепили единицы измерения Абсолютно логично. > все эти характеристики можно и не знать Imho их и не нужно знать. Нужно знать о зависимости характеристик от типа продукта и эту зависимость отразить в структуре данных. > при объединении - вот она проблема Можно чуть подробнее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 02:07 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621Обычно я в ответ на такие вопросы пишу: "чтение мануалов, букварей и пр. хрени - по такой-то тарифной ставке". Вы понимаете, что такое "независимый атрибут"? Или для Вас это просто набор букв?Обычно я на такое вообще не отвечаю. А вы понимаете что там будет пустых 1 миллион колонок и заполнены они будут только независимыми аттрибутами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 13:37 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Дима, Вам даже Дейта читать рано. Учитесь, дружище. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 14:26 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621Дима, Вам даже Дейта читать рано. Учитесь, дружище.Аргументы закончились, Слив с темы засчитан ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 15:52 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Дружище, быть тупым и не знать этого - счастье. Мне жаль, что я потратил время на контакт с Вами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 16:37 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
stiЯ долго вспоминал, что это мне напоминает. И вот: тынц Я прочел вышеприведенную ссылку. Хочу обратить внимание вот на какие психологические аспекты проблемы. Поскольку программированием SQL я занимаюсь только по мере необходимости и в задачах СУБД некомпетентен по сравнению с окружающими. Человек в вышеприведенной задался какой-то задачей, нужной-нет- неважно. Написал в форум, привел скрипт. После оптимизации время сократилось с 3-л лет до 11 дней. Это, замечу, все на 1-ой странице темы. Что имеем здесь: приходит человек и на 12 страницах несет разные отмазки почему он до сих пор не сделал простого эксперимента, почему нет даже примитивного прототипа, почему он не хочет свалить проектирование на опытного программиста и пр. При этом увлеченно рассуждает о своей задаче и даже пытается о чем-то говорить со спецами, не имея никакого понятия при этом, о чем собственно речь. Имхо, цель данного человека - не решить проблему. Цель данного человека - поговорить о решении проблемы. А может и просто поговорить о проблеме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 16:59 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Random_Goodman Для всех особо "одаренных" прикладников-sqlевцев объясняю на примере. Предположим заваливается на форум чел с вопросом "а как мне сделать машину времени?". А вы, уважаемые господа, начинаете его доколебывать на 12ти страницах рекомендациями по пользованию обычным транспортом, вопросами на тему, а сделал ли он уже макет с удобной кабиной и кучей кнопочек и т.п. Если не можешь ничего сказать по теме, лучше промолчи - будешь казаться умнее. Если не являешься системным программистом - тем более. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 17:18 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Last_AlienДля всех особо "одаренных" прикладников-sqlевцев объясняю на примере. Предположим заваливается на форум чел с вопросом "а как мне сделать машину времени?". А вы, уважаемые господа, начинаете его доколебывать на 12ти страницах рекомендациями по пользованию обычным транспортом, вопросами на тему, а сделал ли он уже макет с удобной кабиной и кучей кнопочек и т.п. Если не можешь ничего сказать по теме, лучше промолчи - будешь казаться умнее. Если не являешься системным программистом - тем более. Сколько желчи. Может желтуха? У меня ес ть чего сказать по теме и я это сказал. Обычно челы которые делают машину времени заваливаются на форум с конкретными вопросами по теме, а не с отвлеченными рассуждениями. И макет у них уже есть. Кое-как но работающий. Не знаю как вы, а я всегда писал программы по принципу увеличения функциональности. Потому что если общую концепцию как-то спланировать хоть и можно, на всем остальном в реале шишки все равно набивать придется. И последнее - у машины времени цель перемещаться во времени. Поэтому вопрос надо ставить не "как мне сделать машину времени?" а "как можно переместиться во времени". Сразу видно а-ля системщиков... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 17:30 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Random_Goodman Это не желчь. Смайлик забыл прицепить. Основное отличие прикладников: вы можете спокойно рисовать красивую оболочку с разными менюшками и окошками, а собственно ЗАДАЧУ откладывать на потом. Но в некоторых случаях такой подход просто смешен... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 18:00 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> Если не можешь ничего сказать по теме, лучше промолчи - будешь > казаться умнее. Дружище, следовать своим же советам не пробовали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 18:19 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Last_Alien Random_Goodman Это не желчь. Смайлик забыл прицепить. Основное отличие прикладников: вы можете спокойно рисовать красивую оболочку с разными менюшками и окошками, а собственно ЗАДАЧУ откладывать на потом. Но в некоторых случаях такой подход просто смешен... Что, свалимся в holy war? Если вы так судите о прикладниках, вы не писали никогда более-менее реальные прикладные программы в принципе, а все представление о прикладных программистах у вас формируется на основе впечатлений от дизайне VS или Delphi. Потому что иначе вы бы знали, что оболочки и менюшки - последнее, чем занимаются прикладные программисты. ИМХО системщики недолюбливают прикладников по одной простой причине: прикладник работу себе всегда найдет. И еще: понятие задачи для разных людей разное. Не надо вешать свои задачи на других, оценивать и говорить "вот вы нихрена не умеете". Мне например очень смешно что кто-то копается в разных посиксах и даже программит на АСМе, сидит в Линухе и считает что это круто и т. п. когда есть куча более интересных вещей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 18:59 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621> взяли последние ВАЗовские автомобили и описали все их комплектующие В качестве источника данных что используется? Конструкторская документация? Не только, если есть потенциально полезные данные, то заносятся и они. Т.е. в итоге должен получиться справочник не только с официальной информацией, но и с проверенной дополнительной, если взять то, что не попадает в итоговую документацию. Кстати, это порождает проблему размывания характеристик, см. ниже. guest_20040621 > кол-во часов наработки на отказ при таком-то условии, затем при другом В этой стране, насколько я помню (к сожалению, никак не связан с машиностроением) испытания стандартизованы. Ошибаюсь? Если имеются в виду условия проведения и методика испытаний, то не ошибаетесь. Условия - имел в виду, что сами условия уникальны, что-ли. Скажем средний расход топлива в городском цикле отличается от автострадного. Искать, конечно, можно по обоим, но это даст весьма странный результат, если нужно найти средний расход топлива на 100 км. Сразу возникает вопрос: а как движется автомобиль? Если его уточнить, то сразу возникает ответ. guest_20040621> поскольку нет прямой зависимости по условиям проявления Для однотипных деталей? Не совсем, но решили что это будет не всегда корректно сравнивать. guest_20040621 > но есть другие атрибуты, в которых это не соблюдается Пример можете привести? Да те самые, которые вычисляются отношением одних величин к другим. Сложилось ощущение, что потребность в дополнительных атрибутах была, но поскольку всё решалось на отдельных местах, то масштабы единиц измерения принимались от балды, как пользователь решит. guest_20040621> при объединении - вот она проблема Можно чуть подробнее? Проблема в дополнительных атрибутах - стандартные понятно, а вот дополнительные - чёрт ногу сломит пока допрёшь куда его пристроить и нет ли уже такого в системе. По-хорошему, нужно сделать новую версию системы. Все недостатки видны, в принципе уже можно переделать всю структуру базы. Это нормальная практика, когда первая версия софта хоть и работает, но при наличии предложений по улучшению принимается решение о переделке? И вообще, как с наименьшими проблемами такое провернуть, чтобы по большей части скрыть от пользователей изменение структуры данных или хотя бы облегчить переход? Как тут быть, сделать всё с нуля, включая клиентское приложение или только базу, а клиента подстроить под новую структуру данных? Last_Alien Предположим заваливается на форум чел с вопросом "а как мне сделать машину времени?". Ага, человек упёрся в скорость перемещения: не будет ли узким местом перемещение на 1000 лет за 10 секунд вместо одной миллисекунды? Как же тогда люди будут отправляться на миллион лет до нашей эры - париться три часа в переполненной машине времени? А ему говорят - а Вы уверены что Вам нужно думать именно над скоростью перемещения, а не над проблемой случайно раздавленных насекомых ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.09.2006, 22:44 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> Не только, если есть потенциально полезные данные, то заносятся и они. Хм... разработка такой структуры данных в принципе никогда не закончится (что, в общем, для девелопера хорошо); справочники (и, похоже, всю остальную структуру данных) придется строить с учетом тезауруса (или другой семантической структуры). Это хорошая реализация, но очень уж геморройная. > сами условия уникальны Я бы, наверное, явно выделил структуру данных для испытаний. Понадобится группировка изделий по возможным методикам, перечень и условия испытаний. Результаты я бы также явно выделил в отдельную структуру. > масштабы единиц измерения принимались от балды, как пользователь решит А не пробовали с другой стороны посмотреть: единицы измерения - всегда стандартные; для конкретной величины указывается точность отображения, мультипликатор и шкала. В принципе, хорошо бы еще и погрешность указывать. :) Данных чуть больше, зато единиц измерения меньше (справочник компактнее и правильнее). > Это нормальная практика, когда первая версия софта хоть и работает, > но при наличии предложений по улучшению принимается решение о переделке? Абсолютно нормальная. Imho важно не перегнуть палку и не сделать новую версию слишком сложной. ;) > как с наименьшими проблемами такое провернуть, чтобы по большей части > скрыть от пользователей изменение структуры данных или хотя бы облегчить > переход? Нет универсального рецепта. На практике я сталкивался с постепенным переходом, когда по мере готовности заменяются отдельные модули приложения; работает, если между модулями нет жестких связей. Достаточно продолжительная разработка - это не только технический и огранизационный процесс, но еще и политический. Видимо, будет правильнее заручиться поддержкой Того, Кто Принимает Решения. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2006, 00:03 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
>Last_Alien >По основной задаче. >Данные можно хранить в виде двух таблиц. Думаю, Вы нащупали правильный путь решения поставленной задачи (хотя может быть есть и другие). А как Вы смотрите на такое расширение Вашей идеи: - значения атрибута и ID хранить в отдельной таблице, по каждому атрибуту. Да будет единицы тысяч таблиц. Есть множество серверов приложений и сервер данных. Анализ клиентского запроса, выбор атрибута с мин. числом записей. Первый по данному атрибуту SELECT и на СП получим выборку с ID, где-то 100 000. Группируем по 1000 и 100 запросов к таблице второго атрибута. Убираем лишние ID и переходим к 3 атрибуту, 4 ... Если сервер данных и СП связаны скоростным каналом и сервер данных имеет приличную память, то и база данных может быть и не SQL, а типа аля FOX. Нужно то быстро загрузить таблицу из памяти в СП. С уважением, Владимир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2006, 11:13 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Хм... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.09.2006, 22:35 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
ВМоисеев Тот путь решения уже давно отброшен в связи со своей бесперспективностью. Сейчас я работаю над модифицированным вариантом kd-деревьев, т.к. стандартные бинарные методы ни к чему хорошему не приведут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2006, 08:44 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Решение этой задачи элементарно. Когда кто-то решит её - он посмеется, как все было просто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 14:37 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> Решение этой задачи элементарно. Элементарна структура данных. Общее решение - не просто сложно, а очень сложно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 18:26 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621 А не пробовали с другой стороны посмотреть: единицы измерения - всегда стандартные; для конкретной величины указывается точность отображения, мультипликатор и шкала. В принципе, хорошо бы еще и погрешность указывать. :) Данных чуть больше, зато единиц измерения меньше (справочник компактнее и правильнее). Попробовали похожую вещь и даже сделали, но в другой системе. Делали уже после завершения работы над вышеописанной. Думаю, что это уже очень веский довод в пользу такого варианта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 21:50 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> это уже очень веский довод в пользу такого варианта Плюс стандартность, переносимость, реюзабельность и пр. Со стандартными единицами измерения все понятно, плохо с нестандартными характеристиками. Их, к сожалению, геморройно унифицировать. Тот же цвет: может не иметь эквивалента в виде длины волны ("металлик", "хамелеон"), может иметь специальное название, зависящее от носителя или способа подготовки (в пре-пресс, например), может иметь идентификатор уникальной цветовой шкалы изготовителя (имплантаты или пломбировочные материалы в стоматологии) и пр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2006, 22:16 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
>Last_Alien >Тот путь решения уже давно отброшен в связи со своей бесперспективностью. Сейчас я работаю над модифицированным вариантом kd-деревьев, т.к. стандартные бинарные методы ни к чему хорошему не приведут. Возможно, Вы найдете интересное решение. Но данные в таблице атрибута могут быть отсортированы по значению атрибута. Поэтому возможен не SELECT, а SEEK первой строки и чтение следующей. Скорость видимо будет приличная. Да и добавление нового атрибута несложно. С уважением, Владимир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2006, 22:42 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
>Last_Alien >Тот путь решения уже давно отброшен в связи со своей бесперспективностью. Сейчас я работаю над модифицированным вариантом kd-деревьев, т.к. стандартные бинарные методы ни к чему хорошему не приведут. Возможно, Вы найдете интересное решение. Но данные в таблице атрибута могут быть отсортированы по значению атрибута. Поэтому возможен не SELECT, а SEEK первой строки и чтение следующей. Скорость видимо будет приличная. Да и добавление нового атрибута несложно. С уважением, Владимир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2006, 22:43 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
Сколько готовы заплатить за решение этой задачи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2006, 18:13 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> Сколько готовы заплатить за решение этой задачи? Вы готовы ее решить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2006, 19:16 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Сколько готовы заплатить за решение этой задачи? Вы готовы ее решить? В случае если отказаться от поиска по диапазону - как хранение так и поиск реализуемы в СУБД Cerebrum. Грубая оценка сложности поиска O(A * M * log(N)) где A - аттрибуты, M - колличество успешных результатов и N всего записей. Это при M << N. При M ~ N : O(A*N) Параноидально плохой случай при 0 результатов O(A * N * log(N)) - это в случае если каждая "четная" запись имеет аттрибут A1 а каждая "нечетная" - A2. Еще учитывая что Nmax = 2^32 то log(Nmax) можно считать константой и вынести из под O значительно на точность оценки это не повлияет т.к. в Ц время поиска в индексе слабо зависит от N и всегда приближено к log(Nmax). В случае попадания в кэш индекс обеспечивает 20000-40000 элементарных поисков в секунду на моей машине. Тоесть если бд в рам A * N / 40000 поисков в сек для всей задачи в худшем случае. При более качественной реализации можно показатели улучшать. Собственно данный механизм за отсутсвием реальных задач в текущей версии Cerebrum не реализован. Его разработка заморожена. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2006, 20:55 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
>guest_20040621 >Вы готовы ее решить? А что такое - решить? С уважением, Владимир. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2006, 21:10 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> В случае Дима, извините, но мне не интересно обсуждать задачи с дебилами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2006, 21:15 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
"..Вы готовы ее решить?" 1. тз. 2. тестовые данные. 3. сроки. 4. сумма на руки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2006, 14:34 |
|
||
|
Многокритериальный поиск в очень-очень большой базе
|
|||
|---|---|---|---|
|
#18+
> 1. тз. 100к rps не слишком испугает? > 2. тестовые данные. Какие тестовые данные? Вы задачу собираетесь решать или кодописательством заниматься? > 3. сроки. Скажем, полгода. > 4. сумма на руки. Знаете, дружище, на Вашем месте сумму я бы обсуждал в последнюю очередь. Вы беретесь за решение задачи, не видев технического задания, не зная характеристик и топологии программно-аппаратного комплекса, - заведомо полагая, что сможете ее решить. Откуда такая уверенность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2006, 16:19 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1545033]: |
0ms |
get settings: |
5ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
154ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
196ms |
get tp. blocked users: |
1ms |
| others: | 202ms |
| total: | 581ms |

| 0 / 0 |
