Die Tatsache, dass einige IP-Adressen heißer sind - mehr Lese- oder Schreibvorgänge als andere -, ist normalerweise kein großes Problem und ziemlich üblich. Scylla teilt sie zufällig auf die verschiedenen Knoten (und Kerne auf jedem Knoten) auf. Solange Sie wesentlich mehr Hot-Partitionen als Kerne in Ihrem Cluster haben, sollte die Last - und die Festplattennutzung - ziemlich ausgewogen sein.
In extremen Fällen können sich die Dinge ändern, z. B. wenn bei jedem Update eine Partition vergrößert wird (dh eine Zeile hinzugefügt wird) und nur wenige Partitionen extrem heiß sind. Sie können sich beispielsweise eine Datenbank vorstellen, in der Anforderungen protokolliert werden. Zusätzlich zu einer Million normaler Clients mit 10 Anforderungen pro Tag gibt es 10 "Angreifer", die täglich eine Million Anforderungen stellen. In solchen extremen Fällen können Sie feststellen, dass einige der Knoten erheblich mehr Last und / oder Speicherplatz tragen als andere. Solche extremen Fälle können auch andere Probleme verursachen: Obwohl sich die Unterstützung von Scylla für große Partitionen in letzter Zeit verbessert hat, ist sie immer noch nicht perfekt, und wenn Sie solche extremen Fälle vermeiden können, ist es besser.
Wenn ich schließlich zu Ihrer ursprünglichen Frage zurückkehre: "Ist die Verwendung der IP-Adresse als Primärschlüssel eine gute Vorgehensweise in scylla db?", Lautet die Antwort "Ja, aber":
Es ist "Ja", da Scylla kein spezifisches Problem mit IP-Adressen als Schlüssel hat - es verteilt die verschiedenen IP-Adressen zufällig auf verschiedene Knoten (unter Verwendung der Hash-Funktion "murmur3"), so dass es kein besonderes Problem mit der Tatsache gibt, dass IP-Adressen sich verklumpen zusammen (z. B. werden mehrere Clients aus demselben Subnetz nicht nur an dieselben Clusterknoten gesendet).
Es ist "aber", weil das Problem nicht die IP-Adressen als Schlüssel an sich ist, sondern der Inhalt der Partition, die Sie dafür speichern möchten, und wie verzerrt die Aktualisierungshäufigkeit - und -größe - für die verschiedenen Partitionen ist.
Oh, und noch eine letzte Anmerkung:
Wenn Sie STCS ( Size Tierd Compaction Strategy ) verwenden, kann die maximale Speicherplatznutzung zu einem bestimmten Zeitpunkt erheblich höher sein als die tatsächlich gespeicherte Datenmenge. Wenn Ihre Arbeitslast stark überschrieben wird (Daten werden nicht hinzugefügt, sondern ersetzt, gelöscht usw.), können die Daten auf der Festplatte vor Abschluss der Komprimierung sehr gut doppelt so groß sein wie die tatsächliche Datenmenge. Wenn dies der Fall ist und Sie das System zu einem zufälligen Zeitpunkt inspizieren, werden Sie dies tunBeachten Sie, dass einige Knoten mehr Daten auf der Festplatte haben als andere, abhängig von ihrer zufälligen Position in der Verdichtungsarbeit, wenn Sie diese Messung durchführen. Sie können überprüfen, ob dies der Fall ist, indem Sie auf allen Knoten eine "Hauptverdichtung" aufrufen und dann die Festplattennutzung messen. Dabei wird erwartet, dass die Festplattennutzung über die Knoten hinweg viel einheitlicher ist.