Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Применение MongoDB для АСКУЭ  [new]
LowCoder
Member

Откуда:
Сообщений: 150
Вопрос я бы поставил так – сейчас разрабатывается сабжевая система, а вернее биллинговая надстройка над ней и вопрос такой – можно ли … или даже так – почему не стоит использовать вместо предполагаемого Оракла MongoDB и чем может это грозить. С nosql базами я еще не работал но очень интересно. Теорию я покопал но меня интерсует мнения практиков.
Почему я спрашиваю – послушал тут как то Радио-Т там один из ведущих работает в какой то финансовой американской конторе, весьма немелкой, которая занимается по сути агрегацией биржевых данных и у них объем данных около 4 миллиардов!!! записей в день – это не просто много, а чудовищно много. И он как раз очень нахваливал монго. Правда насколько я понял они используют монго в основном как хранилище данных за счет быстрого добавления данных а биллинг все таки немного не то – есть там некая транзакционность и некий анализ, но не очень то сложный – прибавить/отнять/разделить - никаких интригалов, приближенных вычислений - вобщем никакой нечоткой логики :( Все как в обычной учетной системе – клиенты, счета ну и так далее. Другой ведущий Радио Т - начальник разработки по в яндексе, судя по разговору человек с тонким пониманием, и тоже монго весьма нахваливал. Вот я бы и хотел, что бы меня отговорили, а то ведь систему выпускать рано или поздно в продакшн со всеми втекающими и вытекающими - вот и хочется вопрос с монгой закрыть раз и навсегда и перейти на темную сторону т.е. отдаться уже Корпорации Зла :) Но мятежный дух и любопытство возобладает таки и хочется посмотреть что еще. Короче крайне интересно мнение коллективного разума по сабжу. Если серьезно хотелось бы ясно осозновать сферы применимости MongoDB в особенности по сравнению с SQL базами - Oracle, MSSQL, PostgreSQL ...
21 июн 12, 10:35    [12750850]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
thehil
Member

Откуда:
Сообщений: 70
Ну вы же сами на свой вопрос и ответили: если вы готовы принять как данность вероятность потери данных, в виду нетранзакционности, асинхронности записи, и прочего чем пожертвовали ради скорости - то берите и используйте. Если сами данные вам важнее агрегатов, то забудьте. Где можно использовать можете почитать здесь: http://www.mongodb.org/display/DOCS/Use+Cases
21 июн 12, 10:44    [12750966]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
LowCoder
Member

Откуда:
Сообщений: 150
thehil,

О! почти первая же ссылка в точку. Как то про use cases я не нашел с перевого раза инфу у них на сайте. Мне непонятно вот только эта фраза:

"Less Well Suited
Systems with a heavy emphasis on complex transactions such as banking systems and accounting. These systems typically require multi-object transactions, which MongoDB doesn't support. It's worth noting that, unlike many "NoSQL" solutions, MongoDB does support atomic operations on single documents. As documents can be rich entities; for many use cases, this is sufficient."

т.е система обеспечивает атомарность операций над протсым документом - а вот про rich entities я не совсем допонял.
21 июн 12, 11:14    [12751233]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
Yo.!
Guest
чего не ясного то ? не умеет оно транзакий, совсем. соответсвенно и консистентный отчет снять не сможет. как-то я слабо представляю такую субд на бирже. она же элементарно фондовый индекс не сможет посчитать
21 июн 12, 11:32    [12751381]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
LowCoder
Member

Откуда:
Сообщений: 150
Не совем так - да транзакций оно не умеет .. но поддерживает атомарность операций что те же шарики но только в профиль. Там в доках говорится о простых документах но соль в том (пока мне непонятно) что документы могуть не совем простыми а вложенными что ли. Вот это момент мне непонятен пока.
Сейчас как раз смортю видео по юз кейсам - ведь применяют дял электронной коммерции скажем. Интересно. А насчет биржевых данных то я же писал что насколько я понимаю там используется как хранилище данных и как раз там стоял вопрос в скорости ибо объем данных немыслимый.
21 июн 12, 11:40    [12751465]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
thehil
Member

