2013-01-14 36 views
5

Hiện tại chúng tôi đánh giá việc sử dụng Apache Cassandra 1.2 làm giải pháp xử lý dữ liệu quy mô lớn. Khi ứng dụng của chúng tôi được đọc nhiều và cung cấp cho người dùng thời gian phản hồi nhanh nhất có thể, chúng tôi muốn cấu hình Apache Cassandra để giữ tất cả dữ liệu trong bộ nhớ.Cấu hình trong bộ nhớ Cassandra

Có đủ để đặt bộ nhớ đệm tùy chọn lưu trữ thành rows_only trên tất cả các nhóm cột và cung cấp cho mỗi nút Cassandra đủ bộ nhớ để giữ phần dữ liệu của nó không? Hay có khả năng nào khác cho Cassandra?

Trả lời

9

Đọc điều chỉnh hiệu suất phức tạp hơn nhiều so với viết. Dựa trên kinh nghiệm của tôi, có một số yếu tố bạn có thể cân nhắc. Một số quan điểm không liên quan đến bộ nhớ, nhưng chúng cũng giúp cải thiện hiệu năng đọc.

1. Bộ nhớ cache hàng: tránh đánh đĩa, nhưng chỉ bật tính năng này nếu các hàng không được cập nhật thường xuyên. Bạn cũng có thể bật bộ nhớ cache hàng ẩn để giảm mức sử dụng vùng heap JVM.

2. Bộ nhớ cache khóa: bật theo mặc định, không cần phải tắt tính năng này. Nó tránh tìm kiếm đĩa khi bộ nhớ cache hàng không được nhấn.

3. Giảm tần suất tuôn memtable: điều chỉnh memtable_total_space_in_mb, commitlog_total_space_in_mb, flush_largest_memtables_at

4. Sử dụng LeveledCompactionStrategy: tránh hàng trải rộng trên nhiều SSTables.

+2

+1 Tốt câu trả lời, buồn khi thấy nó không được chấp nhận. – Jonathan

1

DataStax đã thêm một tính năng trong bộ nhớ trong phiên bản mới nhất của cơ sở dữ liệu NoSQL dựa trên Apache Cassandra, như một phần của một ổ đĩa để tăng hiệu suất của các ứng dụng trực tuyến.

tham khảo:

http://www.datastax.com/2014/02/welcome-to-datastax-enterprise-4-0-and-opscenter-4-1

+0

Liệu DataStax có đóng góp tính năng đó cho dự án Apache không? – matt2000

+0

có vẻ như có sẵn thông qua doanh nghiệp datastax. Tuy nhiên, nó không được khuyến khích cho một số khối lượng công việc. http://t.co/JJG1SLEajl –

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