CouchDB와 Couchbase의 차이점


270

사이에 근본적인 차이가 CouchDB를 하고 카우치베이스 주식회사는 .


45
이름이 혼란 스러우신가요? 나도 그렇기 때문에이 최상위 답변 의 명명 정보를 명명 기록시각화 로 리믹스하는 것으로 시작했습니다 .이 답변을 이해하는 데 도움이됩니다.
Jeroen

@Jeroen 멋진 시각화입니다. 그 최고 답변으로 편집해야합니까?
17:29에

@shoover Thx, 도움이되어 기뻤습니다. 정확한지 판단 할 수는 없지만 rsp (해답의 주요 저자) / 커뮤니티가 가치가 있다고 생각하면 SO 라이센스에 자유롭게 포함 시키십시오.
Jeroen

답변:


555

CouchDB와 Couchbase Server 사이에는 지적해야 할 몇 가지 근본적인 차이점이 있다고 생각합니다.

사람들은 (참조 모든 곳에서 거의 설명되어 있기 때문에 나는 카우치베이스 서버에 CouchDB를에서 전환의 이점에 대해 쓰지 않습니다 CouchDB를의 미래 데미안 카츠 또는하여 아파치 CouchDB를 대 카우치베이스 주식회사 카우치베이스 주식회사에 의해 참조). 대신 Couchbase 서버에서 찾을 수없는 CouchDB의 기능 을 열거하려고합니다 .

CouchDB 및 Couchbase와 관련된 모든 이름은 실제로 혼란 스러울 수 있으므로 가장 중요한 이름에 대한 간단한 설명으로 시작하도록이 답변을 업데이트했습니다.

이름과 혼란

CouchDB, CouchIO, CouchOne, Couchbase, Couchbase Server, Couchbase Mobile, Couchbase Lite, CouchApps, BigCouch, Touchbase, Membase, Memcached, MemcacheDB 등이 있습니다.

먼저, 전 IBM 개발자 인 Damien Katz가 만든 데이터베이스 인 CouchDB가있었습니다. 공식 프로젝트 이름은 Apache 프로젝트가 된 후 Apache CouchDB로 변경되었습니다.

CouchIO라는 회사는 Apache CouchDB에서 작동하도록 설립되었으며 나중에 이름을 CouchOne으로 변경했습니다 ( "이름"으로 회사 이름을 의미 함-데이터베이스 이름이 아님).

CouchOne (이전의 CouchIO)은 Membase (이전 NorthScale)와 합병하여 Couchbase라는 새로운 회사를 설립했습니다. Membase (회사)는 Membase (동일한 이름의 제품)를 개발했습니다. Membase는 Memcached 프로젝트의 여러 리더에 의해 만들어졌으며 Memcached 프로토콜을 사용했습니다. CouchOne과 Membase의 합병 후 Couchbase는 Membase 소프트웨어 개발을 계속하고 나중에 이름을 Couchbase Server로 변경했습니다.

오늘날 대부분의 사람들은 Couchbase 서버가 CouchDB의 새로운 버전이라고 생각하지만 실제로는 Membase의 새로운 버전이라고 생각합니다. 여전히 CouchDB의 RESTful API가 아닌 Memcached 프로토콜을 사용합니다. 한편 CouchDB는 여전히 CouchDB이며 Apache 프로젝트로 적극적으로 유지 관리되고 향상됩니다.

이제 관련 차이점이 있습니다.

라이센싱

Couchbase 서버는 전적으로 오픈 소스 / 무료 소프트웨어 가 아닙니다 . 두 가지 버전이 있습니다 (무료하지만 최신 버그 수정) 커뮤니티 에디션과 엔터프라이즈 에디션 (그리고 "라이센스 사용자의 시설에서 정규 업무 시간 동안 실시된다"고 카우치베이스 주식회사 Inc.의 사용에 대한 제한, 비밀 유지 조항, 감사가 다른 용어 전형 많은 사람들이 용납 할 수없는 독점 소프트웨어).

CouchDB는 Apache Software Foundation의 오픈 소스 / 무료 소프트웨어 (문자열이 부착되지 않은) 프로젝트이며 Apache License, Version 2.0 (DFSG 호환, FSF 승인, OSI 승인, GPL 호환, 비 카피 레프트)에 따라 릴리스됩니다. , 상업 친화적).

철학

필자가 직접 지적한 것은 본 적이 없지만 실제로는 두 데이터베이스간에 가장 중요한 차이점 일 수 있습니다. 분산 컴퓨팅 모델의 기본 철학에 관한 것이지 특정 기능, API 또는 라이센싱에 대한 것이 아니기 때문입니다. CouchDB와 Couchbase 서버는 분산 시스템과 데이터베이스를 구축한다는 철학이 완전히 다릅니다.

CAP 정리 에 따르면 분산 데이터베이스가 일관성, 가용성 및 파티션 허용 오차를 동시에 제공하는 것은 불가능합니다.

CouchDBAP 유형 시스템입니다 ( 가용성파티션 공차 제공 ).

