forked from apache/cloudberry
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use a unicast IP address for interconnection (#9696)
* Use a unicast IP address for interconnection on the primary Currently, interconnect/UDP always binds the wildcard address to the socket, which makes all QEs on the same node share the same port space(up to 64k). For dense deployment, the UDP port could run out, even if there are multiple IP address. To increase the total number of available ports for QEs on a node, we bind a single/unicast IP address to the socket for interconnect/UDP, instead of the wildcard address. So segments with different IP address have different port space. To fully utilize this patch to alleviate running out of port, it's better to assign different ADDRESS(gp_segment_configuration.address) to different segment, although it's not mandatory. Note: QD/mirror uses the primary's address value in gp_segment_configuration as the destination IP to connect to the primary. So the primary returns the ADDRESS as its local address by calling `getsockname()`. * Fix the origin of the source IP address for backends The destination IP address uses the listenerAddr of the parent slice. But the source IP address to bind is difficult. Because it's not stored on the segment, and the slice table is sent to the QEs after they had bound the address and port. The origin of the source IP address for different roles is different: 1. QD : by calling `cdbcomponent_getComponentInfo()` 2. QE on master: by qdHostname dispatched by QD 3. QE on segment: by the local address for QE of the TCP connection
- Loading branch information
1 parent
24f1641
commit 790c7ba
Showing
8 changed files
with
98 additions
and
58 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters