문제

동일한 응용 프로그램을 실행하는 Nerlang 노드가 있다고 가정합니다. MNESIA 표 T1을 모든 N 노드와 공유하고 싶습니다. 그러나 다른 MNESIA 표 T2를 노드 쌍과 공유하고 싶습니다. T2의 내용은 동일하고 공유 쌍만으로/복제 될 것임을 의미합니다. 다른 말로, 나는 T2 테이블에 대해 N/2의 다른 내용을 원합니다. 각각의 별개의 노드 쌍에 대해 T2의 이름을 바꾸는 것이 아니라 MNENSIA에서 가능합니까?

도움이 되었습니까?

해결책

하나의 테이블은 공유하는 노드 수에 관계없이 항상 하나의 테이블입니다. 테이블을 공유하는 노드 쌍을 원한다면 각 노드 쌍에 대해 고유 테이블을 만들어야합니다.

모든 테이블에 대해 동일한 설정 (레코드 등)을 사용할 수 있으므로 완료하기 위해 훨씬 더 많은 작업이 없어야합니다.

다른 팁

MNESIA의 테이블 조각화로 이것을 할 수 있습니다. mnesia_frag_hash 콜백 동작. 이를 통해 키 분포를 제어 할 수 있으며, 콜백이 어떤 노드 쌍 (따라서 어떤 조각) 사용해야하는 어떤 노드 쌍 (및 어떤 조각)를 결정할 수 있도록 키를 구성 할 수 있습니다.

이것이 특정 경우에 작동하는지 여부는 액세스 패턴 및 데이터 세트에 따라 다릅니다. 꽤 복잡한 접근 방식이며 대신 다른 테이블 이름을 사용하여 더 잘 제공 될 가능성이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top