Tôi cố gắng để thiết kế một mô hình dữ liệu mà có thể tổ chức một số lượng rất lớn dữ liệu, không ai có kinh nghiệm trong khối lượng lớn dữ liệu có bất kỳ thông tin phản hồi về vấn đề này, ví dụ:Giao dịch trên nhóm đối tượng rất rất lớn
// example only, not meant to compile
public class TransactionAccount {
private long balance;
private List<Transaction> transactions = new ArrayList<Transaction>();
....
public long getBalance() { return balance; }
}
private class Transaction {
public Date date;
public long amount;
}
Dựa trên những gì tôi đã đọc, cách duy nhất để có được tính toàn vẹn giao dịch khi chèn Transaction
và cập nhật balance
là biến nó thành một nhóm thực thể.
Tuy nhiên theo thời gian sẽ có hàng triệu giao dịch cho một số TransactionAccount
cụ thể. Số lượng ghi cho nhóm thực thể này sẽ thấp, nhưng số lần đọc sẽ cao hơn nhiều.
Tôi biết nó có thể bị hỏng, tuy nhiên việc đọc balance
là một hoạt động rất thường xuyên, và sharding nó sẽ làm cho một trong những hoạt động phổ biến nhất getBalance()
hoạt động chậm nhất.
Có [câu hỏi tiếp theo] (http://stackoverflow.com/questions/3342603/how-do-you-propery-add-manipulate-thousands-of-children-in-an-entity-group) thảo luận [cách quản lý] (http://stackoverflow.com/questions/3342603/how-do-you-propery-add-manipulate-thousands-of-children-in-an-entity-group) một nhóm thực thể với hàng chục của hàng ngàn đối tượng trẻ em. – Jacob