jw/doristemp#4457
Conversation
josephwoodward
commented
May 26, 2026
- doris: add stream load output
- doris: go mod tidy
- doris: updating docs
|
Commits
Review Solid new output for Apache Doris Stream Load with FE→BE redirect handling, label-based idempotency, optional query-port reachability check, multi-FE failover, and good unit-test coverage of the HTTP behavior.
|
|
Commits
Review LGTM |
5edda9e to
6da3f4e
Compare
6da3f4e to
e7adc1a
Compare
| cfg.Timeout = 5 * time.Second | ||
| cfg.ReadTimeout = 5 * time.Second | ||
| cfg.WriteTimeout = 5 * time.Second | ||
|
|
||
| db, err := sql.Open("mysql", cfg.FormatDSN()) | ||
| if err != nil { | ||
| return fmt.Errorf("opening Doris query_port connection to %s:%d: %w", host, queryPort, err) | ||
| } | ||
| defer db.Close() | ||
|
|
||
| qctx, cancel := context.WithTimeout(ctx, 5*time.Second) | ||
| defer cancel() | ||
|
|
||
| if err := db.PingContext(qctx); err != nil { | ||
| return fmt.Errorf("pinging Doris query_port %s:%d: %w", host, queryPort, err) | ||
| } | ||
|
|
There was a problem hiding this comment.
Hardcoded timeouts in connectionCheck. The MySQL driver Dial/Read/Write timeouts and the context.WithTimeout deadline are all hardcoded to 5 * time.Second, while the component already exposes a configurable timeout field (dsFieldTimeout, d.conf.Timeout).
Per the project Go patterns in .claude/agents/godev.md:
Configurable Time Parameters: Every time-related value (timeouts, backoffs, intervals, retry delays) must be exposed as a YAML-configurable field. Do not hardcode durations.
Either reuse d.conf.Timeout here (consistent with the HTTP client) or add a dedicated configurable field (e.g. query_port_timeout).
|
Commits
Review The new
|
| cfg.Timeout = 5 * time.Second | ||
| cfg.ReadTimeout = 5 * time.Second | ||
| cfg.WriteTimeout = 5 * time.Second | ||
|
|
||
| db, err := sql.Open("mysql", cfg.FormatDSN()) | ||
| if err != nil { | ||
| return fmt.Errorf("opening Doris query_port connection to %s:%d: %w", host, queryPort, err) | ||
| } | ||
| defer db.Close() | ||
|
|
||
| qctx, cancel := context.WithTimeout(ctx, 5*time.Second) | ||
| defer cancel() | ||
|
|
||
| if err := db.PingContext(qctx); err != nil { | ||
| return fmt.Errorf("pinging Doris query_port %s:%d: %w", host, queryPort, err) | ||
| } | ||
|
|
There was a problem hiding this comment.
Hardcoded timeouts in connectionCheck. The MySQL driver Dial/Read/Write timeouts and the context.WithTimeout deadline are all hardcoded to 5 * time.Second, while the component already exposes a configurable timeout field (dsFieldTimeout, d.conf.Timeout).
Per the project Go patterns in .claude/agents/godev.md:
Configurable Time Parameters: Every time-related value (timeouts, backoffs, intervals, retry delays) must be exposed as a YAML-configurable field. Do not hardcode durations.
Either reuse d.conf.Timeout here (consistent with the HTTP client) or add a dedicated configurable field (e.g. query_port_timeout).
|
Commits
Review New LGTM |