카우치DB

아파치 카우치DB(Apache CouchDB)는 스케일러블 아키텍처를 쉽게 이용하고 보유하는데 초점을 둔 오픈 소스 데이터베이스 소프트웨어이다. 도큐먼트 지향 NoSQL 데이터베이스 구조를 갖추고 있으며 얼랭으로 구현되어 있다. JSON을 사용하여 데이터를 저장하고, 자바스크립트를 쿼리 언어로 사용(맵리듀스 사용)하며 API를 위해 HTTP를 사용한다.

카우치DB는 2005년에 첫 출시되었으며 나중에 2008년에 아파치 소프트웨어 재단 프로젝트로 되었다.

관계형 데이터베이스과는 달리 카우치DB 데이터베이스는 테이블에 데이터와 관계를 저장하지 않는다. 그 대신 각 데이터베이스는 독립된 도큐먼트들의 모음집이 된다. 각 도큐먼트는 자신만의 데이터와 스스로 포함하는 스키마를 정비한다. 애플리케이션은 여러 개의 데이터베이스, 이를테면 사용자 휴대전화에 저장된 것과 서버에 저장된 것에 접근할 수 있다. 도큐먼트 메타데이터는 리비전 정보를 포함하고 있어서 데이터베이스의 접속이 끊긴 동안 발생할 수 있는 차이를 병합하는 것이 가능하다.

카우치DB는 다중 버전 동시성 제어(MVCC)의 형태를 구현하므로 쓰기 중에 데이터베이스 파일을 잠그지 않는다. 충돌은 애플리케이션이 해결하도록 내버려둔다. 충돌을 해결하는 것은 일반적으로 데이터를 처음에 도큐먼트 중 하나로 병합하여 오래된 것을 삭제하는 것을 수반한다.

그 밖의 기능들로는 결과 무결성을 포함한 도큐먼트 수준의 ACID 시맨틱, (증강) 맵리듀스, (증강) 복제를 포함한다. 카우치DB의 독특한 기능 중 하나는 멀티 마스터 복제(multi-master replication)이며 여러 머신들로 하여금 스케일할 수 있게 함으로써 고성능 시스템을 구축할 수 있게 한다. Fauxton(과거 이름은 Futon)라는 이름의 내장된 웹 애플리케이션은 관리를 돕는다.

같이 보기 
 카우치베이스 서버

각주

참고 문헌

외부 링크 
 
 CouchDB: The Definitive Guide
 Complete HTTP API Reference
 Simple PHP5 library to communicate with CouchDB
 Asynchronous CouchDB client for Java
 Asynchronous CouchDB client for Scala
 
 
 

아파치 소프트웨어 재단 프로젝트
크로스 플랫폼 소프트웨어
분산 컴퓨팅 구조
NoSQL
유닉스 네트워크 관련 소프트웨어
자유 데이터베이스 관리 시스템
문서 지향 데이터베이스
얼랭으로 작성된 자유 소프트웨어
얼랭