1. Trang chủ >
  2. Kỹ thuật >
  3. Điện - Điện tử - Viễn thông >

8 Yêu cầu từ phía Client trong Cassandra

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.52 MB, 50 trang )


Truy vấn ghi tới trung tâm đa dữ liệu

Trong sự triển khai trung tâm đa dữ liệu, Cassandra tối ưu hiệu năng ghi bằng việc

chọn một nút điều phối trong mỗi trung tâm dữ liệu từ xa để xử lý những truy vấn tới các

bản sao trong trung tâm dữ liệu. Nút điều phối được liên hệ bởi ứng dụng Client chỉ yêu

cầu chuyển tiếp truy vấn ghi tới mỗi nút trong trung tâm dữ liệu từ xa.

Nếu sử dụng mức độ nhất quán là 1 hoặc LOCAL_QUORUM, thì chỉ những nút

trong cùng trung tâm dữ liệu với nút điều phối phải phản hồi lại truy vấn của Client là

truy vấn thành công. Theo cách này thì vị trí địa lý không ảnh hưởng tới thời gian phản

hồi truy vấn Client.



24



2.8.2 Truy vấn đọc

Đối với truy vấn đọc, có hai loại truy vấn đọc mà điều phối có thể gửi tới một bản

sao; một truy vấn đọc trực tiếp và một truy vấn sửa đọc nền. Số lượng bản sao được liên

hệ bởi một truy vấn đọc trực tiêp được xác định bởi mức độ nhất quán được đưa ra bởi

Client. Truy vấn sửa đọc nền được gửi tới bất cứ bản sao bổ sung nào mà không nhận truy

vấn trực tiếp. Truy vấn sửa đọc đảm bảo rằng hàng được truy vấn được thực hiện nhất

quán ở tất cả các bản ghi.

Do đó, trước tiên nút điều phối lên hệ với các bản sao được chỉ định bởi mức độ

nhất quán. Nút điều phối sẽ gửi những truy vấn tới bản sao mà đang phản hồi nhanh

chóng nhất. Những nút được liên hệ sẽ phản hồi với dữ liệu đã truy vấn; nếu nhiều nút

được liên hệ, thì các hàng ở mỗi bản sao được so sánh trong bộ nhớ để xem liệu chúng có

nhất quán. Nếu chúng không nhất quán, thì bản sao có dữ liệu gần dây nhất (dựa vào

khoảng thời gian) sẽ được nút điều phối sử dụng để chuyển tiếp kết quả về cho Client.

Để đảm bảo rằng tất cả các bản sao đều có phiên bản gần đây nhất của dữ liệu đọc

thường xuyên, thì nút điều phối cũng liên hệ và so sánh dữ liệu ở các bản sao mà không

được truy vấn đọc trực tiếp xem có nhất quán và không bị lỗi thời. Nếu bị lỗi thời thì sẽ

được cập nhật những giá trị được ghi gần đây nhất. Tến trình này đuợc gọi là sửa đọc. Sửa

đọc có thể được cấu hình đối với mỗi họ cột ( sử dụng read_repair_chance), và được cho

phép mặc định.

Ví dụ, trong một cụm với số lượng bản sao là 3, và mức độ nhất quán là

QUORUM, 2 trong 3 bản sao được liên hệ để thực hiện yêu cầu đọc trực tiếp. Giả định

rằng các bản sao được liên hệ có những phiên bản của các hàng khác nhau, thì bản sao có

phiên bản gần đây nhất sẽ trả lại dữ liệu được truy vấn. Bản sao thứ ba được kiểm tra tính

25



nhất quán so với hai bản sao trước, và nếu cần thiết, bản sao gần đây nhất sẽ sinh ra một

lệnh ghi để cập nhật những phiên bản lỗi thời.



2.9 Lập kế hoạch triển khai cụm Cassandra

Khi lập kế hoạch triển khai cụm Cassandra, cần có một ý tưởng tốt về khối lượng

ban đầu của dữ liệu mà chúng ta cần lưu trữ và ước lượng tốt khả năng tải của ứng dụng.

2.9.1 Lựa chọn phần cứng cho cài đặt doanh nghiệp

