Addendum vote result: 4(binding) +1: Hui Fei, Ayush Saxena, Xiaoqiao He, Shilun Fan 3(non-binding) +1: Zhanghaobo, HuaLong Zhang, Jian Zhang Change to the formal title. Merged to trunk.
Thanks all for your works. Best Regards, - He Xiaoqiao On Thu, Feb 20, 2025 at 11:42 AM jian zhang <keeprom...@apache.org> wrote: > Thanks all, +1 from me too. > > > > There's four binding +1, three non-binding +1, and no -1, > > so, HDFS-17531 will be merged into the trunk shortly. > > > Best Regards, > > - Jian Zhang > > HuaLong Zhang <hualon...@hotmail.com> 于2025年2月17日周一 21:36写道: > >> +1. >> >> Thanks to the developers for the great work. This is a great enhancement >> to the system. >> >> Best regards, >> - Hualong Zhang >> ------------------------------ >> *From:* slfan1989 <slfan1...@apache.org> >> *Sent:* Saturday, February 15, 2025 10:40 >> *To:* jian zhang <keeprom...@apache.org> >> *Cc:* Hdfs-dev <hdfs-dev@hadoop.apache.org>; <priv...@hadoop.apache.org> >> <priv...@hadoop.apache.org>; Xiaoqiao He <hexiaoq...@apache.org>; >> common-...@hadoop.apache.org <common-...@hadoop.apache.org>; Hui Fei < >> feihui.u...@gmail.com>; hfutzhan...@163.com <hfutzhan...@163.com> >> *Subject:* Re: [VOTE] Request to merge branch HDFS-17531 into trunk. >> >> +1 >> >> Best Regards, >> - Shilun Fan >> >> On Fri, Feb 14, 2025 at 3:22 PM jian zhang <keeprom...@apache.org> wrote: >> >> > Hi, all, the development of the asynchronous router functionality has >> been >> > completed. Thanks to all the contributors who participated in this >> feature. >> > The development branch is HDFS-17531, and it is ready to be merged into >> the >> > trunk branch. >> > >> > JIRA: HDFS-17531 https://issues.apache.org/jira/browse/HDFS-17531 >> > PR: https://github.com/apache/hadoop/pull/7308 >> > >> > DISCUSS: >> https://lists.apache.org/thread/02y3dtpfxt21bxjgmyl3kxnv4m1vwz44 >> > >> > Here is the functionality introduction of the asynchronous router for >> > everyone to review: >> > I. Overview >> > >> > The asynchronous router aims to address the performance bottleneck >> > issues of the synchronous router in high - concurrency and multi - >> > nameservices scenarios. By introducing an asynchronous processing >> > mechanism, it optimizes the request handling process, improves the >> system's >> > concurrency ability and resource utilization, and is particularly >> suitable >> > for the federated scenarios where multiple downstream services (NS) >> need to >> > be processed. >> > >> > II. Problems of the Synchronous Router >> > >> > - Performance Bottleneck: The performance of the synchronous router >> is >> > limited by the number of handler threads. Even if the connection thread >> can >> > still forward requests to the downstream namenode, the handler must wait >> > for each request to complete before processing the next one, resulting >> in >> > limited processing capacity. >> > - Thread Resource Waste: To improve performance, increasing the >> number >> > of handler threads will lead to more thread switches, which instead >> reduces >> > the system efficiency. At the same time, a large number of handler >> threads >> > are in a blocked state, wasting thread resources. >> > - Poor Isolation in Multi - ns: If the performance of a certain >> > nameservice in the downstream nameservice is poor, it will cause the >> > handler to wait for a long time, thus affecting the forwarding of >> requests >> > to other normal - performance ns, resulting in a decrease in the overall >> > performance of the downstream ns services perceived by the client. >> > - Ineffective Utilization of Federation Multi - ns Performance: In >> high >> > - concurrency scenarios, a large number of requests may be backlogged in >> > the router's request queue, while the queues of downstream services are >> not >> > fully utilized, leading to unreasonable resource allocation. >> > >> > III. Design and Improvements of the Asynchronous Router >> > >> > The asynchronous router solves the above problems by redesigning the >> > request handling process and introducing an asynchronous processing >> > mechanism. Its core improvements include: >> > >> > - Handler: Retrieves requests from the request queue for preliminary >> > processing. If there are exceptions in the request (such as the mount >> point >> > does not exist, etc.), it directly puts the response into the response >> > queue; otherwise, it sends the request to the asynchronous handler >> thread >> > pool. >> > - Async Handler: Puts the request into the call queue >> > (connection.calls) of the connection thread and returns immediately >> without >> > blocking and waiting. >> > - Async Responder: Is responsible for processing the responses >> received >> > by the connection thread. If the request needs to be re - initiated >> (such >> > as the downstream service returns a standby exception), it re - adds the >> > request to the asynchronous handler thread pool; otherwise, it puts the >> > response into the response queue. >> > - Responder: Retrieves the response from the response queue and >> returns >> > it to the client. >> > >> > IV. Advantages of the Asynchronous Router >> > >> > - High - Concurrency Performance: Through the asynchronous >> processing >> > mechanism, the asynchronous router can handle a large number of requests >> > simultaneously, significantly improving the system's concurrent >> processing >> > ability. >> > - High Resource Utilization: It avoids thread blocking and frequent >> > switching, reduces thread resource waste, and improves the overall >> > efficiency of the system. >> > - Isolation: Different ns are processed by different async handler >> > thread pools, achieving isolation of different downstream services. >> Even if >> > the performance of a certain service is poor, it will not affect the >> > processing ability of other services. >> > >> > V. Summary >> > >> > The asynchronous router solves the performance bottleneck problem of >> > the traditional synchronous router in high - concurrency scenarios by >> > introducing an asynchronous processing mechanism. It not only improves >> the >> > system's concurrency ability and resource utilization but also achieves >> > isolation of downstream services through the queue mechanism, enhancing >> the >> > system's stability and adaptability. In the federated scenarios where >> > multiple downstream services need to be processed, the asynchronous >> router >> > is a more efficient and reliable solution. >> > VI. Performance Testing >> > >> > >> > >> > >> https://docs.google.com/document/d/1meHOCvhm3XRHlIMwvKFidfUSjveTJrb8yAMasrM_HrY/edit?tab=t.0#heading=h.du0zlo2k5sb1 >> > >> > VII. JIRA & RPs >> > >> > For more information, please refer to JIRA: >> > JIRA: RBF: Asynchronous router RPC: >> > https://issues.apache.org/jira/browse/HDFS-17531 >> > PRs: >> > HDFS-17543. [ARR] AsyncUtil makes asynchronous code more concise and >> > easier. >> > HADOOP-19235. IPC client uses CompletableFuture to support >> asynchronous >> > operations. >> > HDFS-17544. [ARR] The router client rpc protocol PB supports >> > asynchrony. >> > HDFS-17545. [ARR] router async rpc client. >> > HDFS-17594. [ARR] RouterCacheAdmin supports asynchronous rpc. >> > HDFS-17597. [ARR] RouterSnapshot supports asynchronous rpc. >> > HDFS-17595. [ARR] ErasureCoding supports asynchronous rpc. >> > HDFS-17601. [ARR] RouterRpcServer supports asynchronous rpc. >> > HDFS-17596. [ARR] RouterStoragePolicy supports asynchronous rpc. >> > HDFS-17656. [ARR] RouterNamenodeProtocol and RouterUserProtocol >> > supports asynchronous rpc. >> > HDFS-17659. [ARR]Router Quota supports asynchronous rpc. >> > HDFS-17672. [ARR] Move asynchronous related classes to the async >> > package. >> > HADOOP-19361. RPC DeferredMetrics bugfix. >> > HDFS-17640.[ARR] RouterClientProtocol supports asynchronous rpc. >> > HDFS-17650. [ARR] The router server-side rpc protocol PB supports >> > asynchrony. >> > HDFS-17651.[ARR] Async handler executor isolation. >> > HDFS-17715. [ARR] Add documentation for asynchronous router. >> > >> >