Was ist primäres und sekundäres Clustering in Hash?

8

Ich bin in den letzten paar Tagen verwirrt, als ich den Unterschied zwischen primärem und sekundärem Clustering im Hash-Kollisionsmanagement-Thema in dem Lehrbuch, das ich gerade lese, gefunden habe.

    
Rickx 02.01.2015, 12:32
quelle

2 Antworten

8

Primäres Clustering bedeutet, dass die Clustergröße zunimmt, wenn ein Cluster vorhanden ist und die Anfangsposition eines neuen Datensatzes irgendwo im Cluster liegt. Lineares Sondieren führt zu dieser Art von Clusterbildung.

Das sekundäre Clustering ist weniger streng, zwei Datensätze haben nur dieselbe Kollisionskette, wenn ihre Anfangsposition die gleiche ist. Zum Beispiel führt quadratisches Sondieren zu dieser Art von Clusterbildung.

    
Henry 02.01.2015, 21:23
quelle
31

Ich habe darüber geforscht und möchte einige Anmerkungen teilen:

  1. Primäres Clustering ist die Tendenz eines Kollisionsauflösungsschemas wie lineares Sondieren, um lange Runs von gefüllten Slots zu erstellen nahe die Hash-Position von Schlüsseln.
  2. Wenn der primäre Hash-Index x ist, werden nachfolgende Tests zu x+1 , x+2 , x+3 und so weiter, dies führt zu einem primären Clustering.
  3. Sobald der primäre Cluster gebildet ist, wird der Cluster umso größer, je größer er wird schneller wächst es. Und es reduziert die Leistung.

  1. Sekundäres Clustering ist die Tendenz für ein Kollisionsauflösungsschema, z. B. quadratisches Sondieren, um lange Reihen gefüllter Slots zu erstellen weg von der Hash-Position der Schlüssel.
  2. Wenn der primäre Hash-Index x ist, gehen die Tests zu x+1 , x+4 , x+9 , x+16, x+25 und so weiter, dies führt zu sekundärer Clusterbildung.
  3. Sekundäres Clustering ist in Bezug auf den Leistungseinbruch weniger schwerwiegend als primäres Clustering und ist ein Versuchen Sie, Cluster mithilfe von Quadratic Probing nicht zu bilden. Die Idee besteht darin, weiter getrennte Zellen anstelle von solchen zu untersuchen neben der primären Hash-Site.

    
Yogesh Umesh Vaity 10.04.2016 07:10
quelle