Mục lục:
- Phân vùng dung sai
- Chỉ mục thứ cấp là các chỉ mục về dữ liệu cụ thể trong một giá trị. Hầu hết các cửa hàng có giá trị khóa đều để lại lập chỉ mục này cho ứng dụng. Tuy nhiên, Riak là khác nhau, sử dụng một chương trình được gọi là
- Basho, một thực thể thương mại đằng sau Riak, cho biết phiên bản sắp tới của nó 2. 0 Cơ sở dữ liệu NoSQL luôn có tính nhất quán mạnh mẽ, một yêu cầu mà các nhà cung cấp NoSQL khác đưa ra. Các yêu cầu bồi thường của nhà cung cấp NoSQL để luôn luôn có tính nhất quán mạnh mẽ cũng giống như tuyên bố là một người ăn chay mạnh … ngoại trừ các ngày chủ nhật khi bạn có thịt bò nướng.
Video: Hệ quản trị CSDL: Cập nhật cơ sở dữ liệu phân tán (distributed database) 2025
Phân vùng chữ được sử dụng cho hai khái niệm khác nhau trong NoSQL. Một phân vùng dữ liệu là một cơ chế để đảm bảo rằng dữ liệu được phân bố đều trên một cụm. Mặt khác, phân vùng mạng xảy ra khi hai phần của cùng một cluster cơ sở dữ liệu không thể giao tiếp.
Trên các hệ thống clustered rất lớn, ngày càng có nhiều khả năng sự thất bại của một thiết bị sẽ xảy ra. Nếu một sự chuyển đổi mạng giữa các máy chủ trong một cụm không thành công, một hiện tượng được gọi là (trong ngữ cảnh máy tính) phân chia não xảy ra. Trong trường hợp này, các máy chủ cá nhân vẫn nhận được yêu cầu, nhưng họ không thể giao tiếp với nhau.
Kịch bản này có thể dẫn đến sự không nhất quán của dữ liệu hoặc chỉ đơn giản là giảm khả năng lưu trữ dữ liệu vì phân vùng mạng với ít máy chủ nhất sẽ được gỡ bỏ khỏi cluster (hoặc "bỏ phiếu" theo đúng Big Brother thời trang).
Phân vùng dung sai
Bạn có hai lựa chọn khi phân vùng mạng xảy ra:
-
Tiếp tục, ở một mức độ nào đó, để phục vụ các thao tác đọc và ghi.
-
"Bỏ phiếu" một phần của phân vùng và quyết định sửa dữ liệu sau đó khi cả hai bộ phận có thể giao tiếp. Điều này thường liên quan đến việc bỏ phiếu bầu một bản sao đã đọc làm chủ mới cho mỗi nút phân vùng chính bị mất.
Riak xử lý ghi khi máy chủ phân vùng chính bị tắt bằng cách sử dụng một hệ thống gọi là
ngụ ý bàn giao . Khi dữ liệu ban đầu được nhân bản, nút đầu tiên của một phân vùng khóa đặc biệt được ghi vào, cùng với (theo mặc định) hai nút lân cận sau đây.
Trong cả hai thao tác này, phiên bản mâu thuẫn có thể xảy ra vì các bản sao khác nhau có thể ở các trạng thái phiên bản khác nhau, thậm chí chỉ trong vài mili giây.
Riak sử dụng thêm một hệ thống gọi là
hoạt động chống - entropy để giảm bớt vấn đề này. Hệ thống này trawls thông qua các giá trị cập nhật và đảm bảo rằng các bản sao được cập nhật tại một số điểm, tốt hơn là sớm hơn chứ không phải là sau này.Điều này giúp tránh xung đột khi đọc, đồng thời duy trì tốc độ nhập dữ liệu cao, tránh được cam kết hai pha được sử dụng bởi các cơ sở dữ liệu NoSQL khác với sự hỗ trợ phân cấp không có sự hỗ trợ của master-slave. Nếu xung đột về đọc xảy ra, Riak sử dụng
đọc sửa để cố gắng chỉ trả lại dữ liệu mới nhất. Cuối cùng, mặc dù, và tùy thuộc vào sự nhất quán và tính sẵn sàng cài đặt bạn sử dụng, ứng dụng khách hàng có thể được trình bày với nhiều phiên bản và yêu cầu tự quyết định cho chính nó. Trong một số trường hợp, sự cân bằng này là mong muốn, và nhiều ứng dụng có thể trực giác biết, dựa trên dữ liệu được trình bày, phiên bản sử dụng và phiên bản nào để loại bỏ.
Chỉ mục thứ hai
Chỉ mục thứ cấp là các chỉ mục về dữ liệu cụ thể trong một giá trị. Hầu hết các cửa hàng có giá trị khóa đều để lại lập chỉ mục này cho ứng dụng. Tuy nhiên, Riak là khác nhau, sử dụng một chương trình được gọi là
tài liệu - dựa trên phân vùng cho phép lập chỉ mục thứ cấp. Phân vùng dựa trên tài liệu giả định rằng bạn đang viết các cấu trúc JSON vào cơ sở dữ liệu Riak. Sau đó, bạn có thể thiết lập chỉ mục cho các thuộc tính được đặt tên cụ thể trong cấu trúc JSON này, như được hiển thị:
{"order-id": 5001, "customer-id": 1429857, "order-date": "2014-09-24 "," Total ": 134. 24}
Nếu bạn có một ứng dụng hiển thị đơn đặt hàng của khách hàng cho tháng trước, thì bạn muốn truy vấn tất cả các bản ghi, như được hiển thị, trong đó id khách hàng là một giá trị cố định (1429857) và ngày đặt hàng nằm trong một phạm vi cụ thể (ngày bắt đầu và kết thúc của tháng).
Trong hầu hết các cửa hàng có giá trị khóa, bạn tạo một nhóm khác có trọng số là số khách hàng và tháng kết hợp và giá trị đó là một danh sách id đơn đặt hàng. Tuy nhiên, trong Riak, bạn chỉ cần thêm một chỉ mục thứ yếu vào cả hai id khách hàng (số nguyên) và ngày đặt hàng (ngày), mà sẽ mất thêm không gian lưu trữ nhưng có lợi thế là minh bạch cho các nhà phát triển ứng dụng.
Các chỉ mục này cũng được cập nhật trực tuyến - có nghĩa là không có sự tụt hậu giữa việc cập nhật giá trị tài liệu trong Riak và các chỉ mục được cập nhật. Việc truy cập trực tiếp vào dữ liệu này khó có thể kéo ra ngoài dường như. Xét cho cùng, nếu các chỉ mục không nhất quán, bạn sẽ không bao giờ tìm thấy dữ liệu được giữ ổn định!
Đánh giá Riak
Basho, một thực thể thương mại đằng sau Riak, cho biết phiên bản sắp tới của nó 2. 0 Cơ sở dữ liệu NoSQL luôn có tính nhất quán mạnh mẽ, một yêu cầu mà các nhà cung cấp NoSQL khác đưa ra. Các yêu cầu bồi thường của nhà cung cấp NoSQL để luôn luôn có tính nhất quán mạnh mẽ cũng giống như tuyên bố là một người ăn chay mạnh … ngoại trừ các ngày chủ nhật khi bạn có thịt bò nướng.
Riak không phải là cơ sở dữ liệu phù hợp với ACID. Cấu hình của nó không thể thay đổi để nó chạy trong chế độ tuân thủ ACID. Khách hàng có thể nhận dữ liệu không nhất quán trong quá trình hoạt động bình thường hoặc trong các phân vùng mạng. Riak có tính nhất quán tuyệt đối để tăng tính sẵn sàng và dung sai phân vùng.
Chạy Riak ở chế độ thống nhất mạnh có nghĩa là bản sao bản đọc của nó được cập nhật đồng thời với trình lưu trữ chính. Điều này liên quan đến cam kết hai pha - về cơ bản, nút chính viết cho các nút khác trước khi nó xác nhận rằng việc ghi hoàn tất.
Tìm kiếm Riak (công cụ tìm kiếm Apache Solr được gắn thương hiệu và tích hợp sử dụng mô hình cập nhật cuối cùng nhất quán) có thể tạo ra sai tích cực khi sử dụng tính nhất quán mạnh mẽ. Tình huống này xảy ra vì dữ liệu có thể được ghi và sau đó giao dịch bị hủy, nhưng dữ liệu vẫn được sử dụng để lập chỉ mục - để lại kết quả tìm kiếm "dương tính" - kết quả không thực sự còn hợp lệ cho truy vấn tìm kiếm.
xác định riêng
để xác định nút nào sẽ trở thành bậc thầy trong các điều kiện chuyển đổi dự phòng. Tuy nhiên, quy trình này không có sẵn, có nghĩa là trong vài giây, có thể trong khi một bản sao mới của quy trình trọng điểm được đưa lên mạng, một nút mới không thể được thêm vào hoặc một thạc sĩ được bầu. Bạn cần phải nhận thức được khả năng này trong điều kiện chuyển đổi dự phòng cao.
-
cấp trong các phiên bản trong tương lai, nó sẽ trở thành một sản phẩm tốt nhất.