카우치베이스 서버

Couchbase Server
카우치베이스 서버
CouchbaseLogo.svg
Couchbase Server Screenshot
개발자카우치베이스, 주식회사
초기 릴리즈2010년 8월(2010-08)
안정적 해제
7.0.2 / 2021년 10월 15일(2021-10-15)
리포지토리
기록 위치C++, Erlang, C,[1] Go, Java
유형다중 모델 데이터베이스, 분산 키 값 데이터베이스, 문서 지향 데이터베이스, JSON 데이터베이스
면허증아파치 라이선스 2.0, 프리미엄
웹사이트couchbase.com
AWS 서밋의 카우치베이스

원래 Membase로 알려진 Couchbase Server오픈소스 분산형(공유 없음 아키텍처) 다중 모델 NoSQL 문서 지향 데이터베이스 소프트웨어 패키지로 인터랙티브 애플리케이션에 최적화되어 있다.이러한 애플리케이션은 데이터를 생성, 저장, 검색, 집계, 조작 및 표시함으로써 많은 동시 사용자에게 서비스를 제공할 수 있다.이러한 종류의 애플리케이션 요구를 지원하기 위해, Couchbase Server는 낮은 지연 시간과 높은 지속적 처리량으로 쉽게 스케일링할 수 있는 키 값 또는 JSON 문서 액세스를 제공하도록 설계되었다.단일 머신에서 여러 머신에 걸쳐 대규모 배포로 클러스터링되도록 설계되었다.

Couchbase Server는 memcached와의 클라이언트 프로토콜 호환성을 [2]제공했지만 디스크 지속성, 데이터 복제, 라이브 클러스터 재구성, 데이터 파티셔닝으로 재조정 및 멀티테넌시를 추가했다.

제품 이력

멤브레이스는 멤케이드 프로젝트의 몇몇 리더들에 의해 개발되었으며, 노스스케일이라는 회사를 설립하여 멤케시의 단순성, 속도, 확장성뿐만 아니라 데이터베이스의 스토리지, 지속성, 쿼리 기능까지 갖춘 키밸류 스토어를 개발하였다.원래 멤브레이즈 소스 코드는 노스스케일이 기여했으며, 2010년 6월 membase.org에서 Zynga네이버 코퍼레이션(당시 NHN)을 공동 기획했다.[3]

2011년 2월 8일 멤베이스 프로젝트 설립자들과 멤베이스 주식회사는 관련 프로젝트 합병과 함께 카우치원(CouchDB를 배후로 하는 주체들이 많은 회사)과의 합병을 발표했다.합병된 회사는 Couchbase, Inc.라고 불렸다.2012년 1월, 카우치베이스는 카우치베이스 서버 1.8을 출시했다.2012년 9월, Orbitz는 카우치 베이스를 사용하기 위해 일부 시스템을 변경했다고 말했다.[4]2012년 12월 Couchbase Server 2.0(2011년 7월 발표)이 출시되었으며, 새로운 JSON 문서 스토어, 인덱싱 및 쿼리, 증분 MapReduce데이터 센터복제 등이 포함되었다.[5][6]

건축

모든 Couchbase 노드는 데이터 서비스, 인덱스 서비스, 쿼리 서비스 및 클러스터 관리자 구성요소로 구성된다.4.0 릴리즈부터 3개의 서비스를 배포해 필요할 경우 클러스터의 별도 노드에서 실행할 수 있다.Eric Brewer의 CAP 정리(Couchbase)를 비유하면, Couchbase는 일반적으로 CP형 시스템으로 일관성과 파티션 내성을 제공하거나, 여러 클러스터를 가진 AP 시스템으로 설정할 수 있다.

클러스터 관리자

클러스터 관리자는 Couchbase 클러스터에 있는 모든 서버의 구성과 동작을 감독한다.복제 스트림 관리 및 재균형 작업과 같은 노드 간 동작을 구성하고 감독한다.또한 클러스터에 대한 메트릭 집계 및 컨센서스 기능과 RESTful 클러스터 관리 인터페이스도 제공한다.클러스터 매니저는 Erlang 프로그래밍 언어와 Open Telecom Platform을 사용한다.

