NoSQL БД написана на Ruby? - PullRequest
       5

NoSQL БД написана на Ruby?

0 голосов
/ 07 марта 2011

Было любопытно, но написана ли какая-либо СУБД NoSQL на Ruby?

А если нет, то было бы неразумно создавать такой в ​​Ruby?

Ответы [ 3 ]

4 голосов
/ 07 марта 2011

Интересно, а написана ли какая-либо СУБД NoSQL на Ruby?

В 2007 году Энтони Иден играл с RDDB , базой документов, ориентированной на CouchDB. Он все еще хранит копию кода в своей учетной записи GitHub.

Я смутно помню, что в то же время или около того, кто-то еще также играл с базой данных в Ruby. Я думаю, что это было или вдохновлено или реакцией на RDDB.

И последнее, но не менее важное: в stdlib есть библиотека PStore , которая & ndash; в зависимости от вашего определения & ndash; может считаться или не считаться базой данных.

А если нет, то было бы неразумно создавать такой в ​​Ruby?

Самая большая проблема, которую я вижу в Ruby, - это примитивы параллелизма. Резьбы и замки , поэтому 1960-х годов. Если вы хотите поддерживать несколько одновременно работающих пользователей, то вам, очевидно, нужен параллелизм, хотя если вы хотите создать встроенную базу данных в процессе, то это гораздо менее важно.

Кроме этого, есть некоторые не столь звездные реализации Ruby, но это не ограничение Ruby, а этих конкретных реализаций, и оно применимо практически ко всем другим языкам программирования. Rubinius (особенно текущая магистраль разработки, которая добавляет совместимость с Ruby 1.9 и удаляет глобальную блокировку интерпретатора) и JRuby - оба были бы хорошим выбором.

В качестве дополнительного бонуса Rubinius поставляется со встроенной библиотекой актеров для параллелизма, а JRuby дает вам доступ, например, к. Библиотеки параллелизма Clojure или библиотека актеров Akka.

Производительность не особо беспокоит, я думаю. Класс Hash Рубиниуса, который написан на 100% чистом языке Ruby, работает сравнимо с классом Hash YARV, который написан на 100% оптимизированном вручную языке C. Это показывает, что код Ruby, по крайней мере, когда он тщательно написан, может быть таким же быстрым, как C, особенно потому, что базы данных имеют тенденцию работать долго и, следовательно, динамические оптимизаторы Rubinius или JRuby (и в последнем случае, в частности, также JVM) (которые компиляторы C обычно делают , а не ) может действительно добраться до работы.

0 голосов
/ 07 марта 2011

Как правило, вам все равно, на каком языке программирования была реализована СУБД, поскольку она обладает всеми функциями и доступна для использования на выбранном вами языке программирования приложений.

Итак, реальный вопрос здесь в том, нужен ли вам один, написанный на Ruby или доступный для использования в Ruby.

В первом случае, я сомневаюсь, что вы найдете СУБД изначально , написанную на Ruby (любое исправление этого утверждения приветствуется).

Во втором случае вы должны быть в состоянии найти привязки / оболочки Ruby для любой приличной реляционной СУБД или нет.

0 голосов
/ 07 марта 2011

Ruby слишком медленный для любого типа СУБД.

c / c ++ / erlang - лучший выбор.

...