dbpack

module
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 23, 2022 License: Apache-2.0

README

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

WeChat group

To enter the WeChat discussion group, please scan the QR code below and reply with the code "join the group".

image-20220427091848831

License

DBPack is licensed under the Apache License, Version 2.0.

Directories

Path Synopsis
pkg
dt
log
sql
third_party
cache
Package cache implements a LRU cache.
Package cache implements a LRU cache.
parser/ast
Package ast is the abstract syntax tree parsed from a SQL statement by parser.
Package ast is the abstract syntax tree parsed from a SQL statement by parser.
parser/goyacc
Goyacc is a version of yacc generating Go parsers.
Goyacc is a version of yacc generating Go parsers.
pools
Package pools provides functionality to manage and reuse resources like connections.
Package pools provides functionality to manage and reuse resources like connections.
sync2
Package sync2 provides extra functionality along the same lines as sync.
Package sync2 provides extra functionality along the same lines as sync.
timer
Package timer provides various enhanced timer functions.
Package timer provides various enhanced timer functions.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL