databendlabs / databend-jdbc

jdbc implementation for databend cloud
Apache License 2.0
10 stars 10 forks source link

RFC: multiple endpoint support for databend jdbc #250

Closed ZhiHanZ closed 1 month ago

ZhiHanZ commented 1 month ago

Background

Databend currently supports MPP clustering for complex analytic query workloads. While existing load balancing solutions are available through closed-source gateways or Kubernetes-based approaches, implementing client-side load balancing in Databend drivers can simplify deployment and improve query distribution across cluster nodes.

Objectives

Design Overview

JDBC Connection String Format

assume host1:port1,host2:port2,host3:port3 are 3 different databend query node in the same cluster. databend:///username:password@host1:port1,host2:port2,host3:port3/database

Implementation

Connection Management

Roadmap

  1. Implement multiple endpoint support for databend jdbc
  2. Implement failover support for databend jdbc
  3. Implement client side load balancing for databend-go, bendsql and python driver.