2010-08-15 8 views
1

CouchDB를 사용하여 솔루션을 구현할 때 고려해야 할 팩터링을 알아야합니다. 나는 CouchDB가 정규화를 필요로하지 않으며 RDBMS 개발에 사용하는 표준 기술이 거의 버려진다는 것을 알고있다.RDBMS와 비교했을 때 CouchDB를 사용할 때 어느 정도의 스토리지가 필요합니까?

하지만 비용은 정확히 무엇입니까. 이점을 완벽하게 이해하고 있지만 스토리지 비용은 CouchDB가 복제 된 데이터를 많이 필요로하기 때문에 조금 신경이 쓰입니다. 사용하기 전에 오래되고 오래된 데이터가 일부 필요합니다. 낡은 데이터를 어떻게 관리하나요?

나는 Couchdb를 사용하는 문서와 몇 가지 끔찍한 관계 모델을 구현하고 스토리지 비용을 낮출 수 있지만 Couchdb의 목표와 내가 얻을 수있는 퍼포먼스를 이길 수는 없다는 것을 알고있다.

예를 들어, requistions, ordering 및 tendering 시스템을 생각하고 있습니다. 이 시스템은 현재 일대일로 진행되고 있으며 많은 사람들이 일일이 자주 업데이트 될 수 있습니다.

나는 C.J. Date, E.F Codd 및 R. F. Boyce의 모든 가르침을 가진 오래된 학교 RDBMS 사람이므로 문서 보관에 대한 급진적 인 개념으로 지금 어려움을 겪고 있습니다.

Couchdb에는 중복 데이터의 인식 및 축소를 관리하는 데 필요한 것이 있습니까?

+0

어림짐작 - 데이터에 관계가 있다면 NOSQL 솔루션이 올바른 방법이 아닐 수도 있습니다. –

+0

@Romain 모든 데이터는 NOSQL 솔루션에서도 관계가 있습니다. NOSQL 솔루션이 표준화 비용으로 복제를 촉진한다는 인상을 받았다는 것을 알 수 있습니다. – WeNeedAnswers

+1

CouchDB에는 일대 다 문제가 없습니다. 다른 S.O.에서 나의 연습을 보아라. 질문 : http://stackoverflow.com/questions/3033443/best-way-to-do-one-to-many-join-in-couchdb/3035522#3035522 – JasonSmith

답변

1

얼마나 많은 데이터를 얼마나 많이 사용할 지 알고있을 뿐이므로 불행히도 이라는 좋은 대답은 시뮬레이션 된 데이터 세트를 만들고 디스크 사용량을 측정하는 것입니다.

또한 파일 시스템과 비슷한과 같이 CouchDB는 메타 데이터를위한 추가 저장 영역이 필요합니다. 이 비용은 두 가지 요인에 따라 달라집니다 : 당신은 당신이 컴팩트

최악의 순간 디스크 사용량이 총 금액이 될 것입니다 얼마나 자주 문서

  • 를 업데이트하거나 만들 얼마나 자주

    1. 데이터 번 두 플러스 압축 시간 (# 2)에 존재하는 모든 이전 문서 버전 (# 1). 이는 압축이 현재 문서 버전만으로 새 데이터베이스 파일을 작성하기 때문입니다. 따라서 사용은 현재 데이터의 두 복사본 (이전 파일과 새 파일)과 압축이 완료 될 때까지 삭제 된 모든 "낭비 된"이전 버전을 사용합니다. 압축 후에 오래된 파일이 삭제되므로이 최악의 경우 값의 절반 이상을 재 확보하게됩니다.

      항상 압축을 실행하면 데이터 사용량을 줄일 수 있지만 디스크 i/o에는 영향이 있습니다.

  • +0

    실제로 버전 정보를 잊어 버렸습니다. 그러나 당신이 말했듯이 나는 그것을 압축 할 수 있으므로 그렇게 걱정하지 않아도됩니다. – WeNeedAnswers

    +0

    당신 말이 맞습니다.때때로 디스크에서 전체 활성 데이터 세트를 읽고 다시 쓰는 것이므로 머리를 아낄 가치가 있습니다. 그것은 귀하의 데이터에 따라 많은 I/O가 될 수 있습니다. – JasonSmith

    관련 문제