Re[9]: Про NoSQL
От: Mamut Швеция http://dmitriid.com
Дата: 03.12.10 13:24
Оценка:
M>>>>тот же couchdb, кторый весь хайп и начал, по сути, тоже есть ничто иное, как «ключ-значение». Только значение — это документ произвольной форы, который можно скармливать в map/reduce для получения плюшек и девиц (или домомучительниц — это как кому повезет )
G>>>Ну кучадб используется в очень малом количестве проектов. StackOverflow на нем не сделаешь.

M>>Сделаешь StackOverflow — очень легкий с точки зрения логики сайт. На CouchDB ляжет на раз Только не надо У CouchDB есть свои проблемы.

G>Да ну?
G>Не удалось ни тут
Автор: gandjustas
Дата: 29.09.10
, ни там


И там и там — теоретические изыскания без реальных проектов. Правда, на аналог stackoverflow на ruby+mongodb там промелькнул: http://gitorious.org/shapado

тут не совсем правильный подход «вот вам проект, сделайте аналог». Лучше посмотреть на то, какие проекты уже сделаны и экстраполировать.

на MongоDB валяется http://foursquare.com/ — по сути тот же stackoverflow — рейтинги, комментарии, badges и т.п.
на CouchDB вроде валяется http://www.mydochub.com/answers/ — практически аналог stackoverflow

ну и т.п.

то есть делать можно. только нужно ли?


dmitriid.comGitHubLinkedIn
Re[7]: Про NoSQL
От: Mamut Швеция http://dmitriid.com
Дата: 03.12.10 13:29
Оценка:
N>>Где тут "не ложится"? Тут неадекватность, неэффективность, громоздкость укладки.
IB>Переводя на русский — это и есть "не ложится". =)

N>>Возвращаюсь к исходному. Я привёл пример задачи. Чуть обобщу: есть key-value хранилище с иерархией ключей. Операции — выборка по конкретному ключу, выборка поддерева от одной точки, добавление/замена/удаление по ключу, удаление поддерева. То есть вообще ничего хитрого.

IB>В Реляционках для этого давно есть специальные типы данных.

Далеко не во всех.

IB>А до этих типов данных было несколько разнообразных решений в зависимости от конкретного сценария, так что не вижу тут никакой проблемы =)


что-то мне кажется, что такие решения не заходили дальше FOAF (friend of a friend), а для бОльшей вложенности все равно требовался геморрой.


dmitriid.comGitHubLinkedIn
Re[10]: Про NoSQL
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 03.12.10 13:45
Оценка:
Здравствуйте, Mamut, Вы писали:

M>тут не совсем правильный подход «вот вам проект, сделайте аналог».

ИМХО самый правильный чтобы показать что NoSQLне хуже SQL_ных решений.
Только вот не удается этого показать.

M>Лучше посмотреть на то, какие проекты уже сделаны и экстраполировать.

M>на MongоDB валяется http://foursquare.com/ — по сути тот же stackoverflow — рейтинги, комментарии, badges и т.п.
M>на CouchDB вроде валяется http://www.mydochub.com/answers/ — практически аналог stackoverflow
M>ну и т.п.
В основном это проекты, которые используют сильные стороны соответствующих технологий и не показываются слабых.
Нужен именно real-world проект. Имхо stackoverflow — хороший вариант. Не слишком сложен чтобы охватить одному человеку, и не слишком банален как блог, магазин или "датчики".
Re[11]: Про NoSQL
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 03.12.10 14:03
Оценка:
Здравствуйте, IB, Вы писали:

N>>netch80 спрашивал именно о целесообразности такой укладки. просто указал на правильный акцент в вопросе

IB>Так вот я и спрашиваю, в чем его проблема? вот это — правильный акцент.

Моя? У меня проблемы в этом нет Вот если бы заставили использовать RDBMS — была бы. На торможении в разы.
The God is real, unless declared integer.
Re[12]: Про NoSQL
От: adontz Грузия http://adontz.wordpress.com/
Дата: 03.12.10 14:05
Оценка:
Здравствуйте, netch80, Вы писали:

