Sau vài năm sống trong không gian "NoQuery", bây giờ tôi có một vấn đề khá "quan hệ" về bản chất. Hôm nay tôi thấy các cửa hàng dữ liệu với đôi mắt khá khác so với trước đây. Những điều như Riak đã làm hỏng tôi theo cách mà tôi không thể chịu đựng được những điểm thất bại duy nhất, "xuống bảo trì", v.v ... Tất nhiên, (hoặc tôi hy vọng), tôi không hoàn toàn mất đi sự tỉnh táo của mình. Đây là một dự án cá nhân không hoàn toàn (hoặc chưa) có yêu cầu rất cao.
Hầu hết các giải pháp bảo vệ không cung cấp cho tôi những gì tôi muốn (ít nhất là trong nháy mắt), có lẽ vì vấn đề của tôi khá "dễ" để giải quyết. Ít nhất là ở cấp độ khái niệm (bỏ qua các hạn chế mà chính RDBM mang đến cho bảng).
Tôi có một lượng nhỏ dữ liệu "chia sẻ", có thể được sao chép tự do. Nó không có yêu cầu về tính nhất quán cứng. Điều này có thể được lưu trữ trong một cơ sở dữ liệu giống như máy phát điện và sẽ mở rộng vô hạn. Nhưng tôi vẫn muốn đi với một cơ sở dữ liệu duy nhất nếu có thể.
Tôi có rất nhiều dữ liệu "theo người dùng". Đó là - rất nhiều người dùng, với mỗi người dùng có dữ liệu có kích thước hoàn toàn hợp lý, thực sự phù hợp để được lưu trữ trên một nút PostgreQuery duy nhất. Chúng tôi đang nói về tối đa 10 ngàn hồ sơ.
Tôi không bao giờ cần truy vấn người dùng chéo và tôi không cần nguyên tử người dùng chéo.
Điều này nghe có vẻ cực kỳ dễ dàng để đạt được. Ít nhất là khi tôi đang nhìn nó với "đôi mắt NoQuery" của mình.
Dưới đây là những ý tưởng khởi đầu ngây thơ của tôi:
Ở cực kỳ, tôi chỉ có thể tuần tự hóa toàn bộ người dùng dưới dạng một Khóa / Giá trị duy nhất trong Rịa. Tất nhiên, việc hủy / tuần tự hóa liên tục một vài megabyte dữ liệu sẽ chậm và đó là lý do tại sao tôi đang cân nhắc sử dụng PostgreQuery. Rất nhiều Rịak K / Vs là không có, vì tôi cần tính nguyên tử / giao dịch trong dữ liệu của mỗi người dùng.
Tôi có thể sử dụng cơ sở dữ liệu SQLite cho mỗi người dùng và sử dụng một cái gì đó như GlusterFS để dự phòng / sẵn có. Đây có lẽ là giải pháp tôi sẽ chọn nếu tôi không thể tìm thấy thứ gì đó tốt như nhau khi sử dụng PostgreSQL. Ưu điểm: Có thể giảm / tăng quy mô thực sự tốt; Nhược điểm: Tôi muốn có các loại và mức độ nghiêm ngặt của PostgreSQL đối với SQLite
Vì vậy, những gì tôi lý tưởng sẽ yêu cầu từ một giải pháp ngăn chặn PostgreSQL:
- Tự động giữ một vài bản sao của mọi dữ liệu của người dùng (trên các máy khác nhau). Có thể tự động chuyển đổi nút chủ trên mỗi người dùng / phân đoạn (nếu chủ trước đó bị hỏng).
- Có thể tự động tăng / giảm tỷ lệ, bằng cách thêm / xóa các nút máy chủ. Chủ yếu là giống như Rịa có thể làm.
- Không yêu cầu ứng dụng của tôi biết nút nào để nói chuyện và khi nào.