chúng tôi hiện đang chạy ở rìa tài nguyên với giải pháp dựa trên máy chủ mssql của chúng tôi.
Bây giờ chúng ta có nhiều tùy chọn truyền thống liên quan đến động thái tiếp theo để giải quyết tải:
- mua CPU và IO nhanh hơn
- chia một số khách hàng để tách máy chủ
- di chuyển db đến cụm
Tất cả đều đắt về mặt cấp phép và phần cứng hoặc thời gian. Vì vậy, tôi muốn thêm một tùy chọn khác bằng cách chuyển toàn bộ hệ thống sang một giải pháp có thể mở rộng mà công cụ nosql cassandra hứa hẹn.
Tuy nhiên, tôi không chắc chắn và không có kinh nghiệm với cơ sở dữ liệu noQuery, vì vậy tôi cần hiểu cấu trúc của dữ liệu "không cấu trúc".
Trong ứng dụng của chúng tôi, về cơ bản, chúng tôi lưu trữ dữ liệu được người dùng nhập theo nhiều cách khác nhau dưới dạng danh sách "khóa-giá trị". Có một bảng cha, chứa phần tử đầu (như một Đơn hàng) và có một bảng con với các cặp giá trị khóa bao gồm các nội dung của đơn hàng (như Order_Lines).
Kinh doanh khôn ngoan, Order và OrderLines là một đơn vị. Nhưng do RDBMS, chúng được lưu trữ trong các bảng và phải được nối mọi lúc.
Trong quá trình hoạt động, đôi khi chúng tôi chọn chỉ tải phần trên cùng, nhưng hầu hết thời gian, chúng tôi tải hàng đầu + một số KVP để hiển thị một số thông tin hữu ích.
Ví dụ: trong danh sách tổng quan, chúng tôi hiển thị mã định danh đầu + một số giá trị trong các cột cho mỗi hàng.
CẬP NHẬT: Chúng tôi lưu trữ các hình thức của bất kỳ loại. Vì vậy, về cơ bản chúng tôi lưu trữ "tài liệu". Tuy nhiên, chúng tôi phải chuẩn bị và tìm kiếm thông qua các hình thức này theo bất kỳ giá trị, sắp xếp, v.v. Kiểm soát truy cập dữ liệu thêm một lớp tương tự khác trên cơ sở dữ liệu.
Như bạn có thể đoán, số lượng và tính khả dụng của một số KVP nhất định khác nhau tùy theo đối tượng. Không có khả năng hợp lệ để tạo các bảng đơn lẻ cho từng loại đối tượng vì chúng ta sẽ phải tạo hàng ngàn bảng cho các kết hợp dữ liệu khác nhau.
Loại "Từ điển" như bộ dữ liệu này sẽ được lưu trữ tốt hơn trong cơ sở dữ liệu noQuery? Và chúng ta sẽ có lợi ích hiệu suất từ điều này? Cassandra sẽ mô hình hóa các đầu + KVP này dưới dạng một tập dữ liệu? Nhìn vào trang web cassandra và một số hướng dẫn, tôi có ấn tượng rằng không có quá nhiều sự khác biệt giữa RDBMS và cassandra của chúng tôi về mặt tổ chức dữ liệu - khiến chúng tôi có cùng số lượng tham gia nếu bạn muốn chọn 5 KVP cho một danh sách cho mỗi hàng.
Khai sáng được hoan nghênh, cũng chỉ ra các giấy tờ giải thích các vấn đề là ok.