2009-07-18 5 views
1

저는 미디어 보관, 검색, 업로드, 배포 및 BLOB 처리에 관한 모든 시스템을 개발 중입니다.관계형 및 문서 기반 "데이터베이스"결합

현재 BLOB를 처리하는 가장 좋은 방법을 찾으려고합니다. 많은 메모리와 대용량 디스크가있는 하이 엔드 서버에 대한 리소스는 제한되어 있지만 대규모의 일반 성능 컴퓨터를 액세스하여 인터넷에 연결할 수 있습니다. 그때이 때문에

따라서 나는 가능한 한 평균 컴퓨터에, 최악의 경우, 중앙 관계형 데이터베이스에 하지 저장 한 매우 무거운 데이터베이스 인스턴스를 BLOB를 결정했다. 옵션이 아닙니다.

BLOB를 파일 시스템에 직접 저장하고 데이터베이스에 경로를 저장하는 것은 다소 엉망이며 배포본을 수동으로 관리하여 다른 사본을 직접 관리해야합니다. 나는 그것에 가까이 가고 싶지도 않습니다.

나는 CouchDB를 보았고 필자는 피어 투 피어 기반 디자인을 정말 좋아합니다.

  • 저가 하드웨어
  • 상자 밖으로 중복 및 장애 조치를위한 유통
  • 경량 REST 인터페이스

을 :이 의미 나 인터넷을 통해 기계의 분산 클러스터를 실행할 수 있도록 것입니다 따라서 올바르게 설정하면 다음과 같이 요약 할 수 있습니다. API와 자체 관리, 분산, 복제 시스템과 같은 클라우드

시스템의 나머지 부분은 세션, 보안, 사용자, 검색 등을 처리하는 일반적인 웹 응용 프로그램의 일반적인 기능을 수행합니다. 이 부분에서는 여전히 관계형 데이터 모델을 사용하려고합니다. (CouchDB는 이 아니며 관계형 데이터베이스를 대신 할이라고 주장함).

따라서 BLOB의 메타 데이터은 관계형 데이터베이스에 있지만 BLOB는 CouchDB에 포함되어 있습니다.

이 접근 방식에 문제가 있습니까? 중요한 것을 놓친 건가요? 더 나은 해결책을 생각할 수 있습니까?

감사합니다.

답변

3

SimpleJPA으로 Amazon의 관계형 데이터베이스 SimpleDB 및 S3를 시도 할 수 있습니다. SimpleJPA는 SimpleDB 위에 JPA 구현입니다. SimpleJPA는 관계형 구조로 SimpleDB를 사용하고 BLOB를 저장하기 위해 S3를 사용합니다.

0

문제 없습니다. 나는 그 디자인과 매우 비슷한 디자인을 해왔다. 데이터와 메타 데이터를 관리하는 방법으로 CouchDB 및 Adaptive Object-Model 아키텍처 패턴 대신 HBase를 살펴볼 수도 있습니다.

2

당신이 단지를 사용하여 멀리 얻을 수있을 수 있도록 그것은 효율적인 형식으로 바이너리 데이터를 저장하는 지원하고 믿을 수 없을만큼 빠른

+1

몽고 관계형 모델도 가까이이다, MongoDB를 살펴 보자 대신 소파 + 관계형. – kristina