N>>>netch80 спрашивал именно о целесообразности такой укладки. просто указал на правильный акцент в вопросе

IB>>Так вот я и спрашиваю, в чем его проблема? вот это — правильный акцент.
N>Моя? У меня проблемы в этом нет Вот если бы заставили использовать RDBMS — была бы. На торможении в разы.

С чего вы взяли что у вас что-то там будет тормозить в разы, если вы не умеете работать с RDBMS?
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[15]: Про NoSQL
От: Cyberax Марс  
Дата: 03.12.10 14:13
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>>>Мы уже это проходили. 90% проектов не столкнутся с высоконагруженными распределенными системами. А те которые столкнутся будут применять совершенно аналогичные подходы независимо от того какое хранилище.

C>>А те которые не столкнутся — нам и неинтересны.
G>Нам как раз интересны насущные проблемы, а не теоретические. странно что тебе ровно наоборот.
А ненасущные проблемы ближе, чем кажутся Вот как раз сегодня абсолютно случайно наткнулся.

G>>>Только для NoSQL хранилищ это обязательно надо делать, а для SQL — по мере необходимости.

C>>Ну так никто и не просит применять NoSQL сразу везде.
G>Ну да, потом распределенный кеш сделать для оптимизации.
Ага, а потом в этот кэш добавить возможность поиска. И удивиться, что получается какой-то из NoSQL.
Sapienti sat!
Re[13]: Про NoSQL
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 03.12.10 14:15
Оценка:
Здравствуйте, adontz, Вы писали:

A>Здравствуйте, netch80, Вы писали:


N>>>>netch80 спрашивал именно о целесообразности такой укладки. просто указал на правильный акцент в вопросе

IB>>>Так вот я и спрашиваю, в чем его проблема? вот это — правильный акцент.
N>>Моя? У меня проблемы в этом нет Вот если бы заставили использовать RDBMS — была бы. На торможении в разы.

A>С чего вы взяли что у вас что-то там будет тормозить в разы, если вы не умеете работать с RDBMS?


А откуда вывод про "неумение работать с RDBMS"? Незнание того конкретного средства, которое Вы почему-то считаете средством по дефолту, ещё ничего не означает
The God is real, unless declared integer.
Re[16]: Про NoSQL
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 03.12.10 14:16
Оценка:
Здравствуйте, Cyberax, Вы писали:

G>>>>Только для NoSQL хранилищ это обязательно надо делать, а для SQL — по мере необходимости.

C>>>Ну так никто и не просит применять NoSQL сразу везде.
G>>Ну да, потом распределенный кеш сделать для оптимизации.
C>Ага, а потом в этот кэш добавить возможность поиска. И удивиться, что получается какой-то из NoSQL.
Я думаю на момент появления распределенного кеша поиск по данным уже будет работать.
Даже на самом простом уровне типа contains\freetext в SQL базе данных.
Re[3]: Про NoSQL
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 03.12.10 14:34
Оценка: :)
Здравствуйте, gandjustas, Вы писали:

G>Рассказываю тайну. SQL база данных может спокойно порвать любой твой код, потому что СУБД оптимизирует доступ к диску. А это сейчас самая медленная операция.


У меня не используется совсем диск, все данные в памяти
Re[17]: Про NoSQL
От: Cyberax Марс  
Дата: 03.12.10 14:36
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>>>Ну да, потом распределенный кеш сделать для оптимизации.

C>>Ага, а потом в этот кэш добавить возможность поиска. И удивиться, что получается какой-то из NoSQL.
G>Я думаю на момент появления распределенного кеша поиск по данным уже будет работать.
G>Даже на самом простом уровне типа contains\freetext в SQL базе данных.
Так захочется поиск запускать в кэше. А потом и запросы на нём делать.
Sapienti sat!
Re[14]: Про NoSQL
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 03.12.10 14:48
Оценка:
Здравствуйте, netch80, Вы писали:

N>Здравствуйте, adontz, Вы писали:


