Closed killme2008 closed 1 week ago
[!WARNING]
Rate limit exceeded
@killme2008 has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 46 minutes and 59 seconds before requesting another review.
How to resolve this issue?
After the wait time has elapsed, a review can be triggered using the `@coderabbitai review` command as a PR comment. Alternatively, push new commits to this PR. We recommend that you space out your commits to avoid hitting the rate limit.How do rate limits work?
CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our [FAQ](https://coderabbit.ai/docs/faq) for further information.Commits
Files that changed from the base of the PR and between f58ed88b72b6a71342d765a7ace2ce09afaed536 and 4cbb4c85f54aeeb4f61dcc226e3504da01bdb3d1.
The changes introduce a function resolve_addr
to handle hostname and port resolution for network addresses. This affects the HeartbeatTask
struct in datanode and frontend by using peer_addr
instead of server_addr
. Configuration files are updated to clarify the usage of hostnames for the gRPC server, enhancing documentation and code reliability. Code cleanliness is improved by removing redundant functions and test cases.
File Path | Change Summary |
---|---|
src/datanode/src/heartbeat.rs | Renamed server_addr to peer_addr , used resolve_addr for address resolution, and removed redundant resolve_addr function along with its test cases. |
src/frontend/src/heartbeat.rs | Similar updates to heartbeat.rs as in datanode, with peer_addr and resolve_addr usages. |
src/servers/src/addrs.rs | Introduced resolve_addr function and added tests for address resolution logic. |
src/servers/src/lib.rs | Added the new addrs module to the public scope for use in the project. |
config/datanode.example.toml | Updated comments to clarify the hostname field’s purpose for the gRPC server in the configuration file. |
config/frontend.example.toml | Added a new hostname field in the [grpc] section for specifying external host connections and advertisement to metasrv. |
config/config.md | Clarified the grpc.hostname configuration parameter with additional notes on its purpose and usage. |
sequenceDiagram
participant Client
participant Datanode
participant Frontend
participant Servers as Servers::Addrs
Client->>+Datanode: Sends request with server name
Datanode->>+Servers: Resolve address using `resolve_addr`
Servers-->>-Datanode: Returns `peer_addr`
Datanode->>Frontend: Communicates with `peer_addr`
Frontend->>Frontend: Uses resolved address
Frontend-->>Client: Response with resolved peer information
In code’s vast land, a task arose,
With addresses both near and far, they chose.
From server to peer, the change was born,
To resolve with grace each early morn.
Now networks link with clearer sight,
A seamless dance from day to night.
🐇✨
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
Attention: Patch coverage is 93.54839%
with 2 lines
in your changes missing coverage. Please review.
Project coverage is 84.56%. Comparing base (
cdd4baf
) to head (4cbb4c8
). Report is 13 commits behind head on main.
We should remove the port part when displaying
peer_addr
in cluster_info table, because those port serves different purpose, it's meaningless to list them in the same context.
As I said in https://github.com/GreptimeTeam/greptimedb/issues/4186#issuecomment-2187329797
I think using gRPC is good currently, and the gRPC is the main communication between nodes, it's part of cluster-info.
Flow's heartbeat task also need to do the same thing: https://github.com/GreptimeTeam/greptimedb/blob/a44fe627ce6a16b703756e4ffb7e48559062b079/src/flow/src/heartbeat.rs#L38
@zyy17 In our operator, we will need to pass hostname argument to frontend after this patch merged.
@fengjiachun @sunng87 @v0y4g3r Please take another look.
Flow's heartbeat task also need to do the same thing:
Another heartbeat task, it is for flow engine. @killme2008
Flow's heartbeat task also need to do the same thing: https://github.com/GreptimeTeam/greptimedb/blob/a44fe627ce6a16b703756e4ffb7e48559062b079/src/flow/src/heartbeat.rs#L38
Another heartbeat task, it is for flow engine. @killme2008
Fixed
I hereby agree to the terms of the GreptimeDB CLA.
Refer to a related PR or issue link (optional)
4186
What's changed and what's your intention?
Fixed the wrong peer address that frontend registers.
Checklist
Summary by CodeRabbit
New Features
grpc.hostname
to improve clarity and understanding of its usage for external connections.Improvements
hostname
field for gRPC servers, enhancing documentation for end-users.Refactor
server_addr
topeer_addr
in heartbeat components for consistency.