복제 및 페일오버

클러스터 노드 내의 데이터 복제는 몇 가지 매개 변수를 사용하여 제어할 수 있다.2012년 12월에는 서로 다른 데이터 센터 의 복제에 대한 지원이 추가되었다.[5]

데이터 관리자

데이터 관리자는 응용프로그램에서 데이터 작업에 대한 응답으로 문서를 저장하고 검색한다.클라이언트를 승인한 후 디스크에 데이터를 비동기식으로 기록한다.버전 1.7 이상에서 애플리케이션은 클라이언트에 대한 쓰기를 승인하기 전에 데이터를 둘 이상의 서버 또는 디스크에 쓰도록 선택적으로 보장할 수 있다.매개변수는 데이터가 지속되는 시점과 메인메모리에서의 최대 메모리 및 디스크로의 마이그레이션 처리 방법에 영향을 미치는 항목 에이지를 정의한다."노드" 또는 "버킷"당 메모리 할당량보다 큰 작업 세트를 지원한다.외부 시스템은 필터링된 데이터 스트림에 가입할 수 있으며, 를 들어 전체 텍스트 검색 색인화, 데이터 분석 또는 아카이빙을 지원할 수 있다.[7]

데이터 형식

문서는 Couchbase Server에서 데이터 조작의 가장 기본적인 단위다.문서는 사전 정의된 스키마가 없는 JSON 문서 형식으로 저장된다.비 JSON 문서도 Couchbase Server(이진, 직렬화된 값, XML 등)에 저장할 수 있음

개체 관리 캐시

Couchbase Server에는 get, set, delete, add, prefend 등 memcached 호환 API를 구현하는 멀티스레드 객체 관리 캐시가 내장되어 있다.

저장엔진

Couchbase Server는 데이터 손상, OOM 킬러 또는 갑작스러운 전력 손실에 면역이 되는 스토리지 설계를 채택하고 있다.데이터는 데이터 파일에 추가 전용 방식으로 기록되므로, 카우치베이스는 업데이트를 위해 대부분 순차적 쓰기를 할 수 있으며, 디스크 I/O에 최적화된 액세스 패턴을 제공할 수 있다.

퍼포먼스

Altoros가 2012년에 수행한 성능 벤치마크는 Couchbase Server를 다른 기술과 비교했다.[8]Cisco Systems는 2012년에 혼합 워크로드에서 Couchbase Server의 대기 시간과 처리량을 측정한 벤치마크를 발표했다.[9]

라이센스 및 지원

Couchbase Server는 Couchbase의 오픈 소스 소프트웨어 기술의 패키지 버전으로, Apache 2.0 라이센스와[10] 상업용 에디션으로 최신 버그 수정 없이 커뮤니티 에디션으로 이용할 수 있다.[11]Couchbase Server 빌드는 Ubuntu, Debian, Red Hat, SUSE, Oracle Linux, Microsoft Windows 및 MacOS 운영 체제에 사용할 수 있다.

Couchbase는 프로그래밍 언어들을 위한 소프트웨어 개발자들의 키트를 지원해왔다.NET, PHP, Ruby, Python, C, Node.js, Java, Go, Scala.

N1QL

SQL이 RDBMS의 데이터를 조작하는 것과 마찬가지로 카우치베이스의 JSON 데이터를 조작하는 데 N1QL(공시 니켈)이라는 쿼리 언어가 사용된다. JSON 데이터에서 동작하기 위해 SELECT, INSERT, UPDATE, DELETE, MERGE 문이 있다.2015년 3월 '문서용 SQL'로 발표됐다.[12]

N1QL 데이터 모델은 중첩된 속성과 도메인 지향 정규화를 지원하는 N1NF(Non-first normal form)이다.또한 N1QL 데이터 모델은 관계 모델의 적절한 상위 집합이며 일반화된다.

