2011-03-06 6 views
4

오픈 소스 제품을 개발 중이며 임베디드 dbms가 필요합니다. 당신은 임베디드 nosql 오픈 소스 자바 데이터베이스

  • 이 10기가바이트 각
  • (LGPL이 아닌 GPL)를 내장 친화적 라이센스를 가지고 이상의 개체를 처리 할 수 ​​... 임베디드 오픈 소스 데이터베이스를 추천 할 수 있습니다.
  • 순수 Java인가
  • (선호) nosql입니다. SQL은 작동하지만 나는 MongoDB를, 같은 문서의 DBMS의 일부를 통해 검토 한 NoSQL에

선호하지만 그들은 4 개 또는 16 메가 바이트 문서로 제한 보일 수 있습니다.

버클리 DB는 매력적이지만 GPL 라이센스와 비슷합니다.

Sqlite3은 매력적입니다. 좋은 라이센스이고, 을 원하는 크기로 컴파일 할 수 있습니다. 그러나 그것은 Java가 아닙니다. JDBC 드라이버가 존재하지만 순수한 Java 시스템이 필요하다는 것을 알고 있습니다.

제안 사항?

감사

스티브

답변

6

이 오래된 질문입니다 만, 나는 최근에이로 찾아 봤는데 다음과 같은 (이 질문 요청 후 기록 된 적어도 두)를 가로 질러왔다. 나는 이들 중 어떤 것이 매우 큰 객체를 다루는 지 잘 모르겠다 - 그리고 10GB에서 몇 가지 심각한 테스트를 해봐야 할 것이다. 데이터베이스 개발자들이 자신의 제품 (단지 추측)을 염두에두고 그 크기의 객체를 가질 것이라고 예상하기 때문이다. 데이터베이스의 파일 위치에 대한 참조만으로 디스크에 직접 저장하는 것이 좋습니다.

(아래의 의견은 모두 매우 피상적이지만, 아직까지 본인을 본적이 없다).


OrientDB은 내가 찾은 세의 가장 성숙한 것 같습니다. 이것은 문서 및/또는 그래프 데이터베이스 인 것으로 보입니다. B + 및 Red Black 트리의 조합 인 "RB + Tree"데이터 구조를 사용하여 매우 빠르다고 주장합니다. 그것은 외부 의존성이없는 초고속, 경량이라고 주장합니다. 지난 며칠 동안 많은 커밋이 있었지만이를 개발하는 적극적인 커뮤니티가있는 것으로 보입니다. 또한 TinkerPop 그래프 데이터베이스 표준과 호환되며 다른 기능 레이어 (예 : Gremlin 그래프 쿼리 언어)를 추가합니다. 그것은 ACID과 호환되며 REST 및 기타 외부 API가 있으며 심지어 웹 기반 관리 응용 프로그램 (임베디드 DB와 함께 배포 될 수도 있지만 확실하지는 않습니다)이 있습니다.

다음 두 가지가 N (ot) O (nly) SQL 세계의 간단한 키 - 값 저장소 캠프에 더 많이 포함됩니다.

JDBM3은 매우 작은 데이터 저장소로, 메모리 맵 파일을 통해 디스크에 기록되는 해시 맵, 트리 맵, 트리 세트 및 링크 된 목록을 가지고 있습니다. 그것은 매우 가볍고 빠르며, 완전히 거래되고 적극적으로 개발되고 있다고 주장합니다.

HawtDB은 매우 간단하고 빠른 것처럼 보입니다. BTree 또는 Hash 기반 색인은 메모리 매핑 파일이있는 디스크에 유지됩니다. 그것은 (선택적으로) 완전히 트랜잭션입니다.지난 7 개월 동안 (2012 년 3 월까지) 커밋이 없었으며 메일 링리스트에는 많은 활동이 없었습니다. 그것은 좋은 도서관이 아니라 말할 가치가 있다고 말하는 것이 아닙니다.

JDBM3 및 HawtDB는 매우 단순하므로 멋진 GUI를 얻지 못할 것입니다. 그러나 나는 그들이 속도와 단순함 모두에 대해 매우 매력적으로 보인다고 생각합니다.


귀하의 요구 사항을 모두 충족하는 것으로 나타났습니다. 또한, Neo4J는 훌륭합니다. 그래프 데이터베이스는 이제 꽤 성숙되었고 임베디드 모드에서 잘 작동합니다. 그것은 GPL/AGPL는하지만, 라이센스, 그래서 당신이 너무 소스에게 코드를 열 수 있습니다하지 않는 한, 유료 허가서가 필요할 수 있습니다 : http://neotechnology.com/products/price-list/

물론, 당신은 또한 H2 SQL database 하나의 큰 테이블없이 인덱스를 사용할 수 있습니다!

+0

OrientDB를 문서 DB로 사용하려고 시도했습니다. 문서가 오래된 것입니다. 거의 모든 예제에서 deprecated 클래스를 사용합니다 ... 최신 버전의 javadoc을 읽는 것은 거의 도움이되지 않습니다 ... 나는 그것을 시험해보기를 고대하고 있었지만,이 초조 한 시작 이후 나는 그렇지 않습니다. 확실히 더 좋은 선택입니다. – Renato

관련 문제