원저자 | Damien Katz, Jan Lehnardt, Noah Slater, Christopher Lenz, J. Chris Anderson, Paul Davis, Adam Kocoloski, Jason Davies, Benoit Chesneau, Filipe Manana, Robert Newson |
---|---|
개발자 | 아파치 소프트웨어 재단 |
발표일 | 2005 |
안정화 버전 | 3.4.2[1]
/ 2024년 10월 20일 (18일 전) |
저장소 | github |
프로그래밍 언어 | 얼랭 |
운영 체제 | 크로스 플랫폼 |
종류 | 도큐먼트 지향 데이터베이스 |
라이선스 | 아파치 라이선스 2.0 |
상태 | 개발 중 |
웹사이트 | couchdb |
아파치 카우치DB(Apache CouchDB)는 스케일러블 아키텍처를 쉽게 이용하고 보유하는데 초점을 둔 오픈 소스 데이터베이스 소프트웨어이다. 도큐먼트 지향 NoSQL 데이터베이스 구조를 갖추고 있으며 얼랭으로 구현되어 있다. JSON을 사용하여 데이터를 저장하고, 자바스크립트를 쿼리 언어로 사용(맵리듀스 사용)하며 API를 위해 HTTP를 사용한다.[2]
카우치DB는 2005년에 첫 출시되었으며 나중에 2008년에 아파치 소프트웨어 재단 프로젝트로 되었다.
관계형 데이터베이스과는 달리 카우치DB 데이터베이스는 테이블에 데이터와 관계를 저장하지 않는다. 그 대신 각 데이터베이스는 독립된 도큐먼트들의 모음집이 된다. 각 도큐먼트는 자신만의 데이터와 스스로 포함하는 스키마를 정비한다. 애플리케이션은 여러 개의 데이터베이스, 이를테면 사용자 휴대전화에 저장된 것과 서버에 저장된 것에 접근할 수 있다. 도큐먼트 메타데이터는 리비전 정보를 포함하고 있어서 데이터베이스의 접속이 끊긴 동안 발생할 수 있는 차이를 병합하는 것이 가능하다.
카우치DB는 다중 버전 동시성 제어(MVCC)의 형태를 구현하므로 쓰기 중에 데이터베이스 파일을 잠그지 않는다. 충돌은 애플리케이션이 해결하도록 내버려둔다. 충돌을 해결하는 것은 일반적으로 데이터를 처음에 도큐먼트 중 하나로 병합하여 오래된 것을 삭제하는 것을 수반한다.[3]
그 밖의 기능들로는 결과 무결성을 포함한 도큐먼트 수준의 ACID 시맨틱, (증강) 맵리듀스, (증강) 복제를 포함한다. 카우치DB의 독특한 기능 중 하나는 멀티 마스터 복제(multi-master replication)이며 여러 머신들로 하여금 스케일할 수 있게 함으로써 고성능 시스템을 구축할 수 있게 한다. Fauxton(과거 이름은 Futon)라는 이름의 내장된 웹 애플리케이션은 관리를 돕는다.