Design Philosophy: Database Plus #
Database Plus is a design philosophy that aims to build standards and ecosystems on top of databases, complementing the capabilities that databases lack. Its relationship with Apache ShardingSphere and SphereEx-DBPlusEngine is as follows:
- Database Plus: The design philosophy of ShardingSphere;
- ShardingSphere: The engineering implementation of Database Plus;
- SphereEx-DBPlusEngine: An enhanced product for enterprise users based on ShardingSphere.
As a guiding concept for creating a distributed database system, Database Plus establishes new connections on top of databases that are already showing fragmentation trends. This process will provide data enhancement services such as distribution, data control, and traffic control at the upper layer of the database without invading the upper-layer applications. The storage layer retains the original database technology stack for users, with no changes in stability, compatibility, and operation habits, and a better reliability guarantee. This way, applications only need to communicate with the standard service layer without worrying about the differences and capabilities between underlying databases, forming a closed-loop ecosystem.
The three core features of Database Plus are connect, enhance, and pluggability. From “point” to “line”, and finally forming an ecosystem.
Connect: Create standards for the upper layer of databases
Connect is the basic “point” of Database Plus’s capabilities. It provides a unified database entry for application systems in the form of a “database gateway”, providing an intermediate layer that can adapt to various database SQL dialects and access protocols. Database Plus parses SQL into AST (abstract syntax tree) according to other database dialect rules to regenerate SQL. It can shield heterogeneous database dialect differences as well as heterogeneous development language differences in business scenarios. Upward, it supports multiple development languages with standard database protocols, which can achieve smooth use without impacting applications. Downward, it supports multiple database products that meet both northward multiple development languages and southward multiple database products. Currently supported database protocols are MySQL, PostgreSQL, openGauss, etc., as well as MySQL, PostgreSQL, openGauss, SQL Server, Oracle, and all SQL dialects that support SQL92 standard.
Enhance: Database computing enhancement engine
Based on the connection “point”, it can be further extended to this enhancement function “line”. Traditional database practice is the essence of time and multi-scenario precipitation. Based on reusing the storage and native computing capabilities of databases, Database Plus further breaks through its computing power, capacity, and functionality. When traffic enters the gateway, Database Plus enhances its capabilities globally in three aspects: distribution, data control, and traffic control through globalized capabilities. Data sharding, elastic scaling, high availability, read/write splitting, distributed transactions, and heterogeneous database federation queries based on vertical splitting are all enhancements that Database Plus can provide at a global level for heterogeneous databases, providing them to users in a combined way.
Pluggable: Build a functional ecosystem for databases
Facing users, Database Plus presents itself in the form of a “platform”, that is, the ecosystem platform. We can try to understand this “platform” as a well-known app store, where many plugins are available allowing you to choose the ones you need, to be used alone or in combination, or you can even create your own customized plugins in the app store. Through a pluggable system, Database Plus will be able to truly build a functional ecosystem for databases, unifying heterogeneous database global capabilities under unified management. It is not only oriented to the distribution of centralized databases, but also oriented to the vertical integration of distributed databases At the same time, pluggable features can provide better scalability while also converging, providing what users need. This makes an ecosystem that has no boundaries, with pluggable capabilities.