{   "email": "testme@example.org",   "친구들": [     {"이름": "릭"},     {"이름": "케이트"}   ] } 
질의와 같은 것
SELECT * FROM `bucket` WHERE email LIKE "%@example.org";
배열 쿼리
SELECT * FROM `bucket` WHERE ANY x IN friends SATISFIES x.name = "cate" END;

카우치베이스 모바일

Couchbase Mobile / Couchbase Lite는 데이터 복제를 제공하는 모바일 데이터베이스다.[13]

Couchbase Lite(원래 TouchDB)는 기본 제공 피어 투 피어 또는 클라이언트-서버 복제 메커니즘이 있는 오프라인 최초 NoSQL 데이터베이스에 대한 네이티브 라이브러리를 제공한다.[14]Sync Gateway는 Couchbase Lite와 Couchbase Server 간의 보안 액세스 및 데이터 동기화를 관리한다.[15]

사용하다

카우치베이스는 고속 데이터 캐시인 멤캐치의 진화로 시작되어, 코드 변경 없이 멤캐치된 애플리케이션에 고가용성을 제공하는 멤캐치의 드롭인 대체품으로 사용할 수 있다.[16]

카우치베이스는 실시간 사용자 활동을 추적하거나 사용자 선호도 스토어 또는 온라인 애플리케이션을 제공하는 등 유연한 데이터 모델, 손쉬운 확장성, 일관된 고성능이 요구되는 애플리케이션을 지원하는 데 사용된다.[17]

데이터를 기기(대개 모바일 기기)에 로컬로 저장하는 카우치베이스 모바일은 기기가 네트워크에 연결되지 않았을 때 동작할 수 있는 '오프라인 우선' 애플리케이션을 만들고 네트워크 연결이 다시 설정되면 카우치베이스 서버와 동기화할 수 있다.[18]

노스웨스턴 대학교의 Catalyst Lab은 Couchbase Mobile을 사용하여 건강한 라이프스타일 연구 프로그램인 Evo 애플리케이션을 지원하는데, 이 프로그램은 참가자들이 식생활의 질, 신체 활동, 스트레스, 수면 등을 향상시키는 데 데이터를 사용한다.[19]

아마데우스Apache Kafka와 함께 Couchbase를 사용하여 항공사 및 기타 여행 파트너를 위한 충성도 프로그램에 대한 데이터를 소비하고 통합하는 "개방적이고 단순하며 민첩한" 전략을 지원한다.파괴적인 여행 이벤트가 높은 가치의 고객을 인식하고 보상할 필요성을 야기할 때 높은 확장성이 필요하다.[20]

2012년부터는 내부 응용을 위한 보안 방어 메커니즘 카운터, 채용자 및 일자리 제품에 대한 백엔드 캐싱LinkedIn의 캐싱 시스템에 역할을 했다.[21]

대안

캐싱을 위해, 카우치베이스는 멤캐치, 레디스와 경쟁한다.문서 데이터베이스의 경우, Couchbase는 다른 문서 지향 데이터베이스 시스템과 경쟁한다.일반적으로 MongoDB, Amazon DynamoDB, Oracle RDBMS, DataStax, Google Bigtable, MariaDB, IBM Cloudant, Redis Enterprise, SingleStore, MarkLogic과 비교된다.[22][23]

참고 문헌 목록

  • Brown, MC (June 22, 2012). Getting Started with Couchbase Server (1st ed.). O'Reilly Media. p. 88. ISBN 978-1449331061.
  • Ostrovsky, David; Haji, Mohammed; Rodenski, Yaniv (November 26, 2015), Pro Couchbase Server 2nd ed. (2nd ed.), Apress, p. 349, ISBN 978-1484211861
  • Potsangbam, Henry (November 23, 2015), Learning Couchbase (1st ed.), Packt, p. 202, ISBN 978-1785288593
  • Vohra, Deepak (August 3, 2015), Pro Couchbase Development: A NoSQL Platform for the Enterprise (1st ed.), Apress, p. 331, ISBN 978-1484214350
  • Sangudi, Gerald; et al. (October 20, 2017), N1QL: A Practical Guide (2nd Edition) (2nd ed.), Self-published, p. 423
  • Vemulapalli, Sitaram; et all.(2018년 5월 10일), Couchbase 5.5의 N1QL 기능 안내서: Special Edition, Self-published, 페이지 112
  • Chamberlin, Don; (2018년 10월 19일) SQL++ 사용자 대상: 자습서, Couchbase

