2009-07-25 50 views

Trả lời

4

Mặc dù Erlang hỗ trợ tải mã nóng, nhưng nó không phải là thứ mà người dùng phải sử dụng. Trong trường hợp của bạn, có vẻ như dễ dàng loại bỏ một nút một lần khỏi bộ cân bằng tải, khởi động lại nó đang chạy mã mới và đặt nó trở lại trong bộ cân bằng tải.

Lấy nút xuống cũng là thứ bạn phải chuẩn bị để làm nếu bạn muốn nâng cấp nóng lên các bản phát hành Erlang/OTP mới trong hệ thống trực tiếp của mình.

Nhưng vấn đề thực sự có thể nổi lên với bạn là những lo ngại đến từ chứng mất trí. Tôi nghĩ bạn nên hỏi một câu hỏi mới với các chi tiết cụ thể trong những gì muốn mnesia làm. Nếu không có lược đồ/bảng thay đổi, và bạn chỉ muốn lấy một nút xuống và thêm nó sau này. Hoặc nếu bạn đang giới thiệu các bảng mới hoặc các cột mới trong bảng. Mnesia cung cấp khả năng thêm và loại bỏ các nút với bản sao bảng, và nó cũng hỗ trợ duy nhất nhiều định nghĩa bảng thông qua mnesia:transform_table/3,4.

+1

Có, tôi sợ rằng nếu tôi giới thiệu các bảng mới hoặc các cột mới trong bảng, tôi phải gỡ toàn bộ hệ thống xuống. Cảm ơn bạn đã trả lời, tôi không biết có một hàm transform_table. –

1

Nếu bạn chỉ đang thực hiện nâng cấp mã, tôi đã viết một bài viết về erlang release handling with fab. Với thiết lập này, bạn có thể tải mã thời gian thực mà không phải khởi động lại các nút. Việc chuyển đổi cơ sở dữ liệu, tuy nhiên, nên được thực hiện từ một nút duy nhất, được kích hoạt riêng biệt với bản nâng cấp phát hành.

Các vấn đề liên quan