Skip to content
/ dbpack Public

A db proxy for distributed transaction, read write splitting and sharding! Support any language! It can be deployed as a sidecar in a pod.

License

Notifications You must be signed in to change notification settings

CECTC/dbpack

Folders and files

NameName
Last commit message
Last commit date
Dec 17, 2024
Sep 16, 2022
May 11, 2022
Dec 30, 2024
Dec 30, 2024
Jan 4, 2023
Dec 12, 2022
Dec 10, 2022
May 9, 2022
May 17, 2022
Apr 21, 2022
Apr 19, 2022
Jun 11, 2022
Dec 23, 2022
Apr 28, 2022
Apr 21, 2022
Apr 18, 2022
Dec 11, 2023
Apr 28, 2022
Dec 30, 2024
Dec 30, 2024
Jul 29, 2022

Repository files navigation

DBPack

LICENSE GitHub Workflow Status Go Report Card codecov GitHub Release Docker Pulls

dbpack.svg

DBPack is a database proxy pack aims to provide a distributed transaction solution of high performance and has no invasion into business logic. It can be deployed as a sidecar in a pod, which can shield complex basic logic, so that business development does not need to rely on a specific SDK, simplifying the development process and improving development efficiency. It supports any programming language and is easy to use.

Feature

  • support MYSQL protocol.
  • event driven distributed transaction solution inspired by kubernetes.
  • support read write splitting and custom SQL routing via Hint.
  • support audit log and SQL tracing.
  • sharding: support query on sharded table, support order by and limit.
  • sharding: support insert, delete, update on sharded tables.
  • can be deployed as a sidecar,support any programming language.
  • more features on the road.

Metrics

using prometheus metrics, default metric server runs at :18888

Getting Started

Requirements

  • Go >= 1.17
  • MYSQL >= 5.7+

Contribution Guide

Architecture

architecture

  • Listener: responsible for parsing the SQL protocol.
  • Executor: responsible for forwarding SQL requests to the backend physical DB.
  • Filter: responsible for metrics statistics, SQL interception, encryption and decryption of sensitive information, etc.
  • ConnectionFilter: process the intercepted SQL on the connection.

Stargazers

Stargazers repo roster for cectc/dbpack

License

DBPack is licensed under the Apache License, Version 2.0.