2008-09-23 6 views
1

동일한 응용 프로그램을 실행하는 N 개의 노드가 있다고 가정합니다. 에 mnesia 테이블 T1을 모든 N 노드와 공유하고 싶습니다. 문제는 없습니다. 그러나 다른 쌍성 평판 테이블 T2를 노드 쌍과 공유하려고합니다. T2의 콘텐츠가 동일하고 만 /로 복제됨을 의미합니다. 다른 말로하면 N/2 개의 다른 내용을 T2 표에 넣으려고합니다. 각 노드에 대해 T2의 이름을 바꾸는 것이 아니라 천리안과 함께 가능합니까? 다른 노드 쌍?Mnesia 테이블 복제/공유

답변

4

하나의 테이블은 공유하는 노드 수에 관계없이 항상 하나의 테이블입니다. 노드 쌍 쌍이 테이블을 공유하도록하려면 노드 쌍마다 고유 테이블을 작성해야합니다.

모든 테이블에 동일한 설정 (레코드 등)을 사용할 수 있으므로 작업을 완료하는 데 더 많은 작업이 있어서는 안됩니다.

6

mnesia_frag_hash 콜백 동작을 사용하는 경우 mnesia의 테이블 조각화를 사용하여이를 수행 할 수 있습니다. 이를 통해 키의 분배를 제어 할 수 있으며 콜백이 어떤 노드 쌍 (따라서 어떤 조각)을 사용해야 하는지를 결정할 수 있도록 키를 구성 할 수 있습니다.

특정 상황에서 작동하는지 여부는 액세스 패턴 및 데이터 세트에 따라 다릅니다. 가능성은 꽤 복잡한 방식이며 다른 테이블 이름을 대신 사용하는 것이 더 나을 것입니다.

관련 문제