참조

  1. ^ Damien Katz (January 8, 2013). "The Unreasonable Effectiveness of C". Retrieved September 30, 2016.
  2. ^ "NewProtocols - memcached - Klingon - Memcached - Google Project Hosting". 2011-08-22. Retrieved 2013-06-04.
  3. ^ Shashank Tiwari (31 August 2011). Professional NoSQL. John Wiley & Sons. pp. 15–16. ISBN 9781118167809.
  4. ^ "Balancing Oracle and open source at Orbitz". GigaOM. September 21, 2012. Retrieved September 19, 2016.
  5. ^ a b Andrew Brust (December 12, 2012). "Couchbase 2.0 released; implements JSON document store". ZDNet.
  6. ^ Derrick Harris (July 29, 2011). "Couchbase goes 2.0, pushes SQL for NoSQL". GigaOm. Retrieved September 19, 2016.
  7. ^ Trond Norbye (March 15, 2010). "Want to know what your memcached servers are doing? Tap them". Couchbase blog.
  8. ^ Frank Weigel (October 30, 2012). "Benchmarking Couchbase". Couchbase. Retrieved September 30, 2016.
  9. ^ "Cisco and Solarflare Achieve Dramatic Latency Reduction for Interactive Web Applications with Couchbase, a NoSQL Database" (PDF). Cisco Systems. June 18, 2012. Archived from the original (PDF) on August 13, 2012. Retrieved October 7, 2016.
  10. ^ "Couchbase Open Source Projects". Couchbase web site. Retrieved October 7, 2016.
  11. ^ "Couchbase Server Editions". Couchbase.
  12. ^ Andy Slater (March 24, 2015). "Ssssh! don't tell anyone but Couchbase is a serious contender: Couchbase Live Europe 2015". Retrieved February 13, 2018.
  13. ^ "DB-Engines: Couchbase including Mobile". DB-Engines. Archived from the original on 2013-07-29. Retrieved 29 June 2021.
  14. ^ "Lite Couchbase". www.couchbase.com. Retrieved 11 May 2020.
  15. ^ "Sync Gateway Couchbase". DB-Engines. Archived from the original on 2013-07-29. Retrieved 29 June 2021.
  16. ^ Jaquier, Yannick (2016-09-27). "Couchbase server as a Memcached cluster (part 2)". IT World. Retrieved 2022-02-09.
  17. ^ "Introduction to Couchbase - NoSQL Document Database". Today Software Magazine. Retrieved 2022-02-09.
  18. ^ "Couchbase Mobile". DEV Community. Retrieved 2022-02-09.
  19. ^ "How Northwestern's Catalyst Lab scales healthy behavior program with Couchbase". VentureBeat. 2021-12-31. Retrieved 2022-02-09.
  20. ^ "Amadeus Loyalty wins the Couchbase Community Award under the Cloud Computing Category". Amadeus_IT_Group. January 20, 2022.
  21. ^ Michael Kehoe (December 6, 2017). "Couchbase Ecosystem at LinkedIn". engineering.linkedin.com. Retrieved 2022-02-09.
  22. ^ Inc, Gartner. "Top Couchbase Competitors and Alternatives - Gartner 2022 - Cloud Database Management Systems". Gartner. Retrieved 2022-02-09.
  23. ^ "MongoDB to Couchbase: An Introduction to Developers and Experts - DZone Database". dzone.com. Retrieved 2022-02-09.

외부 링크