Встроенный диванDB - PullRequest
       27

Встроенный диванDB

8 голосов
/ 23 декабря 2010

CouchDB великолепен, мне нравится его p2p-репликация , но он немного больше (потому что нам нужно установить Erlang) и медленнее, когда используется в настольном приложении.

Как я тестировал в процессоре Intel Duo Core,

  1. 12 секунд для загрузки 10000 документов
  2. 10 секунд для вставки 10000 документов, но для обновления представления требуется 20 секунд, поэтому всего 30 секунд

Существует ли реализация SQL, которая имеет такую ​​же функциональность p2p replication , но ее размер очень мал, как у sqlite, и скорость довольно хорошая (1 секунда для загрузки 10000 документов).

Ответы [ 2 ]

3 голосов
/ 27 декабря 2010

Вы пытались использовать Hovercraft и / или Erlang view server?У меня была похожая проблема, и я обнаружил, что пребывание в Erlang VM (таким образом, избегая экскурсий в SpiderMonkey) дало мне необходимый импульс.Я сделал 3 вещи ...

  1. Повышение запросов: перенос ваших функций mapreduce с js на "родной" Erlang обычно дает огромный прирост производительности при запросе кушетки (http://wiki.apache.org/couchdb/EnableErlangViews). Также управление представлениямипроще, потому что вы можете вызывать внешние библиотеки или свои собственные скомпилированные модули (просто добавьте их в свой каталог ebin), сократив количество загрузок, которые вам нужно делать во время разработки.

  2. Повышение вставок: Использование Hovercraftдля вставок дает увеличение производительности до X100 (https://github.com/jchris/hovercraft.) Это было упомянуто в книге CouchDB (http://guide.couchdb.org/draft/performance.html)

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

Это мне очень помогло.

  • Эдмонд -
3 голосов
/ 23 декабря 2010

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

Пара вопросов / комментариев о ваших требованиях:

  1. какой тип настольного компьютераприложение требует 10000 вставок в секунду?
  2. когда вы говорите размер, на что именно вы ссылаетесь?

Возможно, вы захотите взглянуть на:

  • Redis
  • RavenDB

Также проверьте некоторые другие NoSQL-решения, перечисленные в http://nosql.mypopescu.com, на соответствие требованиям вашего приложения.

...