2011-03-07 3 views
0

궁금한 점이 있었지만 Ruby로 작성된 NoSQL DBMS가 있습니까?NoSQL DB가 Ruby로 작성 되었습니까?

그리고 그렇지 않다면 루비에서 만드는 것이 현명하지 않습니까?

+0

MongoDB btw에는 루비 바인딩이 있습니다. – YOU

답변

4

궁금한 점은 없지만 Ruby로 작성된 NoSQL DBMS는 무엇입니까? 2007 년

, Anthony EdenRDDB하는 CouchDB를 영감 문서 지향 데이터베이스와 주변했다. 그는 계속 자신의 GitHub 계정에 a copy of the code을 유지합니다.

동시에 또는 그 주변에서 누군가 다른 사람이 Ruby에서 데이터베이스를 가지고 놀고 있었다는 것을 모호하게 기억합니다. RDDB에 영감을 얻었거나 RDDB에 대한 반응이라고 생각합니다.

는 마지막으로, 또는 데이터베이스로 간주하지 않을 수도 있습니다 당신의 정의   –에 따라하여 다음 stdlib에서 PStore library,   –있다.

그리고 그렇지 않다면 루비에서 만드는 것이 현명하지 않습니까?

루비에서 가장 큰 문제는 동시성 프리미티브입니다. 스레드 및 잠금은 이므로 1960입니다. 여러 개의 동시 사용자를 지원하려는 경우 분명히 동시성이 필요합니다. 내장 된 in-process 데이터베이스를 빌드하려는 경우에는 별다른 우려가 없습니다.

그 외에도 Ruby의 별다른 구현이 없지만 Ruby의 제한이 아니라 이러한 특정 구현의 제한이 있으며 거의 ​​모든 다른 프로그래밍 언어에도 적용됩니다. Rubinius (특히 현재 개발 트렁크, Ruby 1.9 호환성을 추가하고 Global Interpreter Lock을 제거함)와 JRuby는 모두 훌륭한 선택입니다.

추가 보너스로 Rubinius에는 동시성을위한 내장 된 액터 라이브러리가 있으며 JRuby는 예를 들어 Clojure의 동시성 라이브러리 또는 Akka 액터 라이브러리.

성능 문제는별로 중요하지 않습니다. Rubinius의 Hash 클래스는 100 % 순수 Ruby로 작성되었으며 YARV의 Hash 클래스와 비교하여 100 % 손으로 최적화 된 C로 작성되었습니다.이것은 적어도 신중하게 작성된 Ruby 코드가 C만큼 빠를 수 있음을 보여줍니다. 특히 데이터베이스가 장기 실행되는 경향이 있고 따라서 Rubinius 또는 JRuby (및 후자의 경우 특히 JVM의) 동적 최적화 프로그램 (C 컴파일러는 일반적으로 을 가지고 있지 않다.을 가지고있다) 정말로 얻을 수있다.

+0

정확히 내가 무엇을 찾고 있었는지; 내 질문에 대한 대답. – gkbii

0

루비

C/C++/얼랑 DBMS

모든 유형의 너무 느린 일반적으로 최선의 선택이다.

0

일반적으로 DBMS는 모든 기능을 갖추고 있고 선택한 응용 프로그래밍 언어에서 사용할 수있는 한 어떤 프로그래밍 언어를 구현했는지 신경 쓰지 않아야합니다.

여기 실제 질문은 루비로 작성되었거나 루비에서 사용할 수 있어야한다는 것입니다.

첫 번째 경우에는 DBMS 을 기본으로으로 작성했습니다 (이 진술의 수정은 인정됩니다).

두 번째 경우에는 알맞은 DBMS 관계형에 대한 Ruby 바인딩/래퍼를 찾을 수 있어야합니다.

+0

고란과 동의하십시오. 대부분의 데이터베이스는 루비 바인딩/래퍼를 사용할 수 있습니다. SQL/Relational 데이터베이스를위한 Ruby 바인딩은 여러 가지가 있습니다. 사용 가능한 비 SQL 바인딩도 있습니다. 예를 들어 Berkeley DB의 키/값 쌍 API에 대한 몇 가지 루비 바인딩이 있습니다. 최근 하나는 여기에서 찾을 수 있습니다 : https://github.com/mattbauer/bdb – dsegleau

관련 문제