Chúng tôi đang sử dụng Mnesia làm cơ sở dữ liệu chính cho một hệ thống rất lớn. Mnesia Fragmented Tables đã cư xử rất tốt trong giai đoạn thử nghiệm. Hệ thống có khoảng 15 bảng, mỗi bảng được sao chép trên 2 trang web (nút) và mỗi bảng được phân mảnh rất cao. Trong giai đoạn thử nghiệm, chúng tôi chấp nhận Mnesia với nhiều ưu điểm của cấu trúc phức tạp sẽ làm cho chúng tôi, vì tất cả các ứng dụng của chúng tôi đang chạy trên dịch vụ là các ứng dụng Erlang/OTP. Chúng tôi đang chạy Yaws 1.91 làm Máy chủ Web chính.
Đối với cấu hình một cách hiệu quả Bàn phân mảnh, chúng tôi sử dụng một số tài liệu tham khảo đã sử dụng mnesia trong các hệ thống lớn:
Đó là: Mnesia One Year Later Blog, Part 2 of the Blog, Followed it even here, About Hashing. Các bài đăng trên blog này đã giúp chúng tôi tinh chỉnh ở đây và ở đó để có hiệu suất tốt hơn.Bàn Mnesia rất lớn trong sản xuất
Hiện tại, sự cố. Mnesia có giới hạn kích thước bảng, vâng chúng tôi đồng ý. Tuy nhiên, giới hạn về số lượng các mảnh vỡ chưa được đề cập ở bất kỳ đâu. Vì lý do hiệu suất, và để phục vụ cho dữ liệu lớn, về việc có bao nhiêu mảnh sẽ giữ cho chứng mất trí nhớ "ổn"?
Trong một số bảng của chúng tôi, chúng tôi có 64 đoạn. với n_disc_only_copies
được đặt thành số lượng nút trong cụm sao cho mỗi nút có một bản sao trên mỗi đoạn. Điều này đã giúp chúng tôi giải quyết các vấn đề mất trí nhớ khi một nút đã cho nằm ngoài tầm với. Cũng trong blog ở trên, ông đề nghị rằng the number of fragments should be a power of 2
, tuyên bố này (ông nói) đã được điều tra từ cách mnesia hiện băm của nó hồ sơ. Tuy nhiên chúng ta cần giải thích thêm về điều này, và sức mạnh của hai người đang được nói đến ở đây: 2,4,16,32,64,128, ...?
Hệ thống được thiết kế để chạy trên HP Proliant G6, chứa bộ vi xử lý Intel (2 bộ xử lý, mỗi lõi 4, tốc độ 2,4 GHz mỗi lõi, kích thước bộ nhớ cache 8 MB), dung lượng RAM 20 GB, dung lượng đĩa 1,5 Terabyte. Bây giờ, 2 trong số những cỗ máy công suất cao này được chúng tôi sử dụng. Cơ sở dữ liệu hệ thống nên được nhân rộng trên cả hai. Mỗi máy chủ chạy Solaris 10, 64 bit.
Số mảnh vỡ nào có thể làm cho hiệu suất của mnesia bắt đầu giảm dần? Liệu có ổn không nếu chúng ta tăng số mảnh từ 64 lên 128 cho một bảng đã cho? làm thế nào về 65536 mảnh (2^16)? Làm thế nào để chúng tôi mở rộng quy mô của chúng tôi để tận dụng không gian Terabyte bằng cách sử dụng phân mảnh?
Vui lòng cung cấp câu trả lời cho các câu hỏi và bạn có thể cung cấp lời khuyên về bất kỳ thông số nào khác có thể nâng cao Hệ thống.
LƯU Ý: Tất cả các bảng chứa hàng triệu bản ghi được tạo ở loại disc_only_copies
, do đó không có vấn đề về RAM. RAM sẽ đủ cho một vài bảng RAM mà chúng tôi chạy. Các DBMS khác như MySQL Cluster và CouchDB cũng sẽ chứa dữ liệu và đang sử dụng cùng phần cứng với Mnesia DBMS của chúng tôi. MySQL Cluster được nhân rộng trên hai máy chủ (mỗi máy chủ lưu giữ hai nút NDB, một máy chủ MySQL), nút quản lý nằm trên một HOST khác nhau.
Có thể bạn có thể thử hỏi danh sách gửi thư câu hỏi ngoài trời. Nó có nhiều khẩu súng lớn với nhiều kinh nghiệm và nhiều khả năng bạn sẽ nhận được câu trả lời tốt cho câu hỏi mở kết thúc ở đó. – knutin
cảm ơn @knutin, hãy để tôi thử rằng –
Hey @MuzaayaJoshua, nếu bạn đã đăng lên các câu hỏi sai lệch, bạn có phiền khi chia sẻ liên kết không? – jtmoulia