A>>Здравствуйте, netch80, Вы писали:


N>>>>>netch80 спрашивал именно о целесообразности такой укладки. просто указал на правильный акцент в вопросе

IB>>>>Так вот я и спрашиваю, в чем его проблема? вот это — правильный акцент.
N>>>Моя? У меня проблемы в этом нет Вот если бы заставили использовать RDBMS — была бы. На торможении в разы.

A>>С чего вы взяли что у вас что-то там будет тормозить в разы, если вы не умеете работать с RDBMS?


N>А откуда вывод про "неумение работать с RDBMS"? Незнание того конкретного средства, которое Вы почему-то считаете средством по дефолту, ещё ничего не означает


А ты считаешь что умение работать с БД это знание только конструкций стандарта 92 года?

Маленький чеклист чтобы утверждать что таки знаешь SQL
(по MS SQL 2008, аналогичные возможности можно раскопать во всех современных СУБД)
Re[4]: Про NoSQL
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 03.12.10 14:49
Оценка:
Здравствуйте, Mystic, Вы писали:

M>Здравствуйте, gandjustas, Вы писали:


G>>Рассказываю тайну. SQL база данных может спокойно порвать любой твой код, потому что СУБД оптимизирует доступ к диску. А это сейчас самая медленная операция.


M>У меня не используется совсем диск, все данные в памяти

И что же ты с ними делаешь?
Re[5]: Про NoSQL
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 03.12.10 14:56
Оценка:
Здравствуйте, gandjustas, Вы писали:

M>>У меня не используется совсем диск, все данные в памяти


G>И что же ты с ними делаешь?


Тупой перебор (brutte force), обработка, вывод.
Re[6]: Про NoSQL
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 03.12.10 14:57
Оценка:
Здравствуйте, Mystic, Вы писали:

M>Здравствуйте, gandjustas, Вы писали:


M>>>У меня не используется совсем диск, все данные в памяти


G>>И что же ты с ними делаешь?


M>Тупой перебор (brutte force), обработка, вывод.


и что за перебор и обработка?
Re[15]: Про NoSQL
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 03.12.10 15:16
Оценка: -1
Здравствуйте, gandjustas, Вы писали:

A>>>С чего вы взяли что у вас что-то там будет тормозить в разы, если вы не умеете работать с RDBMS?

N>>А откуда вывод про "неумение работать с RDBMS"? Незнание того конкретного средства, которое Вы почему-то считаете средством по дефолту, ещё ничего не означает
G>А ты считаешь что умение работать с БД это знание только конструкций стандарта 92 года?

Прикольно наблюдать, как народ домысливает всякую триокись за собеседника.
Ну откуда ты взял, что я так считаю? При чём тут вообще стандарт 92-го года?

G>Маленький чеклист чтобы утверждать что таки знаешь SQL

G>(по MS SQL 2008, аналогичные возможности можно раскопать во всех современных СУБД)

Ну посмотрел. ~80% описанного хорошо знакомо. Даже больше, если послать нафиг XML. И что это даёт?

Мы ушли куда-то в сторону. Начали с того, что adontz предложил мне какую-то странную ерунду в виде одной структуры таблицы без объяснения причин и подробностей. И никак не хочет рассказать, что дальше с этим делать.
The God is real, unless declared integer.
Re[11]: Про NoSQL
От: messir VolanD Беларусь http://www.google.com/profiles/p.drobushevich
Дата: 03.12.10 15:16
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Здравствуйте, Mamut, Вы писали:


M>>тут не совсем правильный подход «вот вам проект, сделайте аналог».

G>ИМХО самый правильный чтобы показать что NoSQLне хуже SQL_ных решений.
G>Только вот не удается этого показать.

M>>Лучше посмотреть на то, какие проекты уже сделаны и экстраполировать.

