zhangyue1818 commented on code in PR #1357: URL: https://github.com/apache/cloudberry/pull/1357#discussion_r2447445598
########## contrib/udp2/README.md: ########## @@ -0,0 +1,247 @@ +<!-- + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. +--> + +# UDP2 Interconnect Protocol Implementation + +## Project Background + +UDP2 is a next-generation interconnect protocol implementation based on the original UDP protocol, located in the `contrib/udp2` directory. In CloudBerry Database, the interconnect is responsible for data transmission and synchronization between nodes, serving as a core component for distributed query execution. + +Currently, the database supports three interconnect protocol implementations: +- **TCP** (`contrib/interconnect/tcp`) - Reliable transmission based on TCP protocol +- **UDP** (`contrib/interconnect/udp`) - High-performance transmission based on UDP protocol +- **Proxy** (`contrib/interconnect/proxy`) - Proxy-based transmission + +UDP2 is an architectural refactoring based on the original UDP protocol implementation, aimed at achieving complete separation between interconnect and the database kernel. + +## Project Goals + +The core objectives of the UDP2 protocol implementation are: + +1. **Architecture Decoupling**: Completely separate the interconnect protocol implementation from the database kernel, enabling independent development and evolution +2. **Independent Testing**: Enable end-to-end functional and performance testing of interconnect without depending on the database kernel +3. **Rapid Diagnosis**: Quickly identify whether issues are at the interconnect level or database kernel level +4. **Modular Design**: Provide clear interface boundaries for easier extension and maintenance Review Comment: The most significant difference is that UDP2 is a complete architectural refactoring that achieves separation of concerns between the interconnect protocol and the database kernel. While the original UDP implementation is tightly integrated with PostgreSQL internals, UDP2 provides a modular design that enables independent development, testing, and maintenance of the interconnect layer. This architectural change makes UDP2 more maintainable, testable, and allows for easier debugging and performance optimization of the interconnect layer without affecting the database kernel. -- 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]
