노스케일의 파트너들과 함께 membase.org가 출시된 지 2주 남짓 지났습니다. Zynga 그리고 NHN. 그 동안 위키에 게시물을 꾸준히 늘리고 질문에 대한 답변을 메일링 리스트, XMPP 채팅 및 IRC 채널에 대한 질문이 많습니다. 질문은 주로 멤베이스 데이터베이스 관리 시스템이 다른 오픈 소스 프로젝트와 어떻게 비교되는지, 어떤 종류의 클라이언트를 사용해야 하는지, 배포 시 어떤 부분이 필요한지에 관한 것입니다.
NoSQL의 세계
일반적으로 사람들은 멤베이스가 데이터 서비스를 중단하지 않고 확장 및 축소할 수 있도록 설계된 분산형 키-값 데이터베이스 관리 시스템이라는 것을 높은 수준에서 이해한다고 생각합니다.
Membase는 앱이 사용자에게 데이터를 가져오는 중요한 경로에 있어야 하는 것과 동일한 종류의 성능을 제공하도록 설계된 DB의 한 예입니다. 제 생각에 NoSQL의 세계를 보면, 이 분야는 소외된 영역이었습니다.
새로운 영역으로서 NoSQL에 대한 많은 실험이 이루어지고 있습니다. 일부는 온라인과 분석을 혼합하여 실험하고, 일부는 느슨하거나 궁극적인 일관성을 실험하고, 일부는 K/V 스토어에 더 많은 데이터 구조 기본 요소를 추가하고, 또 다른 일부는 문서 지향적인 방식으로 데이터를 살펴보고 있습니다.
저희는 이러한 문제를 알고 있었고 실험도 해봤지만, 파트너와 함께 매우 구체적인 문제를 해결하려고 노력하면서 멤베이스와 다른 길을 걷게 되었습니다. 멤캐시드를 중심으로 앱이 구축되어 있었습니다. 이러한 앱 중 일부는 SQL이 반드시 필요했는데, 이를 위해 이미 Drizzle을 사용하고 있었습니다, MySQL 또는 PostgreSQL또는 Cubrid (큐브리드는 NHN에서 큰 비중을 차지하고 있습니다). 동일한 앱의 또 다른 일부는 실제로 SQL이 필요하지 않았지만, 대부분의 SQL 기반 관계형 데이터베이스 관리 시스템(RDBMS)이 제공하는 복제, 지속성 및 데이터 관리 기능이 필요했지만 일반적으로 원하는 것보다 더 복잡하고 관리가 어려웠습니다.
멤베이스를 시작하세요. 기존 인프라 앱(멤캐시 프로토콜과 클라이언트)을 기반으로 필요한 수준의 내구성을 추가하고, 관리자와 개발자가 항목별로 내구성을 제어할 수 있는 규칙을 추가하고, 분산된 방식으로 실행하는 방법을 스마트하게 만들 수 있었습니다.
고무는 어떻게 도로와 만나나요?
우리는 시스템에 약간의 지능을 주입해야 했습니다. 멤캐시의 장점은 대부분의 경우 지능이 클라이언트에 있으므로 서버는 빠르고 멍청하게만 작동할 수 있다는 것입니다. 하지만 시스템이 비휘발성이고, 복제 기능이 있으며, 온라인 상태에서 확장 및 축소가 가능해야 한다면, 시스템이 어디에 있는지 어느 정도 파악할 수 있어야 합니다. 그 결과 vbuckets가 탄생했습니다. Dustin의 훌륭한 블로그 커버.
사물이 어디에 있는지 알 수 있는 방법과 함께 버킷의 내구성과 복제 기능도 필요합니다. 이것이 바로 멤베이스 엔진이 필요한 이유입니다. 멤베이스 엔진은 대체 노드에서 데이터 세트를 복제하도록 지시할 수 있습니다. 또한 구성 맵을 통해 특정 버킷에 대한 권한이 누구에게 있는지 알 수 있습니다.
하지만 스택 위로 올라가면 클라이언트는 vbuckets에 대해 알지 못합니다. 클라이언트는 서버에 연결하기 위한 모듈러스 또는 일관된 해싱을 알고 있기 때문에 호환되는 무언가가 필요했습니다. 우리는 이미 매우 간단한 클라이언트에게 작업 중복 제거, 지능형 연결 공유, 장애 발생 시 수행할 작업, 심지어 작업 속도를 더욱 높일 수 있는 일부 비코히어런트 캐싱에 관한 인텔리전스를 제공하는 moxi를 보유하고 있었습니다. moxi와 그 기본 구성 엔진인 libconflate가 동일한 vbucket 맵으로 무엇을 해야 하는지 알 수 있도록 가르치는 데 더 이상 많은 시간이 걸리지 않을 것입니다. 이렇게 하면 기존 클라이언트는 물론 기존 애플리케이션에서도 필요한 키/값 데이터베이스를 빠르게 분산할 수 있기 때문에 그렇게 했습니다.
결론
그 핵심은 지속성, 복제 및 동적으로 성장하고 축소할 수 있는 v버킷을 구현하는 멤베이스 엔진입니다. 약간의 추가 인텔리전스가 없는 고객에게도 vbuckets을 제공하기 위해 moxi가 있습니다. 서비스를 중단하지 않고 노드 간에 데이터를 마이그레이션하려면 vbucketmigrator가 있습니다. 자세한 내용은 membase.org에서 계속 지켜봐 주세요.
[...] CouchDB 개발 회사와 Membase 서버 및 멤캐시드의 모기업인 멤베이스가 합병하여 새로운 스타트업을 만들었습니다 [...]