?

Log in

No account? Create an account
Key-Value store - Cyril Pertsev
June 21st, 2014
04:02 pm

[Link]

Previous Entry Share Next Entry
Key-Value store

(26 comments | Leave a comment)

Comments
 
[User Picture]
From:romikchef
Date:June 22nd, 2014 03:44 am (UTC)
(Link)
На первый взгляд выглядит, как MongoDB.

Только оно не key-value, а хранит именно что JSON объекты:
db.people.insert({ name: 'Vasya', surname: 'Poupkine'})
- это ванильный синтаксис.
формат "строки" - полностью свободный. Придет объект вида
{ name: 'Vasya', surname: 'Poupkine', birthday: '02/20/1969' }
- сохранится тоже
Соответственно, все поля доступны для запроса, и для поиска индексы специально строить не нужно:
db.people.find( { birthday: '02/20/1969' } );
найдёт всех родившихся в этот день (и у кого есть это свойство в коллекции).
Добавить день рождения существующему Васе - тоже не проблема.

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

Edited at 2014-06-22 04:08 am (UTC)
[User Picture]
From:kika
Date:June 22nd, 2014 05:16 am (UTC)
(Link)
О, кстати, как же я мог про Монгу-то забыть. Спасибо! Я с ней никогда не общался тесно, а гугление общих слов почему-то не вывело.
[User Picture]
From:freedom_of_sea
Date:June 22nd, 2014 07:46 am (UTC)
(Link)
так ведь в Монго одна колонка всего как в Berkley
[User Picture]
From:romikchef
Date:June 22nd, 2014 09:09 am (UTC)
(Link)
В этой колонке-то деревья растут.
From:ircicq
Date:June 22nd, 2014 08:30 am (UTC)
(Link)
Предпочтительнее LevelDB
У MongoDB лицензионные ограничения AGPL
[User Picture]
From:romikchef
Date:June 22nd, 2014 09:22 am (UTC)
(Link)
Пользователям это ведь без разницы.
Если ты начал патчить - то да, должен патчи тоже делать бесплатными.
Но просто юзать в коммерческих проектах - без проблем же.

From:ircicq
Date:June 22nd, 2014 10:22 am (UTC)
(Link)
Насколько я понял, если MongoDB в виде Embedded DBMS, то приложение тоже должно быть AGPL.
[User Picture]
From:p1r4nh4
Date:June 22nd, 2014 05:31 pm (UTC)
(Link)
Монга же вроде не может быть эмбеддед, она всегда запускается отдельным процессом, а потому и никаких вопросов к лицензии приложения нет.
[User Picture]
From:romikchef
Date:June 22nd, 2014 09:35 am (UTC)
(Link)
Отлично ложится, кстати, на приведенную выше модель.
POST дергает update c upsert, чтобы база сама решала, update или insert
А GET кодируется в JSON и отправляется прямиком в .find().
Ну, или честный REST организовать, там даже что-то под основные языки уже есть.
My Website Powered by LiveJournal.com