The OpenNET Project / Index page

[ новости/++ | форум | wiki | теги | ]

29.06.2018 15:52  Релиз документо-ориентированной СУБД MongoDB 4.0

Доступен стабильный выпуск документо-ориентированной СУБД MongoDB 4.0, которая занимает нишу между быстрыми и масштабируемыми системами, оперирующими данными в формате ключ/значение, и реляционными СУБД, функциональными и удобными в формировании запросов. Код MongoDB написан на языке C++ и распространяется в рамках лицензии AGPLv3. Сборки MongoDB 4.0 сформированы для Linux, Windows и macOS.

MongoDB поддерживает хранение документов в JSON-подобном формате, имеет достаточно гибкий язык для формирования запросов, может создавать индексы для различных хранимых атрибутов, эффективно обеспечивает хранение больших бинарных объектов, поддерживает журналирование операций по изменению и добавлению данных в БД, может работать в соответствии с парадигмой Map/Reduce, поддерживает репликацию и построение отказоустойчивых конфигураций.

В MongoDB имеются встроенные средства по обеспечению шардинга (распределение набора данных по серверам на основе определенного ключа), комбинируя который репликацией данных можно построить горизонтально масштабируемый кластер хранения, в котором отсутствует единая точка отказа (сбой любого узла не сказывается на работе БД), поддерживается автоматическое восстановление после сбоя и перенос нагрузки с вышедшего из строя узла. Расширение кластера или преобразование одного сервера в кластер производится без остановки работы БД простым добавлением новых машин.