Откуда:
Сообщений: 70
LowCoder,

Нет. Бизнес сущности как правило сложно уложить в одну колекцию (ака таблицу, привет реляционки). Монго из коробки не умеет проводит транзакции, которые затрагивают более чем одну коллекцию. Т.е. комплексные транзакции, которые характерны для экономических сфер, в монго нефига не атомарны. Есть ворэраунды в виде двухфазных коммитов, но не думаю что этот геморой вам нужен.

Что касается бирж - подозреваю что там оно используется только для аналитики. Ну списали деньги в одном месте, а во втором чуть позже прибавили, ну не за одну транзакцию это всё прошло, брокерам важен агрегирующий график на выходе.
21 июн 12, 12:20    [12751804]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
Andrey Sribnyak
Member

Откуда: Киев
Сообщений: 600
http://www.zopyx.de/blog/goodbye-mongodb
21 июн 12, 12:25    [12751856]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
Alexander Ryndin
Member

Откуда:
Сообщений: 4919
Блог
LowCoder
Не совем так - да транзакций оно не умеет .. но поддерживает атомарность операций что те же шарики но только в профиль. Там в доках говорится о простых документах но соль в том (пока мне непонятно) что документы могуть не совем простыми а вложенными что ли. Вот это момент мне непонятен пока.
Сейчас как раз смортю видео по юз кейсам - ведь применяют дял электронной коммерции скажем. Интересно. А насчет биржевых данных то я же писал что насколько я понимаю там используется как хранилище данных и как раз там стоял вопрос в скорости ибо объем данных немыслимый.
1) Не хранилище данных, а кладбище. Вряд ли они с ними делают еще что-то кроме как накапливают.
2) Объем данных (4 млрд. в сутки) - это относительно немного. Всего 100.000 вставок в секунду. С такими объемами неплохо справляются решения Complex Event Processing. Вот только они не устраивают мусорку данных, а тут же обрабатывают их и складывают в отфильтрованном, агрегированном и дедуплицированном виде. Вот пример для биржи. Вот для телекоммуникаций.
21 июн 12, 12:31    [12751914]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
thehil
Member

Откуда:
Сообщений: 70
Andrey Sribnyak,

Какая-то жёлтая статья. Почти всё высосано из пальца. В моей компании монго прекрасно используется на десятках проектов. Просто нужно чётко понимать сферу применения и знать подводные камни.
21 июн 12, 12:31    [12751921]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709


> чего не ясного то ? не умеет оно транзакий, совсем. соответсвенно и
> консистентный отчет снять не сможет. как-то я слабо представляю такую субд на
> бирже. она же элементарно фондовый индекс не сможет посчитать

Почему ? после торгов, когда данные уже не меняются -- почему бы и не посчитать?

Posted via ActualForum NNTP Server 1.5

21 июн 12, 12:58    [12752181]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
LowCoder
Member

Откуда:
Сообщений: 150
Название сайта тоже хорошее - жопикс :) Хотя некоторые аргументы да настораживает и желательно их обдумать или проверить если предполагается выпускат приложение в серьезный продакшн.
Совершенно согласен что обеспечить атомарность для сложных объектов будет затруднительно и это killing аргумент для моего случая... Спасибо за ответы.
21 июн 12, 13:00    [12752213]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709


> Не совем так - да транзакций оно не умеет .. но поддерживает атомарность
> операций что те же шарики но только в профиль.

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

Там в доках говорится о простых
> документах но соль в том (пока мне непонятно) что документы могуть не совем
> простыми а вложенными что ли. Вот это момент мне непонятен пока.

Тут тоже большая проблема -- когда речь идёт о РСУБД, там ясна модель данных,
на которых транзакции работают. Тут же всё туманно, так что тебе придётся
изучать ещё и эти все определения.

Posted via ActualForum NNTP Server 1.5

