Hãy tưởng tượng yêu cầu của bạn là bạn có 3 bảng lớn (dữ liệu có cấu trúc) với khoảng 30 tỷ hàng trong mỗi (tổng kích thước 4TB) và nhiều người dùng đồng thời của bạn (là các luồng os song song trên các máy LAN từ xa) sẽ cần đọc một phần của dữ liệu thông qua các truy vấn TỰ NHIÊN ở đâu và đồng thời rất cao, giả sử 10.000 lần đọc đồng thời và người dùng cũng cần chèn (không cập nhật) dữ liệu vào các bảng này đồng thời giống như 2000 nhà văn đồng thời (trên toàn bộ mạng LAN của trung tâm dữ liệu) . Người dùng sẽ muốn đọc và chèn càng nhanh càng tốt mẫu lưu trữ này trong đó mỗi lần đọc và ghi sẽ xảy ra trong phạm vi ms đến 1 giây.
Những công nghệ nào bạn đề nghị để đáp ứng yêu cầu như vậy? Có bất kỳ lưu trữ dữ liệu hoặc lưu trữ giá trị khóa có thể làm điều này? Đám mây KHÔNG phải là một lựa chọn.
Một số làm rõ:
Người dùng KHÔNG phải xem dữ liệu ngay lập tức và tính nhất quán cuối cùng có thể chấp nhận được. Dữ liệu được truy cập thông qua bất kỳ trình điều khiển nào mà bộ lưu trữ có thể cung cấp và người dùng lại chỉ là các luồng chạy trên các máy từ xa của trung tâm dữ liệu. Các truy vấn chủ yếu giống như CHỌN NHÓM Ở ĐÂU.
Dữ liệu ở định dạng bảng và mỗi hàng khoảng 60 byte.
Không có tùy chọn đám mây nơi tôi không thể sử dụng DynamoDB hoặc các giải pháp tương tự. Tôi phải có khả năng lưu trữ nội bộ trong trung tâm dữ liệu.
Tất cả dữ liệu của các bảng có thể được đọc tất cả thời gian và mô hình sử dụng là không thể đoán trước. Không có tham gia hoặc truy vấn siêu dài. Không cần DR nhưng cần có HA hợp lý nhưng không cần phải cầu kỳ. Mỗi người đọc đang nhận được một loạt các hàng dựa trên mệnh đề where và các hàng không thực sự liên quan. Chúng tôi có thể có chiều dài cố định cho mỗi hàng nhưng tôi hy vọng lớp lưu trữ sẽ lo lắng về nó.
Ngoài ra, mối quan tâm lớn nhất của tôi là tất cả những bài viết đồng thời đang xảy ra với các lần đọc đồng thời.
Những hiểu biết của bạn về điều này được đánh giá cao.
Và hơn nữa, tôi có ba trong số các bảng đó với mỗi 30 tỷ hàng chứa các loại đối tượng khác nhau