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]

Reply via email to