21 июн 12, 13:03    [12752236]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
Yo.!
Guest
MasterZiv
Почему ? после торгов, когда данные уже не меняются -- почему бы и не посчитать?

а смысл в индексе после торгов ? подозреваю, что всяким роботам эти индексы нужны в реалтайме и не с точностью +/- лапоть, а абсолютно точные. они же по ним принимают решения продавать/покупать.
вообще я так понимаю можно просто открыть спецификацию TPC-E, где эмулируеться работа брокерской канторы и поглядеть какие там транзакции. нехилые там транзакции по надцати таблицам, MnogoDB там явно в пролете.
21 июн 12, 13:27    [12752545]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
LowCoder
Member

Откуда:
Сообщений: 150
2Yo!

ну не так все сурово - данные легли (пусть даже в реалтайме) индекс пересчитался. В торговых роботах как правило пересчитывается все на лету до отправки в бд, так как очень критичны временные задержки - данные уже потом используются для анализа и отчетов. А отчетные системы используют (в большинстве случаев) по итогам торгов. А вот системы которые пересчитывают в риал тайме позиции игроков .. это да. Тут если и делать на монге нужно ОЧЕНЬ сильно поэксерементировать. Но вообще нафиг - своя рубашка лучше сидит когда ты живой :)
21 июн 12, 13:43    [12752721]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54822

LowCoder
сейчас разрабатывается сабжевая система

Дык - Ёлы! - не мелочитесь и разработайте её так, чтобы она могла работать как с Оракулом,
так и с Монго. Не справится одна СУБД - просто переключитесь на другую.

Posted via ActualForum NNTP Server 1.5

21 июн 12, 13:47    [12752764]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
Yo.!
Guest
Dimitry Sibiryakov
Дык - Ёлы! - не мелочитесь и разработайте её так, чтобы она могла работать как с Оракулом,
так и с Монго. Не справится одна СУБД - просто переключитесь на другую.

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

2LowCode

а поглядите на описание TPC-E, там на 14 странице краткое описание транзакций. насколько похоже на вашу задачу ?
ftp://ftp.software.ibm.com/eserver/benchmarks/wp_TPC-E_Benchmark_022307.pdf

мне так, просто интересно.
21 июн 12, 13:57    [12752855]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 54822

Yo.!
класика жанра. прикладуха одинаково работает с любой субд ... одинакового
херово.

Ага, классическая отмазка криворуких разработчиков. Ты уверен, что ТС из таких? Тогда,
конечно, его спасёт только Оракул.

Posted via ActualForum NNTP Server 1.5

21 июн 12, 14:35    [12753252]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
LowCoder
Member

Откуда:
Сообщений: 150
Я посомотрел - как раз очень близко к модели брокерской компании. Но биржевые вещи имеют свою специфику - я как раз разрабатывал такие. Там очень критичны временные задержки в особых местах. Прям реально борьба за миллисекунды. Пример - работал в крупном банке западном - там трейдеры жаловались что экран недосточно быстро прорисовывает котировки - пришлось им приладу переписать вместо си шарпа на правоверном с++ и стало хорошо. Это редкий случай но тем не менее. Там кстати оракл стоял с каким то астрономическим количеством таблиц и это все как то даже работало :)
В моем случае нет таких хайлоадов - но критична надежность, досупность.
Начальство кстати как увидело стоимость Оракла (энтерпрайз эдишн 47 тыщ не рублей на ОДИН проц вернее даже на одно ядро) ... стало сильно думать так что возможно будет таки Постгресс. И я не думаю что постгресс будет сильно хуже или вообще хуже.
21 июн 12, 14:41    [12753313]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
thehil
Member

Откуда:
Сообщений: 70
Dimitry Sibiryakov,
При всём уважении, вы пишете полнейший бред.
Чтобы приложение одинаково работало с объектно-ориентированной и реляционной базой?! Никогда в жизни, если только это не приложение уровня Справочник телефонов. В реальности практически всегда возникают проблемы, когда разрабатывается более менее серъёзное бизнес-приложение, которое одинаково работает с двумя даже реляционными базами. А NoSQL и РСУБД это совершенно разные подходы, практически не имеющие точек соприкосновения. Если у вас есть реальный опыт - welcome, а бросаться пустыми фразами о криворукости не стоит.