Особенности нового выпуска:

  • Поддержка транзакций, удовлетворяющих требованиям ACID (атомарность, согласованность, изолированность, надежность) при обработке запросов, охватывающих несколько документов (многодокументные транзакции). В контексте одного документа ACID-транзакции в MongoDB поддерживались изначально, но обеспечение изоляции на уровне нескольких документов было одним из наиболее часто высказываемых пользователями пожеланий. При помощи механизма изоляции на базе снапшотов внутри транзакции теперь предоставляется целостное представление всех данных и возможность отката всех изменений в случае отмены транзакции, независимо от того сколько документов было вовлечено.

    После модификации документа внутри транзакции для него выставляется блокировка операций записи (не влияет на чтение) до завершения транзакции или истечения таймаута (по умолчанию транзакция не может длиться более 60 секунд). До завершения транзакции все внесённые в рамках транзакции изменения остаются невидимы для других запросов, в момент подтверждения транзакции изменения применяются атомарно. Синтаксис транзакций повторяет операции в реляционных СУБД - открытие транзакции (startTransaction) с последующим её подтверждением (commitTransaction) или сбросом (abortTransaction). В настоящее время многодокументные транзакции применимы только на уровне одного набора реплицированных данных (Replica Set), но в выпуске MongoDB 4.2 планируется обеспечить работу транзакций на уровне кластера MongoDB;

  • Добавлены новые агрегатные операторы для преобразования типов данных на стороне СУБД: универсальный оператор $convert для конвертации в любой указанный тип и привязанные к конкретным типам операторы $toBool, $toDate, $toDecimal, $toDouble, $toInt, $toLong, $toObjectId и $toString;
  • Добавлены новые строковые операторы для вырезания пробелов или определённых символов вначале или в конце строки: $ltrim, $rtrim и $trim;
  • В агрегатный оператор $dateFromString добавлена возможность определения формата разбора даты;
  • Добавлена поддержка аутентификации SCRAM-SHA-256 на базе хэша SHA-256 (ранее предоставлялся SCRAM-SHA-1 на базе SHA-1) для организации более безопасного доступа по паролю. Поддержка устаревшего механизма аутентификации MONGODB-CR прекращена. По умолчанию отключена поддержка TLS 1.0 (для создания шифрованного канала связи требуется TLS 1.1+);
  • Для интеграции с системами мониторинга добавлены новые привилегии checkFreeMonitoringStatus и setFreeMonitoring;
  • Движок хранения MMAPv1 объявлен устаревшим и будет удалён в одном из следующих выпусков. Пользователям движка MMAPv1 (оригинальный движок MongoDB на базе отзеркаленных в память файлов) рекомендуется перейти на движок WiredTiger, который применяется по умолчанию, начиная с выпуска MongoDB 3.2;
  • Прекращена поддержка репликации в режиме Master-Slave и протокола реплицирования данных pv0, вместо которых следует использовать набор реплик (Replica Set) и протокол pv1;
  • Встроенный JavaScript-движок обновлён до выпуска MozJS 45.9.0. По умолчанию в JavaScript-движке отключён JIT-компилятор;
  • Обновлены драйверы к MongoDB, совместимость с MongoDB 4.0 обеспечена в выпусках драйверов Java 3.8.0, Python 3.7.0, C 1.11.0, C# 2.7, Node 3.1.0, Ruby 2.6.0, Perl 2.0.0, PHPC 1.5.0 и Scala 2.4.0;
  • Обеспечена интеграция с инструментарием оркестровки контейнеров Kubernetes для автоматизации развёртывания и поддержания сервисов с MongoDB в кластере Kubernetes.


  1. Главная ссылка к новости (https://www.mongodb.com/blog/p...)
  2. OpenNews: Релиз документо-ориентированной СУБД MongoDB 3.6
  3. OpenNews: MongoDB прекращает поддержку платформы Solaris
  4. OpenNews: Следом за MongoDB начались атаки на CouchDB, Hadoop и ElasticSearch
  5. OpenNews: Число серверов MongoDB, поражённых шифровальщиком, увеличилось до 28 тысяч
  6. OpenNews: Вымогатели-шифровальщики переключились на незащищённые СУБД MongoDB
Лицензия: CC-BY
Тип: Программы
Ключевые слова: mongodb, database
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Ajax/Линейный | Раскрыть все сообщения | RSS
 
  • 1.1, Аноним (1), 17:05, 29/06/2018 [ответить] [показать ветку] [···]    [к модератору]
  • +/
    Нужно
     
     
  • 2.2, A.Stahl (ok), 17:17, 29/06/2018 [^] [ответить]    [к модератору]
  • +/
    Что?
     
     
  • 3.3, dkgnim (?), 17:24, 29/06/2018 [^] [ответить]    [к модератору]
  • +1 +/
    Что нужно?
     
     
  • 4.4, A.Stahl (ok), 17:37, 29/06/2018 [^] [ответить]    [к модератору]
  • +/
    Ну я и спрашиваю что. Аноним знает.


     
  • 4.17, Catwoolfii (ok), 23:03, 29/06/2018 [^] [ответить]    [к модератору]
  • +6 +/
    нужно удалить
     
  • 2.6, A (?), 17:59, 29/06/2018 [^] [ответить]    [к модератору]  
  • +/
    ... ещё добавить триггеры и встроенные процедуры.
     
     
  • 3.7, Аноним (7), 18:18, 29/06/2018 [^] [ответить]    [к модератору]  
  • +13 +/
    и приделать, наконец, SQL.....
     
  • 1.5, Аноним (5), 17:38, 29/06/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +7 +/
    Добавлена поддержка показа рекламы https://medium.com/@StephenLynx/mongodb-4-0-or-why-are-there-ads-on-my-te
     
     
  • 2.9, пох (?), 19:21, 29/06/2018 [^] [ответить]     [к модератору]  
  • +/
    прекрасно Я давно искал повод причину я придумаю вынести нахрен эту дрянь со ... весь текст скрыт [показать]
     
  • 1.8, ляликс (?), 19:08, 29/06/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • –1 +/
    встраиваемая версия есть?
     
  • 1.10, Аноним (10), 20:08, 29/06/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +10 +/
    Отличная БД. MongoDB превосходно работает в паре с Node.JS (нужно будет доустановить немного NPM-пакетов). А если при этом запускать через systemd — вообще шик. Ну и запускать, естессно, на сервере, зайдя на него через ssh из великолепного GNOME, работающим под божественным Wayland (подойдет любой GTK+-based терминал, например gnome-terminal). Сам сервер лучше держать на Microsoft Azure, а работал бы он на Fedora с патчами от глубоко уважаемой команды Grsecurity. А исходники держать на GitHub, и править их из-под Microsoft Visual Studio Code или вообще средствами самого гитхаба через превосходный Google Chrome.

    Вот это я называю жизнь.

     
     
  • 2.12, Аноним (12), 20:14, 29/06/2018 [^] [ответить]    [к модератору]  
  • +4 +/
    Хорошо, что у меня финкпад с дренажными отверстиями.
     
     
  • 3.34, Q2W (?), 00:41, 01/07/2018 [^] [ответить]    [к модератору]  
  • +/
    И на моём thинкпаде эти отверстия пригодились, когда я прочитал "финкпад" =).
     
  • 2.13, Аноним (13), 20:59, 29/06/2018 [^] [ответить]    [к модератору]  
  • +2 +/
    Так толсто, что аж тонко
     
  • 2.14, Вареник (?), 21:24, 29/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Классный стекб ))
     
  • 2.16, IRASoldier (?), 22:24, 29/06/2018 [^] [ответить]    [к модератору]  
  • –2 +/
    Ты так всё это написал, как будто это смешно. Хотя так с этим работать можно и даже с комфортом.
     
  • 2.43, Попугай Кеша (?), 09:58, 02/07/2018 [^] [ответить]    [к модератору]  
  • +/
    Сильно вас прижарило на ЧМ по футболу
     
  • 1.11, Аноним (11), 20:09, 29/06/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    ЭСКУЕЛЬ устарел, говорили они, ЭРДЭБЭМЭС не годится!
     
  • 1.15, Rodegast (ok), 21:37, 29/06/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +1 +/
    > Поддержка транзакций, удовлетворяющих требованиям ACID ... охватывающих несколько документов

    Ну это просто праздник какой то!

     
     
  • 2.20, Аноним (20), 08:31, 30/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Ну опять же неполноценно... Да и в Spring оно придёт лишь через некоторое время...
     
     
  • 3.42, лютый охохоня... (?), 06:13, 02/07/2018 [^] [ответить]    [к модератору]  
  • +/
    > Ну опять же неполноценно... Да и в Spring оно придёт лишь через

    Это Spring-офилы то про неполноценность будут рассуждать?


     
  • 1.18, Аноним (18), 00:59, 30/06/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +3 +/
    Всегда не понимал, зачем оно нужно, если в Постгресе давно есть JSON/JSONB, которые ещё и быстрее.
     
     
  • 2.19, Аноним (19), 01:51, 30/06/2018 [^] [ответить]     [к модератору]  
  • –2 +/
    Как ты будешь failover на ПГ делать А как обновлять часть документа Или ты по ... весь текст скрыт [показать]
     
     
  • 3.21, Аноним (20), 08:34, 30/06/2018 [^] [ответить]     [к модератору]  
  • +/
    Обновлением части документа как функцией монги вообще кто-нибудь пользуется Обы... весь текст скрыт [показать]
     
     
  • 4.46, лютый охохоня... (?), 10:26, 02/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Сам же расписался в былдокодерстве и так у всех хейтерков Монги Монговский B... весь текст скрыт [показать]
     
  • 3.22, Инна Друзь (?), 13:39, 30/06/2018 [^] [ответить]     [к модератору]  
  • +3 +/
    Приучаемся читать мануалы https www postgresql org docs current static functi... весь текст скрыт [показать]
     
     
  • 4.81, анонсим (?), 23:28, 04/07/2018 [^] [ответить]    [к модератору]  
  • +/
    Великолепный ответ!
     
  • 2.85, MadeInRussia (?), 13:59, 05/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Postgres очень дорого и хрупко горизонтально масштабируется И при этом вообще н... весь текст скрыт [показать]
     
  • 1.23, Аноним (23), 16:15, 30/06/2018 [ответить] [показать ветку] [···]     [к модератору]  
  • –2 +/
    Используем MongoDB c версии 3 2 в нашей организации в 1000 человек Хотели прос... весь текст скрыт [показать]
     
     
  • 2.27, Аноним (27), 20:04, 30/06/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    А PG то почему не использовали?
     
  • 2.30, Аноним (7), 21:25, 30/06/2018 [^] [ответить]     [к модератору]  
  • +/
    У монги большие проблемы с индексацией вложенных массивов Как только реально сл... весь текст скрыт [показать]
     
     
  • 3.40, лютый охохоня... (?), 06:00, 02/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Работаю с ЕГРЮЛ, это 5-7 уровневые XMLки весом до пары мегабайт Когда уже пробл... весь текст скрыт [показать]
     
     
  • 4.50, Кузя (?), 16:07, 02/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Вы удивитесь, но это ключевое свойство СУБД Mongo пригодна только когда вам нуж... весь текст скрыт [показать]
     
     
  • 5.63, anonymous (??), 14:54, 03/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Когда попробуете ее по-настоящему использовать и поймете ее фишки вникните в ее ... весь текст скрыт [показать]
     
     
  • 6.64, Кузя (?), 17:43, 03/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Пробовал 3-тью версию Не совпадает с моим опытом Не понравился и характер э... весь текст скрыт [показать]
     
  • 2.36, Bekka (?), 10:48, 01/07/2018 [^] [ответить]    [к модератору]  
  • +1 +/
    Разработчики отказываются, потому что им лень что-то делать. Могут только смузи пить
     
     
  • 3.44, Попугай Кеша (?), 10:00, 02/07/2018 [^] [ответить]    [к модератору]  
  • +/
    > Разработчики отказываются, потому что им лень что-то делать. Могут только смузи пить

    Смузи это хорошо. Я люблю пить смузи

     
  • 1.24, Аноним (23), 16:53, 30/06/2018 [ответить] [показать ветку] [···]     [к модератору]  
  • +/
    Для многих кейсов перешли на MongoDB Она нас просто спасает Очень жаль, озлобл... весь текст скрыт [показать]
     
     
  • 2.25, Тож аноним (?), 17:11, 30/06/2018 [^] [ответить]     [к модератору]  
  • +3 +/
    Ты сам-то давно использовал в позах, отличных от однонодовой, сконфигурированной... весь текст скрыт [показать]
     
     
  • 3.26, Аноним (23), 17:48, 30/06/2018 [^] [ответить]     [к модератору]  
  • –1 +/
    Покажите пожалуйста тикет на jira mongodb org, где описывается данная проблема и... весь текст скрыт [показать]
     
     
  • 4.28, мимокрокодил_ноэтонеточно (?), 20:09, 30/06/2018 [^] [ответить]     [к модератору]  
  • +/
    Не нужны тикеты, чтобы убедиться что способ кластеризации, который использует Mo... весь текст скрыт [показать]
     
  • 4.29, Аноним (27), 20:11, 30/06/2018 [^] [ответить]    [к модератору]  
  • +/
    > У нас 2000 rps в replica-sets и никаких проблем не имеем

    Создай капед колекцию нагруженную и попробуй реплику новую поднять, не успеешь до ротации - реплика отвалится, удачи.

     
     
  • 5.33, Аноним (23), 23:27, 30/06/2018 [^] [ответить]     [к модератору]  
  • +/
    Если ты знаешь как работает реплика, зачем делаешь херню Если не знаешь, то н... весь текст скрыт [показать]
     
     
  • 6.48, Аноним (48), 14:14, 02/07/2018 [^] [ответить]     [к модератору]  
  • +/
    это вы утверждали что нет проблем, а не я... весь текст скрыт [показать]
     
  • 5.70, Ананомизец (?), 09:36, 04/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Можно просто увеличить размер оплога ... весь текст скрыт [показать]
     
  • 4.38, Вадик (??), 13:25, 01/07/2018 [^] [ответить]    [к модератору]  
  • +/
    Поддерживаю, использовал на двух высоконагружпнных сервисах. Отличное решение для многих задач. Но деньги по понятным причинам хранили в postgres :)
     
  • 2.31, Аноним (7), 21:30, 30/06/2018 [^] [ответить]     [к модератору]  
  • +/
    Что значит выше Падает стремительнее Монга хороша для некоторых специфичных за... весь текст скрыт [показать]
     
     
  • 3.32, Аноним (23), 23:24, 30/06/2018 [^] [ответить]     [к модератору]  
  • +/
    Она прекрасно разруливает OLTP нагрузку, т к для нее и предназначена, не говорит... весь текст скрыт [показать]
     
     
  • 4.35, Аноним (35), 08:25, 01/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Ок И сервера работают без сбоев, память всегда сбрасывается на диск Уваж... весь текст скрыт [показать]
     
     
  • 5.37, Аноним (23), 13:19, 01/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Здесь все базы в одной лодке Для Release Candidate сборок, где добавлялся новый... весь текст скрыт [показать]
     
     
  • 6.39, Аноним (39), 13:49, 01/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Вероятно потому, что за PG никогда не водилось терять данные за последнюю минуту... весь текст скрыт [показать]
     
     
  • 7.45, лютый охохоня... (?), 10:14, 02/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Ламеры не палятся Тебя на мыло, если у тебя падающий сервер вызывает потерю... весь текст скрыт [показать]
     
     
  • 8.47, Аноним (7), 10:48, 02/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Товарищ только вчера примкнул к программисткому сообществу Откуда вас столь... весь текст скрыт [показать]
     
  • 4.51, Кузя (?), 16:16, 02/07/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Извините, но Монга принципиально теряет данные и выдумывает их В этом кроются... весь текст скрыт [показать]
     
     
  • 5.57, лютый охохоня... (?), 19:40, 02/07/2018 [^] [ответить]    [к модератору]  
  • +/
    >теряет данные и "выдумывает" их.
    >режим грязного чтения

    ну и клоун, причём повторяешь этот бред в каждой теме.

     
  • 5.62, anonymous (??), 14:26, 03/07/2018 [^] [ответить]    [к модератору]  
  • +/
    Это память у тебя теряется и выдумывается каждый раз новая
     
  • 4.52, Кузя (?), 16:24, 02/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Вас само слово Вакуум пугает Механизмы очистки исторических данных есть во всех... весь текст скрыт [показать]
     
     
  • 5.56, лютый охохоня... (?), 19:33, 02/07/2018 [^] [ответить]    [к модератору]  
  • +/
    > Вас само слово Вакуум пугает?

    Ну распиши тут как делать vacuum full когда 80% storage занято.

    Для сравнения в Монго этого делать не надо никогда. Профит...

     
     
  • 6.58, Аноним (7), 20:10, 02/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Всерьёз считаете, что в монге изобрели новые способы хранения индексов И о стра... весь текст скрыт [показать]
     
     
  • 7.80, anonymous (??), 20:51, 04/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Почитайте, для чего нужен ваакуум для начала и поймите лучше, что вам хотят сказ... весь текст скрыт [показать]
     
  • 6.66, Кузя (?), 19:02, 03/07/2018 [^] [ответить]     [к модератору]  
  • +1 +/
    Да, профит Монги в том, что у неё нет ни транзакций, ни согласованности данных п... весь текст скрыт [показать]
     
  • 5.60, Аноним (23), 22:56, 02/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Только у PostgreSQL MVCC сделан так костыльно, что они уже замучались выдумывать... весь текст скрыт [показать]
     
     
  • 6.65, Кузя (?), 18:00, 03/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Понимаю я другое -- я очень хорошо знаю, как работает механизм MVCC Оракла и Сик... весь текст скрыт [показать]
     
     
  • 7.69, Аноним (23), 01:25, 04/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Накладно при откате Мы говорим про нормальную работу БД, где коммиты происходя... весь текст скрыт [показать]
     
     
  • 8.84, Жаба (?), 11:42, 05/07/2018 [^] [ответить]    [к модератору]  
  • +/
    > Накладно при откате ?
    > Мы говорим про нормальную работу БД, где коммиты происходят значительно чаще чем
    > откаты. Зачем PG нужен этот мусор? Если бы их все устраивало,
    > они бы на каждой конфе не говорили, что хотят переписать движок
    > и сделать его таким же как у Oracle

    О каком мусоре речь? Это, батенька, не мусор, а многоверсионность. В её самой напрашивающейся реализации -- хранить исторические данные о данных в виде самих этих... данных. В Оракле подход другой, в Оракле хранят довольно сложно устроенный код, как собрать состояние блока на любой момент в прошлом (в пределах объёма сегмента отката). Какой подход лучше -- бесполезный спор(т).
    Обслуживание же MVCC в Слоне тема давно уже не болезненная. Просто нужно делать автовакуум очень часто. Вот и всё. Очень-очень часто. Да и не ясно к чему о ней тут.

     
  • 4.53, Кузя (?), 16:35, 02/07/2018 [^] [ответить]    [к модератору]  
  • +/
    > Монга НИЧЕГО НЕ ТЕРЯЕТ, запомните это и прекратите тиражировать. Она не теряет
    > данные ни в standalone вариант, ни в распределенном (посмотрите результаты jepsen
    > test)

    А вы не могли бы описать, что делает Монга 4 в случае конкурентного обновления? Какие есть варианты?

     
     
  • 5.55, лютый охохоня... (?), 19:32, 02/07/2018 [^] [ответить]    [к модератору]  
  • +/
    > А вы не могли бы описать, что делает Монга 4 в случае конкурентного обновления?

    Кузя лучше расскажи, как волшебный РСУБД защищает от конкурентного обновления? Ну вот транзакция1 прилетела и сказала update blatable set blacol = 3 where id = 1; а параллельно прилетела транзакция2 и сказала update blatable set blacol = 13 where id = 1;
    обе команды выполнятся в порядке прихода, кто последний тот и папа.
    Что в Монго 2, что 3, что 4. Что в орацле. Что гундишь то?

     
     
  • 6.67, Кузя (?), 19:05, 03/07/2018 [^] [ответить]    [к модератору]  
  • +/
    >> А вы не могли бы описать, что делает Монга 4 в случае конкурентного обновления?
    > Кузя лучше расскажи, как волшебный РСУБД защищает от конкурентного обновления? Ну вот
    > транзакция1 прилетела и сказала update blatable set blacol = 3 where
    > id = 1; а параллельно прилетела транзакция2 и сказала update blatable
    > set blacol = 13 where id = 1;
    > обе команды выполнятся в порядке прихода, кто последний тот и папа.
    > Что в Монго 2, что 3, что 4. Что в орацле. Что
    > гундишь то?

    Э, ну там, всякие разные "уровни изоляции транзакций" бывают. Но не парься, я тебя понял.

     
  • 6.68, Аноним (68), 00:11, 04/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Одиночный апдейт должен быть атомарен в любой субд, так что пример неподходящий ... весь текст скрыт [показать]
     
     
  • 7.71, лютый охохоня... (?), 11:28, 04/07/2018 [^] [ответить]    [к модератору]  
  • +/
    >Select num into :n where id=1; :n:=:n+1; Update set num=:n where id=1;

    Извиняюсь, это что за индусятина? В SQL это делается одной операцией update bla
    set num = num + 1 where id = 1

    Ну и в монго это всю жисть было атомарной операцией

    db.bla.update({id:1},{ $inc: { num: 1} })

    И причём тут две конкурентные транзакции, за что конкурируете, господа SQL аналитики?

     
     
  • 8.72, Аноним (68), 13:10, 04/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Ясен пень ,что можно сделать одной операцией Это простой пример составной опера... весь текст скрыт [показать]
     
  • 8.73, Жаба (?), 13:25, 04/07/2018 [^] [ответить]    [к модератору]  
  • +/
    Охохонюшка, ответ куда проще: в Монге нет транзакций )))) поэтому и нет обработки конкурентного изменения. В Монге всё валится в кучу без разбора. В Монге длительная операция может упорно что-то там изменять, а другая, начавшаяся после, но короткая, видит такие "сырые" изменения и без проблем фигачит прямо по ним. Нет никакой изоляции, потому что (вот так новость) транзакций-то нет. Поэтому нет никакой защиты от фантомов, нет никакой атомарности изменений в принципе. В 4-ке их заявляют, но, есть предположение, работать это будет так же медленно, как и работа с блобами в любой другой РСУБД -- потому что ничем от неё не отличается принципиально.
     
     
  • 9.82, лютый охохоня... (?), 05:29, 05/07/2018 [^] [ответить]    [к модератору]  
  • +/
    >В Монге длительная операция может упорно что-то там изменять, а другая, начавшаяся после, но короткая, видит такие "сырые" изменения и без проблем фигачит прямо по ним

    Если это недопустимо и тем не менее происходит, то вывод ровно один: прогер ленивый олень.
    Тут один уже отписался, что "ну $set же никто не использует, все олени за replace"

    Открою страшную тайну: с труЪ СУБД + ORM фреймворк у того же самого оленя будут те же самые проблемы, он делает entity managed, чего-то там с ним долго делает, если кто-то другой дернет глобальный update, то persist() на эту entity перезапишет результаты глобального апдейта.

    ОКей, без ORM фреймворк эта проблема тоже никуда не делась. Если у тебя разные процессы живут своей жизнью и один делает глобальный UPDATE, то выполнятся они по очереди, но проблема перезаписи данных никуда не ушла.

     
     
  • 10.83, Жаба (?), 11:28, 05/07/2018 [^] [ответить]    [к модератору]  
  • +/
    Зависит от орм-а. Если вы о реализациях JPA, то версионность часть стандарта, так что такая ситуация менеджером обрабатывается. Тут важнее понимать, что происходит.
     
  • 7.74, Жаба (?), 13:33, 04/07/2018 [^] [ответить]    [к модератору]  
  • +/
    > Одиночный апдейт должен быть атомарен в любой субд

    Вопрос-то, видимо, не в этом. Вот есть у вас транзакция А -- очень длительная и сложная. Эта А началась в Т1. И есть тразакция В -- короткая и простая. В началась в Т2. Так уж сложилось, что подпадающие под критерии обоих транзакций данные пересекаются. Причём так, что если бы А зафиксировалась до Т2, то данные перестали бы соответствовать критериям В. Но А до Т2 не зафиксировалась, но данные уж поменяла и идёт дальше. В же видит данные на момент Т2 и они соответствуют её критериям выбора на изменение и меняет их, затем фиксируется в Т3. В Т125 наконец приходит время фиксироваться транзакции А. Но оказывается, что транзакция В, хотя и пришла после А, но данные уже поменяла и давно пофиксила. И вот тут начинается самое интересное...

     
     
  • 8.78, Аноним (68), 14:36, 04/07/2018 [^] [ответить]    [к модератору]  
  • +/
    Ну это вааще роскомнадзор какой-то
     
  • 4.54, Кузя (?), 16:41, 02/07/2018 [^] [ответить]    [к модератору]  
  • +/
    > Она прекрасно разруливает OLTP нагрузку, т.к для нее и предназначена, не говорите
    > бред.
    > Может быть до движка WiredTiger могли быть какие-либо проблемы, но сейчас и
    > точно нет, что подтверждается личным опытом.

    ... К примеру, у меня есть объект-коллекция, который содержит несколько сот миллионов одинаковых элементов. В случае схемного ORM это моделируется, и фактически хранится, двумя строками в двух отношениях. Как это будет отображено в случае Монги? Искренне интересно.

     
  • 3.41, лютый охохоня... (?), 06:11, 02/07/2018 [^] [ответить]    [к модератору]  
  • +/
    > Монга хороша для некоторых специфичных задач.

    До 4.0 была хороша для 70-80% задач. С ACID уже стала хороша для 95% задач. Ой?

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

    Не пиши бред. BSON местами уместнее POJO (там где не надо методов).

    > Монга ничего не гарантирует. И скорость у неё только потому, что по умолчанию буфер
    > со сбросом на диск чуть ли не раз в минуту.

    commitIntervalMs Default: 100 or 30
    (Карл, разрешенный максимум 500мс)


     
     
  • 4.76, Жаба (?), 14:15, 04/07/2018 [^] [ответить]    [к модератору]  
  • +/
    >> Монга хороша для некоторых специфичных задач.
    > До 4.0 была хороша для 70-80% задач. С ACID уже стала хороша
    > для 95% задач. Ой?

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

     
  • 3.61, Аноним (23), 23:00, 02/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Это PostgreSQL не нужно дергать OLTP нагрузкой, т к у него нет Hard Soft parse к... весь текст скрыт [показать]
     
     
  • 4.75, Жаба (?), 14:06, 04/07/2018 [^] [ответить]    [к модератору]  
  • +/
    >> желательно, не дёргать её OLTP-нагрузкой
    > Это PostgreSQL не нужно дергать OLTP нагрузкой, т.к у него нет Hard&Soft
    > parse как у Oracle, т.к сложные запросы не кэшируются а разбираются
    > заново каждый раз. Если кэш только в рамках сессии.
    > А с учетом того, что pooling для запросов встроенного в PG нет
    > и приходится встраивать сторонние решения в лице PgBouncer - догадайтесь, как
    > можно что-то кешировать и задавать параметры сессии, если твой connection может
    > достаться другому.

    Всё не так драматично. В Оракле больше нет никакого хард- и софт- разбора. Анализатор сам решает, как параметризовать и кэшировать разборы. Слоне действует точно так же, только, увы, на мой взгляд, менее эффективно пока.
    Отсутствие разделяемых сессий в Слоне тоже не проблема: во-первых, полно сторонних решений для построения очередей, а, во-вторых, очереди вообще редко в каких решениях нужны -- чаще всего есть только один сеанс и это сеанс с сервером приложений, у которого есть свой пуллинг.

     
     ....нить скрыта, показать (43)

  • 1.49, ПДК (?), 14:18, 02/07/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    Секундочку, я наверное что-то пропустил, в MongoDB наконец-то появились нормальные транзакции или это всё та же грёбaнaя атомарность?
     
     
  • 2.59, Аноним (7), 20:15, 02/07/2018 [^] [ответить]     [к модератору]  
  • +/
    Нормальные - не появились Судя по описанию, появились минимально возможные для ... весь текст скрыт [показать]
     
  • 1.77, Жаба (?), 14:28, 04/07/2018 [ответить] [показать ветку] [···]    [к модератору]  
  • +/
    По-моему, некорретно называть Монго СУБД. Монго, всё же, это мета-файловая система. Функционально она ничем не лучше сочетания, скажем, работающего по верх zfs grep-а. Ну в сочетании с какой-нибудь технологией блочной репликации.
     
     
  • 2.79, anonymous (??), 20:40, 04/07/2018 [^] [ответить]    [к модератору]  
  • +/
    Ну что ты несешь? Сидели бы по углам и не вылазили
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2018 by Maxim Chirkov  
    ДобавитьПоддержатьВебмастеруГИД  
    Hosting by Ihor