Ich versuche, ein Datenmodell zu entwerfen, die eine sehr große Menge an Daten aufnehmen können, haben jemand mit Erfahrung in großen Datenmengen über jedes Feedback zu diesem Thema, das heißt:Transaktionen über sehr sehr große Entitätsgruppe
// 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;
}
Basierend auf dem, was ich gelesen habe, ist die einzige Möglichkeit, transaktionale Integrität beim Einfügen eines Transaction
und Aktualisieren balance
erhalten, es zu einer Entitätsgruppe zu machen.
Allerdings würde es im Laufe der Zeit Millionen von Transaktionen für eine bestimmte TransactionAccount
. Die Anzahl der Schreibvorgänge in dieser Entitätsgruppe wäre niedrig, aber die Lesevorgänge wären viel höher.
Ich weiß, es könnte möglicherweise sharded, aber das Lesen der balance
ist eine sehr häufige Operation, und sharding es würde eine der häufigsten Operationen machen getBalance()
die langsamste Operation.
Es gibt eine [Follow-up-Frage] (http://stackoverflow.com/questions/3342603/how-do-you-propery-add-manipulate-thousands-of-children-in-entity-group) diskutieren [wie man verwaltet] (http://stackoverflow.com/questions/3342603/how-do-you-propery-add-manipulate-thousands-of-children-in-antitity-group) eine Entitätsgruppe mit Zehnen von Tausenden von Kinderobjekten. – Jacob