2010-12-14 2 views
1

여러 컴퓨터에 데이터 구조를 배포 할 수 있는지 검토 중입니다. 각 컴퓨터의 프로세스에서 실행하고 (멀티 캐스트?) 모든 컴퓨터에서 전체 데이터 구조의 복사본을 복제하고 싶습니다.멀티 캐스트를 사용하는 여러 컴퓨터에 분산 된 데이터 구조

누가 올바른 방향으로 나를 가리킬 수있는 경험이 있습니까?

+0

구조가 얼마나 큰지? –

+0

은별로 크지 않으며, 주어진 시간에 5-10 개의 오브젝트 만 가질 수 있습니다. –

답변

0

분산 잠금은 어렵습니다. 읽기만하는 경우가 아니면 잠금을 설정해야 할 수도 있습니다. Microsoft's Velocity (현재 Azure의 일부로 이름이 변경 될 수 있음) 또는 무료 오픈 소스와 매우 유용한 memcached과 같은 분산 캐싱 프레임 워크를 살펴 보시기 바랍니다.

기타 유료 옵션 - 특히 GemFireCoherence이 있습니다.

나는 memcache에게 가봐야겠다. 꽤 잘 돌아 간다.

+0

이것들과 관련된 문제 (나는 memcached만을 사용했다)는 각 서버의 데이터를 Shard한다는 것이다. 그들은 전체 사본을 보관하지 않습니다. 따라서 서버가 다운되면 ... 그 파편은 사라집니다. –

+0

앱에서 처리 할 수 ​​있지만 감독과 추가 작업에 동의합니다. http://repcached.sourceforge.net/을 보셨습니까? –

+1

또한 Gemfire와 Coherence는 명시 적으로이 문제를 해결하고 Microsoft의 솔루션 (현재 AppFabric)은 필요에 따라 고 가용성 옵션을 제공합니다 (http://msdn.microsoft.com/en-us/library/ee790974). aspx) –

0

중앙 데이터베이스에 데이터를 쓸 수 있습니다. 그런 다음 각 인스턴스에서 액세스 할 수 있습니다. 인스턴스에서 데이터를 수정하려면 데이터베이스에서 데이터를 잠그는 메커니즘을 구현하십시오. 이게 도움이 되었나요?

+0

데이터베이스를 사용할 수 없습니다. 나는 이것을 모든 머신의 메모리에서 실행하기를 원한다 ... –

0

PUB/SUB 소켓을 사용하여 ØMQ을 통해 구조를 게시 한 다음 요구 사항 및 네트워크 품질에 따라 TCP 또는 IP 멀티 캐스트간에 전환 할 수 있습니다.

데이터 구조가 충분하게 구성되어 있으면 많은 문제없이 구조에 업데이트를 보낼 수 있어야합니다.

0

또한 Java 기반 솔루션 인 Hazelcast를 살펴볼 수도 있습니다.

다음은 내부 링크에 대한 직접적인 링크입니다 (1).

(1) http://www.hazelcast.com/documentation.jsp#Internals

뿐만 아니라 쉽게 사용할 수 있어야한다 (repcached) memcached를를 사용하는 제안이 이미있다.

0

질문에 대한 답변을 얻으려면 state machine replication에 대해 알아보고 플랫폼에 맞는 가상 동기화 또는 Paxos 구현을 찾아 빌딩 블록으로 사용해야합니다.

실제적으로 나는 많은 문제를 줄이는 ZooKeeper과 같은 조정 서비스를 고려할 것을 권합니다.

관련 문제