LowCoder,
Возможность перехода на PostgreSQL конечно стоит рассмотреть, но опять же нужно учитывать специфику: предполагаемые объёмы базы, количество запросов в секунду, характер запросов и прочее. Постргес стоит рассматривать как сильно урезанную версию Оракла, не обеспечивающаю всего того за что Оракл просит десятки тысяч долларов. Для больших нагрузок придётся горизонтально масштабировать Постгрес (например с помощью PL/Proxy + PgBouncer), а это, поверьте, занятие тоже не из лёгких.
21 июн 12, 14:59    [12753502]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
thehil
Member

Откуда:
Сообщений: 70
LowCoder,

А high availability классически достигается репликацией на другие сервера, распределением нагрузки между ними, и переключением между ними в случае сбоя.
21 июн 12, 15:01    [12753527]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
LowCoder
Member

Откуда:
Сообщений: 150
Решение для любой базы не очень хорошее имхо. Как показывает моя практика (лично моя) очень тяжело если вообще возможно оторватся от специфики бд. Полностью без триггеров вьюешек сторед процедур ... Как показывает пример PDO (для PHP) в случае того же Оракла там совсем все нерадужно.
Кроме того закладка на любую бд сильно усложняет/удлиняет разработку.
21 июн 12, 15:08    [12753609]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
Yo.!
Guest
LowCoder
Начальство кстати как увидело стоимость Оракла (энтерпрайз эдишн 47 тыщ не рублей на ОДИН проц вернее даже на одно ядро) ... стало сильно думать так что возможно будет таки Постгресс. И я не думаю что постгресс будет сильно хуже или вообще хуже.


у вас весьма неординарное начальство, раз рассматривает два столь крайних варианта
если вы на полном серьезе рассматриваете постгрес значит вы запросто влазите в масштабы и функционал оракла SE1, даже не SE. не могу себе представить под каким соусом мог бы выйграть постгрес у SE1 если основное требование надежность и доступность данных.
21 июн 12, 15:12    [12753656]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74930
thehil
А high availability классически достигается репликацией на другие сервера, распределением нагрузки между ними, и переключением между ними в случае сбоя.


Спасибо, КО!
21 июн 12, 15:12    [12753666]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
LowCoder
Member

Откуда:
Сообщений: 150
2thehil - да нет я писал что там нет такого хайлоада как в биржевых системах -нет там тысяч запросов в секунду. Клиенты заходят видят свой биллинг откуда то тянутся данные но все без экстрима. Кстати даже на биржевых системах - был проект на московских биржах через квик клиент - максимум что нам удавалось выжать около 10 000 записей в секунду с ММВБ (а вообще сильно ниже нагрузка) - MySQL 5.5 справлялся на раз, ну даже не чихнув. Вообще не одного сбоя не было со стороны БД за год. С MySQL сложности начинаются когда в таблицах больше 7-10 миллионов записей и много инсертов и много индексов. Но кеширует запросы весьма хорошо.
Насчет горизонтального масштабирования я думаю это как раз по любому будет нужно что с Ораклом что без - система должна быть высокодоступной - на начало маленький кластер по любому. так что горизонтальное масштабировнаие оно как бы закладывается изначально. Вопрос в цене уж больно Оракл дорогой.
21 июн 12, 15:20    [12753777]     Ответить | Цитировать Сообщить модератору
 Re: Применение MongoDB для АСКУЭ  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34709

On 06/21/2012 02:43 PM, LowCoder wrote:
> А вот системы которые пересчитывают в риал тайме позиции игроков

На сколько я знаю, в реалтайме они НЕ пересчитываются.
После торгов только.

Posted via ActualForum NNTP Server 1.5

21 июн 12, 15:26    [12753855]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить