2009-07-25 6 views

답변

4

Erlang은 핫 코드로드를 지원하지만, 반드시 사용해야하는 것은 아닙니다. 귀하의 경우로드 밸런서에서 노드 하나를 한 번씩 제거하고 새 코드를 실행하여 노드를 다시로드 밸런서에 넣는 것이 더 쉬운 것처럼 보입니다.

라이브 시스템에서 새로운 Erlang/OTP 릴리스로 핫 업그레이드하려는 경우 노드 준비 작업도 준비해야합니다.

그러나 너를 위해 거품을 일으킬 수있는 진짜 문제는 건망증에서 비롯된 것입니다. 나는 당신이 횡격막 질환을 원한다는 점에서 구체적으로 새로운 질문을해야한다고 생각합니다. 스키마/테이블 변경이 없으면 하나의 노드를 제거한 다음 나중에 추가하기 만하면됩니다. 또는 실제로 테이블에 새 테이블 또는 새 열을 도입하는 경우 Mnesia는 테이블 복제본을 사용하여 노드를 추가 및 제거하는 기능을 제공하며 mnesia:transform_table/3,4을 통해 여러 테이블 정의를 고유하게 지원합니다.

+1

예, 테이블에 새 테이블이나 새 열을 추가하면 전체 시스템을 다운시켜야 할까 봐 걱정됩니다. 귀하의 답변을 주셔서 감사합니다, 나는 거기에 transform_table 기능을 몰랐다. –

1

단지 코드 업그레이드를 수행 중이라면 erlang release handling with fab에 대한 기사를 작성했습니다. 이 설정을 사용하면 노드를 다시 시작하지 않고도 실시간 코드로드를 수행 할 수 있습니다. 그러나 데이터베이스를 변환하는 작업은 릴리스 업그레이드와 별도로 트리거 된 단일 노드에서 수행해야합니다.

관련 문제