|
|
|
Lock в MongoDB
|
|||
|---|---|---|---|
|
#18+
Всем Ку. Я начал использовать MongoDB. Хотелось бы хранить в ней коллекцию пользователей. Так вот, при создании нового пользователя я ищу по имени есть ли такой или нет и создаю, если нет. Есть ли возможность, с Java стороны залочить коллекцию перед поиском и отпустить ее после добавления. Порылся и интерентах, но ничего толкового не нашел. Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2014, 04:55 |
|
||
|
Lock в MongoDB
|
|||
|---|---|---|---|
|
#18+
Ваш вопрос возникает из-за того, то вы некорректно используете MongoDB. Это не транзакционная БД, здесь нельзя ничего локировать по определению. Если у вас возникает такая необходимость, значит вы либо что-то не понимаете, либо выбрали не ту СУБД. Я не знаю всей кухни вашей задачи, но навскидку можно смотреть в сторону следующих методов: - insert - update c upsert флажком - findAndModify - поставить уникальный констрейнт на поле Нужно помнить, что в MongoDB атомарность существует только на уровне изменений конкретного документа, не более. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2014, 12:01 |
|
||
|
Lock в MongoDB
|
|||
|---|---|---|---|
|
#18+
Спасибо. Да, в первый раз использую noSQL DB, так что могу недопонимать концепции. Для своей задачи сасинхронизировал метод на стороне java. Вроде подошло решение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2014, 01:06 |
|
||
|
Lock в MongoDB
|
|||
|---|---|---|---|
|
#18+
snaffСпасибо. Да, в первый раз использую noSQL DB, так что могу недопонимать концепции. Для своей задачи сасинхронизировал метод на стороне java. Вроде подошло решениеНу имейте ввиду, что такое решение является костылем, и будет работать до тех пор, пока с вашей базой работает только ваше приложение, и только из одной JVM. Я бы вам все таки рекомендовал разобраться, как это сделать по уму в самой MongoDB. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2014, 12:32 |
|
||
|
Lock в MongoDB
|
|||
|---|---|---|---|
|
#18+
snaffЯ начал использовать MongoDB. Хотелось бы хранить в ней коллекцию пользователей. Так вот, при создании нового пользователя я ищу по имени есть ли такой или нет и создаю, если нет. Есть ли возможность, с Java стороны залочить коллекцию перед поиском и отпустить ее после добавления. Порылся и интерентах, но ничего толкового не нашел. В Монге есть update с указание "вставлять, если нет". Подробностей не помню- код на работе, из дома не достучусь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2014, 13:25 |
|
||
|
Lock в MongoDB
|
|||
|---|---|---|---|
|
#18+
snaff, В качестве костыля можно использовать http://zookeeper.apache.org/ А вообще, выбирайте какую-нибудь RDBMS и забудьте эту чепуху. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.01.2014, 17:56 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38518251&tid=2127863]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
151ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 473ms |

| 0 / 0 |
