Nếu tôi có nhiều máy chủ web được viết bằng Erlang đang chạy (tải cân bằng) và Mnesia được sử dụng cho cơ sở dữ liệu phụ trợ, cách tốt nhất để nâng cấp toàn bộ hệ thống lên phiên bản mới hơn là gì?Trong Erlang, cách tốt nhất để nâng cấp hệ thống phân phối là gì?
Trả lời
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
.
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.
- 1. Hệ thống phân tán, khung tốt nhất?
- 2. Hệ thống phân phối Java
- 3. Mailbox Processor trên Hệ thống phân phối
- 4. android - hệ thống phân cấp xem là gì?
- 5. Hệ thống kiểu thống nhất là gì?
- 6. Cách tốt nhất để học Erlang là gì?
- 7. Java framework cho hệ thống phân phối
- 8. Cách tốt nhất để phân phối nhị phân dự án của tôi trên GitHub là gì?
- 9. Hiện tại hệ thống xây dựng tốt nhất là gì
- 10. Cách tốt nhất để phân phối ứng dụng nhị phân cho Linux là gì?
- 11. Mẫu C# nào tốt nhất để triển khai một hệ thống phân cấp với một enum?
- 12. Cách tốt nhất để nâng cấp từ jquery 1,3 lên 1,4 là gì?
- 13. Cách tốt nhất để sử dụng PowerShell Cmdlet trong hệ thống xây dựng NAnt là gì?
- 14. Cách tốt nhất để nâng cấp từ Django 0,96 lên 1,0 là gì?
- 15. Cách tốt nhất để đưa một hệ thống dịch thuật vào trang web php là gì?
- 16. Cách đúng để quá tải toán tử == cho một hệ thống phân cấp lớp là gì?
- 17. Cách tốt nhất để chia sẻ/phân phối macro Excel là gì?
- 18. Cách tốt nhất để phân phối nội dung cho CDN bằng Django là gì?
- 19. Cách tốt nhất để phân phối Lua và thư viện là gì?
- 20. Hệ thống xếp hàng - cách tốt nhất để bắt đầu nhiều công nhân là gì?
- 21. Hệ thống tốt nhất để cài đặt ứng dụng web Perl là gì?
- 22. Erlang là một hệ thống nhúng trong một ứng dụng?
- 23. Cách tốt nhất để xóa tất cả thư mục .svn trong toàn bộ hệ thống phân cấp thư mục trên Mac OS X là gì?
- 24. Backbone.js và hệ thống phân cấp/cây
- 25. Cần hệ thống tra cứu khóa-giá trị phân phối
- 26. Cách tốt nhất để tích hợp một số hệ thống?
- 27. Cách tốt nhất để phân phối gói Python yêu cầu phiên bản Python tối thiểu là
- 28. Nâng cấp http là gì?
- 29. Cách tốt nhất để tạo ra một hệ thống "hashtag"
- 30. Gói toán học thống kê tốt cho .Net là gì?
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. –