xiaobaicai66695 opened a new pull request, #3602: URL: https://github.com/apache/dubbo-go/pull/3602
## What does this PR do? - Replaces the serial per-revision ZooKeeper Get loop with a bounded 16-worker read pipeline. - Preserves child ordering and the existing behavior of skipping revisions removed between Children and Get. - Documents why Multi is not used: the current dubbogo/go-zookeeper client only supports write/check operations in Multi. ZooKeeper still requires one data request per child with the current client API, but concurrent calls are pipelined over the shared connection. This removes the N-times-RTT critical path while the concurrency cap avoids flooding ZooKeeper when an app has many revisions. Closes #3571. ## Tests - go test -race ./metadata/report/zookeeper - go test ./metadata/report/... - go test ./metadata/... ./registry/servicediscovery/... - go test ./metadata/report/zookeeper -run TestListAppRevisions -count=50 - go vet ./metadata/report/zookeeper ./metadata/report/... The new tests prove that reads overlap, never exceed the 16-request limit, return all revision timestamps, and continue to skip a revision that disappears during the read. A full go test ./... run also reached the changed packages successfully. Its unrelated environment-dependent failures were filter/accesslog expecting /tmp on Windows, remoting/etcdv3 depending on local port 2379 state, and remoting/getty being unable to bind port 20060. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