Couchbase 서버CP 유형 시스템 ( Wikipedia 에 따름 ) 또는 CA 유형 시스템 ( Couchbase 기술 업데이트따름 )입니다 . 의견을주세요.

풍모

이것이 내가 Couchbase 서버에서 지원하지 않는 CouchDB 기능 목록 인 것으로 밝혀졌습니다.

  • RESTful API 없음 (CRUD 조작이 아닌보기 전용)
  • _changes 피드 없음
  • 피어 - 투 - 피어 복제
  • 소파 앱 없음
  • 이불 없음 (사용 가능한 다른 관리 인터페이스가 있음)
  • 문서 ID가 없습니다
  • 데이터베이스 개념이 없음 (버킷 만 있음)
  • CouchDB 데이터베이스와 Couchbase 서버간에 복제가 없음
  • 명시 적 첨부 파일 없음 (추가 파일을 새 키 / 값 쌍으로 저장해야 함)
  • 모든 것을위한 HTTP API 없음 (Couchbase 서버 SDK 또는 Couchbase Develop 의 실험용 클라이언트 라이브러리 중 하나를 사용해야 wget 실험 없음 )
  • CouchDB API 없음 ( 대신 Memcached API 사용)
  • 브라우저에서 모든 작업을 수행 할 수는 없습니다 (서버 측 응용 프로그램을 작성해야 함)
  • 웹 응용 프로그램을위한 2 계층 아키텍처는 불가능합니다 (관계형 데이터베이스와 같이 브라우저와 데이터베이스 사이에 위치하도록 서버 측 응용 프로그램을 작성해야 함)
  • 최종 일관성 없음
  • 전적으로 오픈 소스 / 자유 소프트웨어
  • CouchDB의 대체 대체품이 아님 (대신 Memcached의 대체 대체품으로 간주 됨)

CouchDB의 이러한 기능은 당신에게 중요하지 않을 수도 있습니다. 따라서 부족한 것이 불리한 지 여부는 엄격히 주관적입니다. 현재 CouchDB 배포에서 이러한 기능에 대한 의존성.

예를 들어 CouchDB 변경 피드를 보고 CouchDB에 관심이 있다면 가 Mikeal Rogers의 NodeCamp 대화를 보거나 J. Chris Anderson의 훌륭한 CouchApp 자습서 중 하나를 있다면 Couchbase 서버로 전환하려면 Couchbase 서버로 전환하려면 그들이 말한 모든 것을 잊어 버려야합니다.

따라서 Couchbase 서버는 Memcached 및 Membase의 진화 (CouchDB의 진화가 아님)처럼 보이고 현재 Memchached 또는 Membase를 사용하는 경우 훌륭한 제품으로 보입니다. 가장 기본적인 방식으로 CouchDB를 사용하는 경우 동일한 용도로 Couchbase 서버를 사용하는 것이 좋습니다. 라이센스 제한에 신경 쓰지 않으면 성능이 향상되거나 그렇지 않을 수 있습니다. 그러나 실제로 변경 피드, CouchApps, 2 계층 아키텍처, 피어 투 피어 복제 등과 같은 CouchDB 고유의 기능을 사용하는 경우 해당 기능을 잊거나 CouchDB를 유지할 수 있습니다. 어쨌든 전환에 대해 생각하기 전에 CouchDB 사용자를위한 Couchbase로 마이그레이션 학습서 를 읽고 이해해야합니다 .

사람들은 종종 CouchDB가 Couchbase 서버에 의해 사용되지 않거나 Couchbase의 오래된 레거시 버전 이라는 잘못된 인상을받습니다 ( "CouchDB의 미래는 무엇입니까? Couchbase입니다." 와 같은 내용을 읽은 후 ). 한편 CouchDB 는 적극적으로 유지 관리되는 오픈 소스 프로젝트이며, Couchbase 서버는 완전히 별개의 프로젝트입니다 (새로운 프로젝트이지만 CouchDB의 최신 버전이 아니며 호환되지 않습니다) .CouchApps를 만드는 새로운 도구조차도 계속 유지되므로 CouchDB는 곧 개발되지 않을 것 입니다 (예 : Kanso 프로젝트 참조 ).

나는 그것이 혼란을 분명히하기를 바랍니다. 여기에 문제가 있으면 저를 정정하십시오.

최신 정보:

Couchbase Server는 실제로 Membase Server의 새로운 이름입니다 (Membase Server는 버전 1.8 부근의 Couchbase Server로 이름이 바)). 참조 검토에서 카우치베이스 주식회사 2011 년도 :

