2009-11-22 3 views
3

많은 양의 사용자 정의 모듈을 실행하는 ejabberd 서버가 있습니다. 나는 여러 가지 기억 상 표를 가지고 있으며 코드를 전혀 변경하지 않고 노드간에 쉽게 복사 할 수 있음을 알고 있습니다. ets 테이블과 비슷한 방법이 있는지 궁금합니다.Erlang Ets 노드 사이의 테이블

내 테이블을 기억 상실 테이블로 변환 할 필요없이 정확히 동일한 기억 상실 및 데이터를 사용하여 여러 대의 컴퓨터를 실행할 수있는 것이 이상적입니다. (따라서 많은 양의 코드를 다시 작성합니다.)

각 노드의 ets 테이블에서 rpc : call을 수행했는데 성능에 미치는 영향에 대해 확신 할 수 없었습니다.

누구든지 답변이 있으면 알려 주시기 바랍니다.

답변

9

아니요, ets 테이블 내용을 복제 할 수 없습니다.

복제 및 트랜잭션 안전성은 mnesia 데이터베이스 응용 프로그램에서 소개하는 기능으로, 구현시 ram_only 테이블에 ets가 사용됩니다.

+0

동의합니다. 이것이 바로 횡격막 증이 무엇이며, ets 대신 흉골을 사용해야하는 큰 이유입니다. – psyeugenic

3

rpc : 먼 노드의 ets 테이블을 호출 할 수 있습니다.

그러나 mnesia의 요점은 당신이로 실행중인 문제의 종류 고정되어 mnesia에 코드를 변환 복제

은 미래를위한 좋은 투자입니다. 위험한 동안 코드 변경을 최소화하기 위해 항상 mnesia:ets()을 사용할 수 있습니다.

관련 문제