|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
Alexey TominNoSQL это попытка работать с большими (для наличного оборудования) объёмами данных. Это самое большое вранье, которое внедрили в мозг многим программистам. Большинство NoSQL это inmemory базы, то есть весь объем данных должен вмещаться в ОП для нормальной работы. Классические SQL системы оптимизированы в первую очередь как раз на работу с данными, объем которых сильно превышает объем ОП. Поэтому когда дело касается больших объемов почти все NoSQL поделки сливаются с огромной скоростью. Я вот не видел вживую монги с базой на 1ТБ, а SQL Server с такими объемами данных - каждый день, даже postgres работает нормально с такими объемами. Alexey TominВ общем- надо понимать, что NoSQL- это экономия денег на железе. И эта экономия не бесплатна. Зато плюс- обычно очень развита кластеризация. Софт может работать рядом с БД и иметь к ней быстрый доступ. При этом машины в кластере, опять же, не менфреймы, а какие-нибудь блейд-сервера задёшево. Как раз на железе NoSQL тратит больше денег, чем классические БД. Но в отличие от классических серверов БД, NoSQL обычно проектируется под масштабируемость, чтобы можно было поставить два сервера и получить в два раза больше производительность (грубо). Классические СУБД так не могут. При этом обычно поставить два сервера выходит дороже, чем один, который в два раза больше. Но scale up имеет предел, а scale out теоретически можно делать сколько угодно. Если быть честным, то NoSQL системы вообще не нужны пока приложение не уперлось в предел scale up с обычной базой. 99,999% приложений даже близко к этому пределу не подойдут. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2015, 21:29 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
ZalmБезоткатный аудит это когда некоторые операции могут быть закомичены в рамках общих операций которые будут откачены))) Nested transactions чтоли? А где они поддерживаются? Или ты про savepoints как в SQL Server? От savepoints практической пользы мало. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2015, 21:32 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
Зимаргл"Привет всем!" Дальше можно ТС не читать. Нет постановки задачи, равно как и нет понимания, что требуется для ее решения. Видна только мантра "транзакционность", зачем, кому, хз Прямо мнение авторитета... Транзакционность - очень удобное понятия для доказательства корректности системы. Причем не только СУБД. Человек всегда неявно пользуется понятием транзакционности на уровне "нажал кнопку - получил результат". Любе проявления нетранзакционности типа "нажал кнопку, а получил полрезльтата, потому что другой человек тоже успел нажать" ведут к раздражению пользователей, усложнению разработке и смерти ни в чем неповинных котят. Но посл анализа задачи можно некоторые гарантии транзакционности ослабить. Примерно так работают уровни изоляции на уровне СУБД, когда пользователь не выполняет "плохих" операций, а база сохраняет ACID свойства, но при этом тратит меньше ресурсов. NoSQL пытается идти еще дальше, еще больше перекладывая заботу об обеспечении транзакционности на пользователя, но при это тратя еще меньше ресурсов. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2015, 21:42 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
DPH3Если у тебя тысяча записей в секунду (а на меньшем думать про NoSQL не стоит, там любая бесплатная реляционка выдержит) Включаем математику. Средний seek time для обычного HDD - 2мс, NoSQL обычно не настолько продвинуты чтобы обеспечить линейную запись на диск. Это значит, что с одним диском ты можешь писать максимум 500 раз в секунду. Если больше, то очередь на запись будет накапливаться и не успевать попадать на диск, реальное число будет чуть выше, так как не каждая запись случайна. Предположим что реальная скорость попадания данных на диск - 700 записей в секунду. То есть 300 записей будут накапливаться в очереди каждую секунду. Итого за минуту постоянной нагрузки очередь распухнет на огромное количество записей, любой сбой (даже банальное падение демона) приведет к потери очереди. А если поставить SSD, то любая РСУБД прекрасно выдержит 1000 и более записей в секунду. Кроме того РСУБД можно масштабировать просто добавляя диски, а для NoSQL обязательно надо новые серваки поднимать. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2015, 23:13 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
gandjustasZalmПривет всем!) Спустя нескольких дней чтения о том что же такое NoSQL базы, какие есть и какие преимущества дают, остается ряд вопросов на которые пока нет ответа. 1) Нет транзакций. Как происходит выполнение операцией над балансом например либо коллективные операции над одними и теми же данными? 2) Нет транзакций = не ясно как работает многоверсионность. Что будет видеть второй пользователь, если первый еще не завершил изменения? 3) Например в Oracle есть pl/SQL в нем можно легко заложить всю бизнес-логику внутри самого сервера, и все операции выполнять там, как это происходит в noSQL? той же касандре или монго. Есть ли там что-то подобное? 4) Снова же, если нет транзакций, нет и автономных транзакций значит, как выполнять безоткатный аудит? 5) Можно ли вообще какие либо вычисления делать внутри сервера, либо это все нужно делать на клиенте? 6) Есть ли триггеры и как работают? 7) Есть ли джобы? 8) поддерживают ли индексы возможность индексирования по возрастанию\убыванию? Ты видимо про монгу читал, хотя монга и самая распространенная NoSQL база, но при этом сама слабая. 1) В большинстве NoSQL транзакции есть. В монге транзакционный только доступ к одному документу, можно саму транзакцию хранить как документ и реализовать локи поверх этого механизма. Тормозит ацки, как дедлоки разруливать - неясно, автоматического отката нет, не обеспечивает транзакционность при шардинге.Берёшь и пишешь самостоятельно, если руки прямые :) У нас к примеру что-то ничего не тормозит. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2015, 23:18 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
skyANAgandjustasпропущено... Ты видимо про монгу читал, хотя монга и самая распространенная NoSQL база, но при этом сама слабая. 1) В большинстве NoSQL транзакции есть. В монге транзакционный только доступ к одному документу, можно саму транзакцию хранить как документ и реализовать локи поверх этого механизма. Тормозит ацки, как дедлоки разруливать - неясно, автоматического отката нет, не обеспечивает транзакционность при шардинге.Берёшь и пишешь самостоятельно, если руки прямые :) У нас к примеру что-то ничего не тормозит. А ты с чем сравнивал? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2015, 23:51 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
gandjustas, Ты пишешь слишком много бреда. Извини. Покажи HDD с seek_time для обычного HDD - 2мс ? Ну и остальные утверждения не выдерживают критики. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 00:15 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
ЗимарглПокажи HDD с seek_time для обычного HDD - 2мс ? Замерял как-то на сервере средней руки с диском в 10k RPM. На noname железе без рейдов было и 9-12 ms. ЗимарглНу и остальные утверждения не выдерживают критики. Давай конкретно, что ты считаешь неверным? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 00:34 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
gandjustas когда дело касается больших объемов почти все NoSQL поделки сливаются с огромной скоростью. Я вот не видел вживую монги с базой на 1ТБ Яндекс-диск используется 9ТБ кластер на 30 шардах. Хотя там может быть и несколько баз scan-interfax.ru использует 9ТБ кластер на 2 шардах. И всего одна база ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 01:37 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
gandjustasAlexey TominNoSQL это попытка работать с большими (для наличного оборудования) объёмами данных. Это самое большое вранье, которое внедрили в мозг многим программистам. Большинство NoSQL это inmemory базы, то есть весь объем данных должен вмещаться в ОП для нормальной работы. Классические SQL системы оптимизированы в первую очередь как раз на работу с данными, объем которых сильно превышает объем ОП. Я работал как с oracle timesten (in-memory sql), так и с hbase (no-sql терабайты на диске). Что не так? gandjustasПоэтому когда дело касается больших объемов почти все NoSQL поделки сливаются с огромной скоростью. hbase побеждает за счёт того, что вычисления идут по локальным данным. Без этого- да, шанса нет. gandjustasAlexey TominВ общем- надо понимать, что NoSQL- это экономия денег на железе. И эта экономия не бесплатна. Зато плюс- обычно очень развита кластеризация. Софт может работать рядом с БД и иметь к ней быстрый доступ. При этом машины в кластере, опять же, не менфреймы, а какие-нибудь блейд-сервера задёшево. Как раз на железе NoSQL тратит больше денег, чем классические БД. При попытке сделать даже 10% тех задач, которые выполняет хадуп-кластер, на оракловом сервере админы сразу берутся за топоры. При том, что весь хадуп-кластер стоит дешевле ораклового сервака раз в 10. gandjustasНо в отличие от классических серверов БД, NoSQL обычно проектируется под масштабируемость, чтобы можно было поставить два сервера и получить в два раза больше производительность (грубо). Классические СУБД так не могут. При этом обычно поставить два сервера выходит дороже, чем один, который в два раза больше. Но scale up имеет предел, а scale out теоретически можно делать сколько угодно. Под тот же хадуп ставится не 2 сервера, а 9 "для начала". А так- и десятки это норма. А вот в 10 раз более мощный сервер стоит ДОРОЖЕ, чем 10 более слабых. Если в секторе дешёвых серверов кривая роста цены в пользу более мощных машин, то с какого-то момента *2 по мощности может стоить *10 по цене. gandjustasЕсли быть честным, то NoSQL системы вообще не нужны пока приложение не уперлось в предел scale up с обычной базой. 99,999% приложений даже близко к этому пределу не подойдут. Всякое бывает. Есть и noSQL специально под SSD-диски. Но небесплатная :D ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 09:51 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
gandjustasskyANAпропущено... Берёшь и пишешь самостоятельно, если руки прямые :) У нас к примеру что-то ничего не тормозит. А ты с чем сравнивал?Сравнивались как общие показатели производительности текущей версии системы с предыдущей , так и отдельные каунтеры для базы, кэша и т.п. В предыдущей версии всё хранилось в SQL Server, а в текущей версии часть данных вынесена в MongoDB. Причём миграции данных предшествовал этап проектирования структуры хранения данных в документоориентированном виде. То есть таблицы не превратились тупо в коллекции :) Ну и синтетические тесты конечно проводили. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 14:13 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
Alexey TominЯ работал как с oracle timesten (in-memory sql), так и с hbase (no-sql терабайты на диске). Что не так? Не так например то, что hbase не даст выполнить запрос вида "дай мне последние 100 документов, у которых статус - на согласовании, где я - один из согласующих". Про oracle не в курсе. Alexey TominПри попытке сделать даже 10% тех задач, которые выполняет хадуп-кластер, на оракловом сервере админы сразу берутся за топоры. При том, что весь хадуп-кластер стоит дешевле ораклового сервака раз в 10.Разница в цене из-за лицензий? Alexey TominПод тот же хадуп ставится не 2 сервера, а 9 "для начала". А так- и десятки это норма. А вот в 10 раз более мощный сервер стоит ДОРОЖЕ, чем 10 более слабых.Приведи абсолютные величины, количество памяти, ядер, дисков, а также объемы данных. Alexey TominЕсли в секторе дешёвых серверов кривая роста цены в пользу более мощных машин, то с какого-то момента *2 по мощности может стоить *10 по цене.Есть такое дело, и там может пригодиться NoSQL, но 99,999% проектов до таких масштабов не доживут. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 14:28 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
gandjustasAlexey TominЯ работал как с oracle timesten (in-memory sql), так и с hbase (no-sql терабайты на диске). Что не так? Не так например то, что hbase не даст выполнить запрос вида "дай мне последние 100 документов, у которых статус - на согласовании, где я - один из согласующих". Про oracle не в курсе.Для Hadoop хватает движков, что поддерживают SQL. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 14:56 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
skyANAgandjustasпропущено... Не так например то, что hbase не даст выполнить запрос вида "дай мне последние 100 документов, у которых статус - на согласовании, где я - один из согласующих". Про oracle не в курсе.Для Hadoop хватает движков, что поддерживают SQL. Но использование хадупа очень медленное занятие, пока загрузишь данные, пока он прожует запрос. Уже и сроки согласования могут закончиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 15:09 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
gandjustasskyANAпропущено... Для Hadoop хватает движков, что поддерживают SQL. Но использование хадупа очень медленное занятие, пока загрузишь данные, пока он прожует запрос. Уже и сроки согласования могут закончиться.Тебе надо было в прошлом году поездить на митапы в IBM, узнал бы что вендоры работали над тем, чтобы выполнять SQL запросы к хадупу в реальном времени, и добились-таки результатов :) ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 15:19 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
skyANAgandjustasпропущено... Но использование хадупа очень медленное занятие, пока загрузишь данные, пока он прожует запрос. Уже и сроки согласования могут закончиться.Тебе надо было в прошлом году поездить на митапы в IBM, узнал бы что вендоры работали над тем, чтобы выполнять SQL запросы к хадупу в реальном времени, и добились-таки результатов :) И зачем мне оно? Выглядит как вырезание гланд через *опу автогеном. Инструмент нужно подбирать под проблему, а не пытаться натянуть все на nosql. В 99,99% случаев обычные rdbms прекрасно справляются. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 16:06 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
gandjustasskyANAпропущено... Для Hadoop хватает движков, что поддерживают SQL. Но использование хадупа очень медленное занятие, пока загрузишь данные, пока он прожует запрос. Уже и сроки согласования могут закончиться. А оно и не для этого. А вот когда надо найти пересечение базы клиентов и базы страничек в интернете- то тут оракл встанет раком, а хадуп у утру досчитает. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 17:11 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
Alexey Tomingandjustasпропущено... Но использование хадупа очень медленное занятие, пока загрузишь данные, пока он прожует запрос. Уже и сроки согласования могут закончиться. А оно и не для этого. А вот когда надо найти пересечение базы клиентов и базы страничек в интернете- то тут оракл встанет раком, а хадуп у утру досчитает. Это зависит от того где и как данные хранятся. Если все залить в Oracle и сделать индексы подходящие, то оракл за минуту справится, а хадуп к утру досчитает. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 18:16 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
gandjustasAlexey Tominпропущено... А оно и не для этого. А вот когда надо найти пересечение базы клиентов и базы страничек в интернете- то тут оракл встанет раком, а хадуп у утру досчитает. Это зависит от того где и как данные хранятся. Если все залить в Oracle.гениальная идея, кэп! Где ты был раньше? ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 18:50 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
gandjustasAlexey TominА оно и не для этого. А вот когда надо найти пересечение базы клиентов и базы страничек в интернете- то тут оракл встанет раком, а хадуп у утру досчитает. Это зависит от того где и как данные хранятся. Если все залить в Oracle и сделать индексы подходящие, то оракл за минуту справится, а хадуп к утру досчитает. Ты думаешь, с привычного Оракла мы пошли в Хадуп потому что хотелось подольше считать? Нравилось работать в глючноватом окружении, с индексами через ж..у и поиском в отдельном приложении? Не надо считать себя глупее других. Да, можно сделать сервер Оракла, который бы посчитал с той же скоростью. Но, даже без учёта лицензий, это бы вышло намного дороже, чем кластер недорогих серверов по хадупом. Ещё раз- прежде чем говорить "это только мода, надо делать по-другому" повтори раз 10 "я не умнее тех, кто всё это придумал". Был бы умнее- давно бы работал в фейсбуке, или в гугле, или в твиттере. А если нет- значит ты просто чего-то не знаешь. Это нормально, не знать. Ненормально читать себя всезнайкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 19:17 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
Alexey Tomin, Я не знаю какая у вас была мотивация, но 8 из 10 использований NoSQL, которые я видел, были из-за того, что люди не осилили РСУБД. Возможно в вашем случае стоимость лицензий Oracle превысила цену железа, такое часто бывает. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.02.2015, 23:22 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
gandjustasЯ не знаю какая у вас была мотивация, но 8 из 10 использований NoSQL, которые я видел, были из-за того, что люди не осилили РСУБД. Возможно в вашем случае стоимость лицензий Oracle превысила цену железа, такое часто бывает. Глядя на твой блог :) не удивляюсь- в мире микрософта и не такое увидишь :D ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2015, 08:34 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
Alexey Tomin, По странному стечению обстоятельств примерно половина NoSQL, которые я видел, это были проекты на не-МС стеке. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2015, 12:34 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
gandjustasDPH3Если у тебя тысяча записей в секунду (а на меньшем думать про NoSQL не стоит, там любая бесплатная реляционка выдержит) Включаем математику. Средний seek time для обычного HDD - 2мс... А если поставить SSD, то любая РСУБД прекрасно выдержит 1000 и более записей в секунду. Кроме того РСУБД можно масштабировать просто добавляя диски, а для NoSQL обязательно надо новые серваки поднимать. Эээ, я умею считать IOPSы ) И, разумеется, рассчитываю на SSDшку, на простых дисках сейчас делать OLTP с большой нагрузкой - глупо. Но вот даже на SSD получить для "любой РСУБД из коробки", без стараний 1000 tps - не очень очевидно. Можно, конечно, можно и больше - но для этого надо в базах разбираться хоть чуть-чуть, а это сейчас редкое умение. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2015, 16:08 |
|
NoSQL объясните)
|
|||
---|---|---|---|
#18+
DPH3Если нужна очень быстрая БД с нормальным ACID - то смотри на VoltDB. Но он с нормальной Durability уже платный ) Ну я бы не сказал, что все так просто на Вольте. Там ACID только на уровне хранимых процедур поддерживается. То есть надо написать на Java ХП, все что происходит внутри нее и будет идти в рамках одной транзакции. А снаружи если дергать клиентом напрямую SQL, то транзакций нет, любая DML операция будет идти автокоммитом, нет возможность стартовать, подтвердить или откатить транзакцию клиентским приложением. Такая парадигма имеет право на жизнь, имеет ряд преимуществ эффективной обработки данных на огромной скорости, но в реализации получается на каждый чих придется на Java писать ХП. На выходе можно сказать получаем достаточно специфичный сервер данных, который выгодно использовать, где действительно скорость обработки данных от 100 тысяч и выше транзакций важнее сложности разработки логики и поддержки работы. Плюс платный. В большинстве случаев это лишнее. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.02.2015, 12:01 |
|
|
start [/forum/topic.php?fid=48&msg=38879903&tid=1856846]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
56ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 157ms |
0 / 0 |