본문 바로가기

쓸모 있는 제품

Product: Project Voldemort - A Distributed Database

원제 : Product: Project Voldemort - A Distributed Database

번역 : Product: Project Voldemort - A Distributed Database

Update:  NoSQL conference 발표자료 : slides, video 1, video 2.

Project Voldemort 은  Dynamo (Amazon’s Highly Available Key-value Store) 분산 키-값 저장 시스템의 기본 부품의 오픈소스 구현입니다. LinkedIn 은 "간단한 함수 분할이 충분하지 않은 특정한 높은 확장성 저장 문제를 위해" 제품 환경에서 Project Voldemort을 사용합니다.

LinkedIn 웹 사이트로부터 :

  • 데이터는 다중 서버를 넘어서 자동으로 복제됩니다
  • 데이터는 자동으로 분할되고 각 서버는 전체 데이터의 부분만 가지고 있습니다
  • 서버 오류는 투명하게 처리됩니다
  • Pluggable 직렬화는 이름 필드를 가지는 리스트와 튜플을 포함하는 풍부한 키와 값을 허용할 수 있게 지원되는데, 이는 Protocol Buffers, Thrift, Java Serialization 같은 일반적인 직렬화 프레임워크와 통합됩니다.
  • 데이터 아이템은 시스템의 가용성을 떨어뜨리지 않고 오류 상황에서 데이터의 무결성을 최대화하기위해 버전 관리됩니다
  • 각 노드는 오류나 조정의 중앙 지점없이 다른 노드에 대해 독립적입니다
  • 단일 노드 성능이 좋습니다: 장비, 네트워크, 복제 요소에 따라 초당 만-2만 동작을 기대할 수 있습니다
  • 지리적으로 멀리 떨어진 데이터센터간의 분산을 지원하기 위해 pluggable 데이터 배치 전략을 지원합니다.

    LinkedIn은 그들의 아키텍처 선택을 살펴보는 멋진 설계 페이지를 가지고 있습니다: 키-값만 저장, 복잡한 질의와 조인 금지; 일관딘 해싱이 데이터를 노드에 할당한다; JSON을 스키마 정의에 사용한다; 분산 일치성을 위해 버전관리와 읽기-정정; 레이어간의 인터페이스로써 put, get, delete를 가지는 엄격한 분리된 아키텍처.

    프로젝트 이름에 대한 그냥 힌트: muggledom(Harry Potter and the Order of the Phoenix에 등장)에서 가장 인기있는 이름중의 하나를 따라서 이름을 만들지 마세요. 여러분의 천재성을 검색을 통해서 발견할 유일한 방법은 어둠의 마법입니다. 내가 좋은 마녀이기는 하지만, 실제로 Voldemort 한 것을 찾지 못했습니다. 그러나 생각은 매우 훌륭하고 확장가능한 데이터베이스 설계에 대한 현재 생각과 매우 일치합니다. 살펴볼 가치가 있습니다.(Voldemort가 해리포터 시리즈에 등장하는 이름이기 때문에 따라하지 말라는 이야기인 듯함)

  • 관련 기사

  • The CouchDB Project