불행히도, 우리는 많은 잠재적 사용자들로부터 혼란을 겪었습니다. Membase 서버 및 새로운 모바일 제품 외에도 Apache CouchDB의 패키지 "배포"인 Couchbase Single Server도 제공했습니다. 또한 CouchDB 기술을 Membase 서버에 통합 한 Couchbase Server 2.0의 개발자 미리보기를 공개하기 시작했지만이 제품은 Couchbase 단일 서버 (또는 CouchDB)와 호환되지 않았습니다. [...] Membase 서버는 1 월 다음 릴리스에서 Couchbase Server 1.8로 이름이 변경 될 것입니다. –“이름”혼란을 완화하는 간단한 단계입니다. Couchbase Server 2.0 릴리스 (현재 Developer Preview 3)는 처음부터 계획 한대로 인덱스 및 쿼리 기능을 추가합니다. Couchbase Server 2.0은 CouchDB 프로젝트의 실질적인 기술을 통합하지만,CouchDB와 호환되지 않으며“CouchDB의 버전”으로 간주되어서는 안됩니다. [강조 추가]

또한보십시오:


69
브라보. 실제로 이러한 측면을 설명하는 것을 보게되어 기쁩니다 (나열한 기존의 모든 비교에서 눈에 띄는 Couchbase 바이어스가 있음).
스튜어트 P. 벤틀리

6
@WalterTross : 실제로 CouchDB API를 사용하지 않고 RESTful하지 않고 HTTP를 사용하지 않는 것은 정확히 같은 것이 아닙니다. 예를 들어 Riak은 CouchDB API를 사용하지 않지만 여전히 RESTful API를 사용합니다. 또한 REST는 사용하지 않지만 여전히 HTTP (예 : SOAP 또는 기타 웹 서비스)를 사용합니다. 여기서 나는 Couchbase 서버가 CouchDB API를 사용하지 않을뿐만 아니라 API가 RESTful하지 않으며 HTTP를 전혀 사용하지 않는다는 것을 분명히하고 싶었습니다.
rsp

24
나는 이것이 대답이라고 생각합니다. 감사.
skift

10
"CP vs CA"질문과 관련하여, 간단히 말해서, 단일 머신에 대해 이야기하지 않으면 "CA"시스템을 가질 수 없습니다. 네트워크에는 항상 파티션이 있으며 ( aphyr.com/posts/288-the-network-is-reliable ), 분산 시스템은 주어진 시간에 상관없이 사용 가능 또는 일관성을 유지해야합니다. 파티션 (그러나 둘다는 아님) 따라서 유도 Couchbase는 CP입니다. 실제로 이것은 vBuckets의 복제 전략에 따라 a) 1 : n 마스터 / 슬레이브 또는 b) 1..n 체인 기반이며 Dynamo (AP)를 모델로 한 시스템입니다.
Greg Burd

9
오늘 현재 Couchbase SyncGateway라는이 기사에 추가 된 중요한 내용이 있습니다. 이는 본질적으로 API 호환 수준에서 CouchDB 복제를 Couchbase로 가져 오는 부분이므로 SyncGateway를 통해 CouchDB를 Couchbase와 함께 복제 할 수 있습니다. Couchbase Lite의 관점에서 볼 때 CouchDB와의 동기화에서 SyncGateway와의 동기화로 원활하게 전환 할 수있는 Couchbase Lite의 관점에서 큰 문제입니다.
Leonid

39

그것들은 다르지만 비슷한 소프트웨어 조각입니다. 상단 답변 의 내용을 "차이"와 일반적인 것들을 명확히하는 데 도움이되는 그림으로 리믹스했습니다 .

위에 링크 된 다른 답변은이 이미지에 대한 자세한 설명입니다.

Matt Ingenthron의 의견은 다음과 같이 덧붙입니다.

상황 / 수정을 추가하려면 NorthScale 설립자는 Steve Yen과 Dustin Sallings입니다. 창립 직후에 합류했습니다. 또한 Damien은 나중에 Couchbase에 합류하지 않았으며 합병 전에 CouchIO / Couch One의 일원이었습니다. 재미 있고 역사적인 출처를 인용 : https://youtube.com/watch?v=aZ_JOnU8tkI


4
그것은 매우 유용한 정보 그래픽입니다!
Zach Smith

3
상황 / 수정을 추가하려면 NorthScale 설립자는 Steve Yen과 Dustin Sallings입니다. 창립 직후에 합류했습니다. 또한 Damien은 나중에 Couchbase에 합류하지 않았으며 합병 전에 CouchIO / Couch One의 일원이었습니다. 재미를 인용, 역사적 소스 : youtube.com/watch?v=aZ_JOnU8tkI
매트 Ingenthron

1
업데이트를위한 @MattIngenthron Thx. 나는 순서도에 따라 순서도를 조정할 수있는 시간을 찾으면 대답에 당신의 말을 전했습니다.
Jeroen

1

CouchBase는 CouchDB의 '엔터프라이즈'대안으로 인식되는 것 같습니다. 어떤 방식 으로든 사실 인 것 같습니다. CouchDB와 비교하여 레코드 (문서) 및 'out-of-box'REST 엔드 포인트에 파일을 첨부 할 수있는 기능 외에도 CouchBase에는 언어와 같은 SQL, 즉 N1QL (때로는 니켈)이 있습니다. 이것이 바로 'NoSQL'이라는 용어를 사용하는 것을 좋아하지 않거나 권장하지 않는 이유 중 하나입니다. 저는 개인적으로 '비 관계형'이라는 용어를 좋아합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.