Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Lock в MongoDB / 6 сообщений из 6, страница 1 из 1
05.01.2014, 04:55:53
    #38517880
snaff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lock в MongoDB
Всем Ку.

Я начал использовать MongoDB. Хотелось бы хранить в ней коллекцию пользователей. Так вот, при создании нового пользователя я ищу по имени есть ли такой или нет и создаю, если нет. Есть ли возможность, с Java стороны залочить коллекцию перед поиском и отпустить ее после добавления. Порылся и интерентах, но ничего толкового не нашел.
Заранее спасибо
...
Рейтинг: 0 / 0
05.01.2014, 12:01:09
    #38517915
cdtyjv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lock в MongoDB
Ваш вопрос возникает из-за того, то вы некорректно используете MongoDB. Это не транзакционная БД, здесь нельзя ничего локировать по определению. Если у вас возникает такая необходимость, значит вы либо что-то не понимаете, либо выбрали не ту СУБД.
Я не знаю всей кухни вашей задачи, но навскидку можно смотреть в сторону следующих методов:
- insert
- update c upsert флажком
- findAndModify
- поставить уникальный констрейнт на поле

Нужно помнить, что в MongoDB атомарность существует только на уровне изменений конкретного документа, не более.
...
Рейтинг: 0 / 0
06.01.2014, 01:06:50
    #38518251
snaff
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lock в MongoDB
Спасибо. Да, в первый раз использую noSQL DB, так что могу недопонимать концепции. Для своей задачи сасинхронизировал метод на стороне java. Вроде подошло решение
...
Рейтинг: 0 / 0
06.01.2014, 12:32:20
    #38518373
cdtyjv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lock в MongoDB
snaffСпасибо. Да, в первый раз использую noSQL DB, так что могу недопонимать концепции. Для своей задачи сасинхронизировал метод на стороне java. Вроде подошло решениеНу имейте ввиду, что такое решение является костылем, и будет работать до тех пор, пока с вашей базой работает только ваше приложение, и только из одной JVM.
Я бы вам все таки рекомендовал разобраться, как это сделать по уму в самой MongoDB.
...
Рейтинг: 0 / 0
06.01.2014, 13:25:14
    #38518394
Alexey Tomin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lock в MongoDB
snaffЯ начал использовать MongoDB. Хотелось бы хранить в ней коллекцию пользователей. Так вот, при создании нового пользователя я ищу по имени есть ли такой или нет и создаю, если нет. Есть ли возможность, с Java стороны залочить коллекцию перед поиском и отпустить ее после добавления. Порылся и интерентах, но ничего толкового не нашел.

В Монге есть update с указание "вставлять, если нет". Подробностей не помню- код на работе, из дома не достучусь.
...
Рейтинг: 0 / 0
06.01.2014, 17:56:19
    #38518643
Большой Синий Кит
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Lock в MongoDB
snaff,

В качестве костыля можно использовать
http://zookeeper.apache.org/

А вообще, выбирайте какую-нибудь RDBMS и забудьте эту чепуху.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Lock в MongoDB / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]