Với bất cứ ứng dụng nào, việc lựa chọn phần cứng thích hợp phục thuộc vào việc

lựa chọn cân bằng của những tài nguyên sau: bộ nhớ, CPU, ổ cứng, số lượng nút và mạng.

• Bộ nhớ:

Nút Cassandra có càng nhiều bộ nhớ thì hiệu năng đọc càng tốt. Nhiều RAM hơn cho

phép kích cỡ Cache lớn hơn và giảm truy nhập vào / ra ổ cứng đối với lệnh đọc. Nhiều

bộ nhớ RAM hơn cũng cho phép bảng bộ nhớ tổ chức nhiều dữ liệu ghi gần đây hơn.

Bảng bộ nhớ càng lớn thì càng ít số lượng bảng SS bị đẩy vào ổ cứng và ít file quyets

trong suốt quá trình đọc. Số lương RAM lý tưởng phụ thuộc vào kích thước dự đoán

trước được của dữ liệu nóng.

26



- Đối với phần cứng chuyên dụng, RAM có kích thước tối thiểu là 8GB là cần thiết.

DataStax được tư vấn từ 16GB-32GB.

- Khoảng trống heap JAVA nên được thiết lập tối đa là 8GB hoặc bằng ½ bộ nhớ

RAM, thậm chí thấp hơn.

- Đối với môi trường ảo sử dụng tối thiểu là 4GB, như Amazon EC2.

• CPU

Cassandra có tính đồng thời cao và sử dụng nhiều lõi CPU nhất có thể.

- Đối với phần cứng chuyên dụng, bộ vi xử lý 8 lõi là điểm tuyệt vời giữa hiệu năng và

giá

- Đối với những môi trường ảo, xem xét việc sử dụng một nhà cung cấp mà cho phép

CPU có cơ chế truyền loạt như Rackspace Cloud Servers.

• Ổ cứng

Cassandra ghi dữ liệu vào ổ cứng với 2 mục đích:

- Tất cả dữ liệu được ghi vào tệp lưu vết lâu dài

- Khi các ngưỡng được đạt tới, Cassandra đẩy cấu trúc dữ liệu trong bộ nhớ vào các

tệp dữ liệu SSTable để lưu trữ lâu dài.

Bản ghi cam kết nhận được tất cả các lệnh ghi đến một nút Cassandra, nhưng chỉ đọc

trong suốt thời gian nút khởi động. Bản ghi cam kết được giải phóng sau khi dữ liệu

tương ứng được đẩy vào. Nguợc lại, Các lệnh ghi SSTable (tập tin dữ liệu) được xảy

ra một cách không đồng bộ và được đọc trong suốt thời gian Client tìm kiếm. Ngoài

ra, SSTable định kỳ được gắn kết lại. Sự gắn kết lại cải thiện hiệu năng bằng việc nối

và ghi lại dữ liệu và bỏ qua dữ liệu cũ. Tuy nhiên, trong suốt quá trình gắn kết lại

(hoặc sửa nút) sự tận dụng đĩa và kích thước thư mục dữ liệu có thể tăng lên đáng kể.

Với lý do này, DataStax tư vấn để trống ra một số lượng khoảng trống đĩa rảnh rỗi cho

mỗi nút (50% [trường hợp xấu nhất] cho gắn kết lại từng cấp, 10% cho gắn kết lại san

lấp).

• Số lượng nút

Số lượng lớn dữ liệu trên mỗi đĩa trong mảng không quan trọng bằng kích thước

tổng mỗi nút. Việc sử dụng số lượng lớn của các nút nhỏ hơn tốt hơn việc sử dụng

ít các nút lớn hơn bởi vì sự cố thắt nút cổ chai trêncác nút lớn trong suốt quá trình

gắn kết.

• Mạng

Vì Cassandra là nơi lưu trữ dữ liệu phân tán, nên nó đặt tải trên mạng để xử lý các

truy vấn đọc/ghi và các bản sao dữ liệu qua các nút mạng. Cassandra phải chắc

27



Xem Thêm
Tải bản đầy đủ (.pdf) (50 trang)

×