Product Promotion
0x5a.live
for different kinds of informations and explorations.
GitHub - wesql/wescale: WeScale is a Modern MySQL proxy that supports read-write-split, read-after-write-consistency, load balancing and OnlineDDL.
WeScale is a Modern MySQL proxy that supports read-write-split, read-after-write-consistency, load balancing and OnlineDDL. - wesql/wescale
Visit SiteGitHub - wesql/wescale: WeScale is a Modern MySQL proxy that supports read-write-split, read-after-write-consistency, load balancing and OnlineDDL.
WeScale is a Modern MySQL proxy that supports read-write-split, read-after-write-consistency, load balancing and OnlineDDL. - wesql/wescale
Powered by 0x5a.live ๐
WeScale is a database proxy designed to enhance the scalability, performance, security, and resilience of your applications. By managing connections, read-write-split, read-after-write-consistency, load balancing, WeScale offers a valuable tool for developers and database administrators.
Getting Started
- To Get Started On Your Local Machine with WeScale, simply clone the repository and follow the installation instructions provided in the documentation.
- To Deploy WeScale on Kubernetes, you can use the powerful Kubeblocks Operator to quickly launch a WeScale cluster in a Kubernetes cluster. We recommend this method for production environments.
Getting Started with Docker
To Start WeScale with Docker, you can simply run the following command:
docker network create wescale-network
docker run -itd --network wescale-network --name mysql-server \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=passwd \
-e MYSQL_ROOT_HOST=% \
-e MYSQL_LOG_CONSOLE=true \
mysql/mysql-server:8.0.32 \
--bind-address=0.0.0.0 \
--port=3306 \
--log-bin=binlog \
--gtid_mode=ON \
--enforce_gtid_consistency=ON \
--log_replica_updates=ON \
--binlog_format=ROW
docker run -itd --network wescale-network --name wescale \
-p 15306:15306 \
-w /vt/examples/wesql-server \
-e MYSQL_ROOT_USER=root \
-e MYSQL_ROOT_PASSWORD=passwd \
-e MYSQL_PORT=3306 \
-e MYSQL_HOST=mysql-server \
apecloud/apecloud-mysql-scale:0.3.7 \
/vt/examples/wesql-server/init_single_node_cluster.sh
Now you can connect to WeScale and the original MySQL server:
# Connect to WeScale
mysql -h127.0.0.1 -uroot -ppasswd -P15306
# You can still connect to the original MySQL server
mysql -h127.0.0.1 -uroot -ppasswd -P3306
Clean up the containers:
docker rm -f mysql-server wescale
docker network rm wescale-network
Blogs
- Introduction To WeScale.md
- Dive into Read-Write-Splitting of WeScale.md
- Performance Comparison WeScale vs MySQL.md
- Execution Process of DROP TABLE in OnlineDDL Mode.md
Documentation
- Deploy & Debug.md
- Architecture.md
- Life of A Query.md
- Read-Write-Split & LoadBalancer.md
- Read-After-Write-Consistency.md
- Transparent Failover.md
- Authentication & Authorization.md
- OnlineDDL User Guide
- Branch Tutorial
- Non-Transactional DML
- Show Tablets Query Plans
- Filters
- Write a Wasm Plugin In WeScale
Developer
Features
Connection Management: WeScale efficiently manages connections to your database, reducing the overhead on your application and improving performance. WeScale relieves you of the worry of the max_connection problem in your database.
Read Write Split: WeScale simplify application logic by automatically routing read queries to read-only nodes and write queries to the primary node. This is achieved by parsing and analyzing SQL statements, which ensures efficient use of available resources.
Read After Write Consistency: When an application writes data to the primary node and subsequently reads it on a read-only node, WeScale makes sure that the data that was just written to the primary node can be accessed and read from the read-only node.
Load Balancing: The proxy intelligently routes queries to the appropriate read-only nodes using various load balancing policies. This ensures that the workload is evenly distributed across all available nodes, optimizing performance and resource utilization
Transparent Failover: WeScale is capable of automatically detecting failovers and buffering application SQL in its memory while keeping application connections intact, thus enhancing application resilience in the event of database failures.
Contributing
We welcome contributions to WeScale! If you have any ideas, bug reports, or feature requests, please feel free to open an issue or submit a pull request.
License
WeScale is released under the Apache 2.0 License.
Acknowledgements
WeScale is a fork of the Vitess project, which is a database clustering system for horizontal scaling of MySQL. We would like to thank the Vitess team for their hard work.
GoLang Resources
are all listed below.
Made with โค๏ธ
to provide different kinds of informations and resources.