bitwalker / bitwalker/libgraph

Duplicate vertex ids when adding high number of vertices

Offen
#44 12 Kommentare 9 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
Vorherrschende Sprache
Elixir
Sterne
571
Forks
76
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

When adding large number of vertices, some of my vertices weren't added to the graph.

For example
```
vertices = 0..250000 |> Enum.map(& &1)
Graph.add_vertices(Graph.new, vertices)
#Graph
```

I fixed it for myself by changing the function `Graph.Utils.vertex_id(v)` to
``` def vertex_id(v), do: v```
instead of
``` def vertex_id(v), do: :erlang.phash2(v, @max_phash)```

Apparently I had duplicate key in my graph otherwise.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Rechercherichtung

Beginne damit, das Beispiel mit Graph.add_vertices(Graph.new, 0..250000) zu reproduzieren, und untersuche Graph.Utils.vertex_id/1, insbesondere dessen Verwendung von :erlang.phash2. Bestätige, wie sich doppelte Vertex-IDs auf das Einfügen auswirken. Erledigt ist dies, wenn das Hinzufügen des Beispielbereichs alle 250001 Vertices ohne doppelte Schlüssel beibehält.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
elixir
Bereich
data
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
48/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.