Ich evaluiere Terracotta, um eine Anwendung zu skalieren, die derzeit an den RAM-Speicher gebunden ist. Es handelt sich um einen kollaborativen Filter, der etwa 2 Kilobyte Daten pro Benutzer speichert. Ich möchte Amazons EC2 nutzen, was bedeutet, dass ich auf 14 GB RAM beschränkt bin, was mir eine effektive Obergrenze von etwa 7 Millionen Benutzern pro Server gibt. Ich muss in der Lage sein, darüber hinaus zu skalieren.
Nach dem, was ich bisher gelesen habe, kann Terracotta einen geclusterten Heap haben, der größer ist als der verfügbare RAM auf jedem Server. Wäre es praktikabel, einen effektiven Cluster-Heap von 30 GB oder mehr zu haben, wenn jeder der Server nur 14 GB unterstützt?
Die Daten pro Benutzer (bei denen es sich größtenteils um Float-Arrays handelt) ändern sich sehr häufig, möglicherweise Hunderttausende Male pro Minute. Es ist nicht notwendig, dass jede einzelne dieser Änderungen in dem Moment, in dem sie auftritt, mit anderen Knoten im Cluster synchronisiert wird. Ist es möglich, nur einige Objektfelder in regelmäßigen Abständen zu synchronisieren?