neo4j / neo4j-go-driver

Neo4j Bolt Driver for Go
Apache License 2.0
485 stars 68 forks source link

Catching up with TestKit #520

Closed robsdedude closed 1 year ago

robsdedude commented 1 year ago
  1. Add support for routing table specific TestKit messaged (retrieving routing tables and forcing updates)
  2. Improve logging in the TestKit backend (all logs-driver and bolt-got both to stdout and TestKit) for easier debugging
  3. Overhaul how/when the driver drops servers from the cached routing table:
    • Move logic of deactivating servers on failures into the pool. This functionality should not only be present when using transaction functions.
    • Drop writers on certain error codes: Neo.ClientError.Cluster.NotALeader and Neo.ClientError.General.ForbiddenOnReadOnlyDatabase
  4. To simplify the code and avoid deadlocks or inconsistent driver states, both pool and router use blocking locks now. However, they will never perform IO while holding the lock removing the need for lock acquisition timeouts.

Depends on: