A New Hash Table

3 points by avinassh 3 months ago | 2 comments
  • vvern 3 months ago
    Literally all three of their required features which were not “standard” for swiss tables were requirements for the go implementation. See https://go.dev/blog/swisstable for a nice post on that project.
    • avinassh 3 months ago
      Go also had one more requirement:

      Many hash table designs, including Abseil’s Swiss Tables, forbid modifying the map during iteration. The Go language spec explicitly allows modifications during iteration, with the following semantics:

      - If an entry is deleted before it is reached, it will not be produced.

      - If an entry is updated before it is reached, the updated value will be produced.

      - If a new entry is added, it may or may not be produced.

      which I don't think was needed for valkey