2010-02-08 2 views
0

내 질문에 모두 답이 맞지 않거나 확실하지 않은 경우 잘 모르겠다. 잠깐 들려서 긴 버전을 알려 주겠다.memcache에 관계형 데이터베이스 스타일의 프런트 엔드를 만든 적이 있습니까?

최근에 대용량 웹 응용 프로그램에 대해 논할 때 "디스크는 새로운 테이프 ". 웹 사이트 관리자는 엄청난 양의 Memcache 서버 클러스터를 사용하여 클라이언트와 서버간에 I/O없이 디스크 왕복을 만듭니다. 이를 달성하기 위해 응용 프로그램 개발자는 RDBMS를 일반 데이터 저장소와 같이 처리하고 외래 키 제약 조건, 검사 제약 조건, 계단식 UPDATES 및 DELETES와 같은 중요한 기능을 버려야합니다.

하지만 memcache 클러스터를 응용 프로그램 소프트웨어 (PHP, Ruby, Python ...)의 영역과 DB 인터페이스 외부에 db 인터페이스의 다른면에 배치 할 수 있다면 어떨까요? 이를 대규모의 분산 메모리 캐시라고 생각하십시오. 확실하게하기 위해 SELECT 문 매개 변수에 관계없이 데이터베이스에서 읽을 때 100 % 캐시 적중률을 보장하면서 전체 데이터베이스를 메모리에 저장할 수있는 memcache 클러스터 유형에 대해 설명합니다. 그런 다음 응용 프로그램 코드를 작성할 때 메모리 캐싱을 잊을 수 없으며 관계형 데이터베이스 관리 시스템 인 것처럼 데이터 저장소를 다시 처리 할 수 ​​있으며 RDBMS가 전통적으로 권장하는 방식으로 정규화 및 조인을 사용할 수 있습니다.

RDBMS의 데이터 무결성 이점을 유지/복원하면서 성능을 향상시킬 수 있습니다.

사람들이 이미이 작업을 수행 한 프로젝트를 아는 사람이 있습니까? 오픈 소스 프로젝트로서 PostGRE 또는 MySQL과 같은 오픈 소스 RDBMS를 수정할 수 있습니까? 나는 아무 것도 발견하지 못했고 이러한 프로그램이 어떻게 구조화되어 있는지 또는 그러한 스토리지 엔진을 구현할 수 있는지 여부는 알지 못합니다.

http://www.julianbrowne.com/article/viewer/brewers-cap-theorem

그 memcache에 서버 중 하나가 재부팅하는 경우, 당신은 약간 발끈 것, 유의 사항 :

+0

을 기원합니다, 당신은 하나 개의 서버에 모든 memcached와 인스턴스를 실행해야합니다), 전체 데이터베이스를 한 컴퓨터의 메모리에 저장하는 데 충분한 메모리가 있으면 데이터베이스에 메모리를주고 가장 잘 수행 할 수 있도록하는 것이 더 쉽습니다. – Epcylon

답변

0

당신은 CAP의 theorom을 검토해야합니다. 모든 memcache 서버를 사용하더라도 네트워크 속도에 의해 여전히 제한을 받게되며 네트워크 혼잡이 문제가 될 수 있습니다.

융합 형 카드와 같은 다른 장치와 하이퍼 시스템의 램 디스크와 같은이 문제를 해결하는 다른 순수한 RAM 하드 디스크가 있습니다. 응. (당신의 계획을 죽이는 네트워크 문제를 피하기 위해 내가 일할 계획에 대한 ... 우리 회사는 이들의 다스를 감당할 수있는 위해

다니엘

관련 문제