2016-07-05 20 views
0

Aus verschiedenen Dokumenten über Cassandra geht klar hervor, dass Zeilenschlüssel in ein MD5 konvertiert werden, bevor sie in der Datenbank gespeichert werden.Wird es Cassandra vermeiden, die Zeile MD5 zu berechnen, wenn der Wert bereits ein MD5 ist?

Wenn meine Zeilenschlüssel bereits MD5-Summen sind, gibt es eine Möglichkeit, Cassandra wissen zu lassen und damit zu vermeiden, dass sie das MD5 dieses MD5 berechnet?

P.S. Die Tabelle, über die ich spreche, hat Dateien darin und die Schlüssel sind die MD5-Summen.

Antwort

1

Was Cassandra tatsächlich tut, ist der Partitionsschlüssel basierend auf was der Partitionierer definiert. Der ursprüngliche Partitionierer war MD5, aber moderne Versionen von Cassandra gehen standardmäßig von Murmur3 aus (nicht QUITE murmur3, sondern grundsätzlich murmur3).

In jedem Fall hasht Cassandra den Partitionsschlüssel, weil es keine Möglichkeit gibt, Cassandra wissen zu lassen, dass es bereits ein MD5 ist.

Wenn Sie wirklich das Hashing vermeiden möchten, können Sie bei anderen alternativen Partitionierern aussehen kann (wie byte ordered oder order preserving) oder schreiben Sie Ihre eigenen, die IPartitioner implementiert. Beachten Sie jedoch, dass wenn Sie einen anderen Partitionierer verwenden, dieser für alle Tabellen/Schlüsselbereiche im Cluster verwendet wird.