Tôi đang xây dựng một máy chủ erlang. Người dùng gửi yêu cầu http đến máy chủ để cập nhật trạng thái của họ. Quá trình yêu cầu http trên máy chủ lưu thông báo trạng thái người dùng trong bộ nhớ. Mỗi phút máy chủ gửi tất cả thư đến máy chủ từ xa và xóa bộ nhớ. Nếu người dùng cập nhật trạng thái của mình nhiều lần trong một phút, thông báo cuối cùng sẽ ghi đè trước đó. Điều quan trọng là khi đọc tất cả các tin nhắn và xóa chúng, không có quá trình nào khác sẽ có thể viết thông báo trạng thái.gen_server với bảng dict vs mnesia vs ets
Cách tốt nhất để triển khai nó là gì?
gen_server với dict. Khóa sẽ là userid. dict: store/3 sẽ cập nhật hoặc tạo trạng thái. Gen_server giải quyết vấn đề 'giao dịch'.
bảng mnesia có ram_copies. Xử lý giao dịch và tôi không cần triển khai gen_server. Có quá nhiều chi phí với giải pháp này không?
Bảng ETS có trọng lượng nhẹ hơn và có bộ gen_server. Có thể thực hiện giao dịch trong ETS không? Để khóa bàn giữa đọc tất cả các tin nhắn và xóa chúng?
Cảm ơn
này đã được thảo luận trên erlang-câu hỏi gửi thư-list. – rvirding
Và đây là liên kết đến cuộc thảo luận, đối với những người như tôi đã tìm thấy stackoverflow trước tiên: http://erlang.2086793.n4.nabble.com/gen-server-with-a-dict-vs-mnesia-table-vs- ets-td2119064.html – JoelPM