M>>на MongоDB валяется http://foursquare.com/ — по сути тот же stackoverflow — рейтинги, комментарии, badges и т.п.
M>>на CouchDB вроде валяется http://www.mydochub.com/answers/ — практически аналог stackoverflow
M>>ну и т.п.
G>В основном это проекты, которые используют сильные стороны соответствующих технологий и не показываются слабых.
G>Нужен именно real-world проект. Имхо stackoverflow — хороший вариант. Не слишком сложен чтобы охватить одному человеку, и не слишком банален как блог, магазин или "датчики".
Наброшу
Stack Overflow Architecture

What is key about the Stack Overflow story for me is the strong case they make for scale up as a viable solution for a certain potentially large class of problems. The publicity these days is all going scale out using NoSQL databases.

Re[7]: Про NoSQL
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 03.12.10 15:17
Оценка:
Здравствуйте, IB, Вы писали:

IB>Здравствуйте, netch80, Вы писали:


N>>Где тут "не ложится"? Тут неадекватность, неэффективность, громоздкость укладки.

IB>Переводя на русский — это и есть "не ложится". =)

Твой переводчик явно нуждается в починке.

N>>Возвращаюсь к исходному. Я привёл пример задачи. Чуть обобщу: есть key-value хранилище с иерархией ключей. Операции — выборка по конкретному ключу, выборка поддерева от одной точки, добавление/замена/удаление по ключу, удаление поддерева. То есть вообще ничего хитрого.

IB>В Реляционках для этого давно есть специальные типы данных. А до этих типов данных было несколько разнообразных решений в зависимости от конкретного сценария, так что не вижу тут никакой проблемы =)

Так всё-таки — будут конкретные предложения, или как обычно?
The God is real, unless declared integer.
Re[7]: Про NoSQL
От: Mystic Украина http://mystic2000.newmail.ru
Дата: 03.12.10 15:18
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>и что за перебор и обработка?


Проще говоря, у нас две таблицы: items и item_tags. items примерно 3 000 000, item_tags более 100 000 000 (tag-ов 250 000). Нужно найти количество и заданную страницу данных для items, в которых есть все перечисленные tag (может быть в запросе до 100 штук). При этом некоторые tags могут быть игнорируемые (их наличие необязательно). Некоторые tag-и такие, что встречаются в 60% всех items. Они могут в поиске сочетаться.

В общем, в упрощенном виде нечто такое:

SELECT items.* FROM items
  JOIN item_tags it1 ON items.item_id = it1.item_id
  JOIN item_tags it2 ON items.item_id = it2.item_id
  LEFT JOIN item_tags it3 ON items.item_id = it3.item_id /* игнорируемый */
  ...
WHERE 1=1
  AND it1.tag_id = @tag1
  AND it2.tag_id = @tag2
  AND it3.tag_id = @tag3
  ....
  AND /* Дополнительные условия */
ORDER BY  /* агрегатные функции, иногда с кучей IF, подтаблицами, ... */


И таких запросов надо выполнять несколько раз в секунду. Допустимо, чтобы изменения в таблицах не сразу отображались, а с задержкой.

В общем тупой перебор по памяти (1G) дает 0.3 секунды, обработка еще 0.3
Re[12]: Про NoSQL
От: IB Австрия http://rsdn.ru
Дата: 03.12.10 15:21
Оценка:
Здравствуйте, netch80, Вы писали:

N>Вот если бы заставили использовать RDBMS — была бы. На торможении в разы.

Один бы ты в разы не справился, если только с помощником ))
... << RSDN@Home 1.2.0 alpha 4 rev. 1082>>
Мы уже победили, просто это еще не так заметно...
Re[12]: Про NoSQL
От: IB Австрия http://rsdn.ru
Дата: 03.12.10 15:21
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Ну да. Если понасиловать РБД, то часто можно научить её немного работать как NoSQL.

А если не насиловать, то она работает гораздо лучше, чем noSql.. ))

C>Ок. "Способ представления кортежей с произвольным числом элементов" тебя устроит?

Абсолютно, тем более, что у реляционки с этим нет никаких проблем =))
... << RSDN@Home 1.2.0 alpha 4 rev. 1082>>
Мы уже победили, просто это еще не так заметно...
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.