This is an automated email from the ASF dual-hosted git repository.

azexin pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new 62eaa02b063 Fix 2 articles and upload 2 more articles to 
Shardingsphere's Blogs (#24518)
62eaa02b063 is described below

commit 62eaa02b0636de35ddfa6344fe9a26e3d0b088aa
Author: FPokerFace <[email protected]>
AuthorDate: Thu Mar 9 13:59:13 2023 +0800

    Fix 2 articles and upload 2 more articles to Shardingsphere's Blogs (#24518)
    
    * Upload 2 articles to Shardingsphere Blogs
    
    * Update 
2022_11_15_Alibaba_Cloud’s_OpenSergo_&_ShardingSphere_release_database_governance_standard_for_microservices_—_combining_Database_Plus_and_Database_Mesh_concepts.en.md
    
    * Fix 2 articles and upload 2 more articles to Shardingsphere's Blogs
---
 ...Database_Plus_and_Database_Mesh_concepts.en.md" | 211 +++++++++++++++
 ...and_SAML_single_sign-on_thanks_to_Casdoor.en.md |   8 +-
 ...idecar_for_a_true_cloud-native_experience.en.md |  96 +++++++
 ...is_released_new_features_and_improvements.en.md | 291 +++++++++++++++++++++
 ...Sidecar_for_a_true_cloud-native_experience1.png | Bin 0 -> 62138 bytes
 ..._is_released_new_features_and_improvements1.png | Bin 0 -> 244050 bytes
 ..._is_released_new_features_and_improvements2.png | Bin 0 -> 225157 bytes
 7 files changed, 602 insertions(+), 4 deletions(-)

diff --git 
"a/docs/blog/content/material/2022_11_15_Alibaba_Cloud\342\200\231s_OpenSergo_&_ShardingSphere_release_database_governance_standard_for_microservices_-_combining_Database_Plus_and_Database_Mesh_concepts.en.md"
 
"b/docs/blog/content/material/2022_11_15_Alibaba_Cloud\342\200\231s_OpenSergo_&_ShardingSphere_release_database_governance_standard_for_microservices_-_combining_Database_Plus_and_Database_Mesh_concepts.en.md"
new file mode 100644
index 00000000000..1ef67b980d2
--- /dev/null
+++ 
"b/docs/blog/content/material/2022_11_15_Alibaba_Cloud\342\200\231s_OpenSergo_&_ShardingSphere_release_database_governance_standard_for_microservices_-_combining_Database_Plus_and_Database_Mesh_concepts.en.md"
@@ -0,0 +1,211 @@
++++
+title = "Alibaba Cloud's OpenSergo & ShardingSphere release database 
governance standard for microservices - combining Database Plus and Database 
Mesh concepts"
+weight = 79
+chapter = true 
+
++++
+
+# Background
+
+Recently, [Alibaba 
Cloud](https://us.alibabacloud.com/?utm_key=se_1007722888&utm_content=se_1007722888&gclid=Cj0KCQiAyMKbBhD1ARIsANs7rEE71bHtu1aPbMS_E5-awHyWwTtyRn8CfmMU0qD1eH2hKSVEIDxcxaIaAuAVEALw_wcB)'s
 [OpenSergo](https://opensergo.io/) and 
[ShardingSphere](https://shardingsphere.apache.org/) jointly released the 
database governance standard for microservices. By combining the [Database 
Plus](https://medium.com/faun/whats-the-database-plus-concepand-what-challenges-can-it-solve-715920
 [...]
+
+![img](https://shardingsphere.apache.org/blog/img/2022_11_15_Alibaba_Cloud's_OpenSergo_&_ShardingSphere_release_database_governance_standard_for_microservices_—_combining_Database_Plus_and_Database_Mesh_concepts1.png)
+
+***The founders of both communities expressed their opinions concerning the 
collaboration between the ShardingSphere community and the OpenSergo 
community:***
+
+**Zhang Liang, the PMC Chair of the Apache ShardingSphere community:**
+
+In the microservices field, the interaction and collaboration between services 
have been gradually perfected, but there is still no effective standard for 
services to access the database. Being, ShardingSphere has been continuously 
following the **"connect, enhance, and pluggable"** design philosophy. 
"Connect" refers to providing standardized protocols and interfaces, breaking 
the barriers for development languages to access heterogeneous databases. It's 
forward-looking for OpenSergo to [...]
+
+**Zhao Yihao, the founder of the OpenSergo community:**
+
+In microservice governance, in addition to the governance of the microservices 
itself, it is also a critical step to ensure business reliability and 
continuity to deal with microservices' access to databases. As a Top-Level 
project in the database governance field, ShardingSphere has integrated a 
wealth of best practices and technical experience, which complements OpenSergo. 
In this context, we work with the ShardingSphere community to jointly build a 
database governance standard from th [...]
+
+**Note:** database governance in this article includes all aspects of database 
governance in microservice systems. All business information and key data need 
a robust and stable database system as it is the most important state terminal.
+
+# The database is increasingly vital in the microservice system
+
+To meet flexible business requirements, the application architecture can be 
transformed from monolithic to service-oriented and then to 
microservice-oriented. In this case, the database used to store the core data 
becomes the focus of the distributed system.
+
+Enterprises take advantage of microservices to separate services and adopt a 
distributed architecture to achieve loose coupling among multiple services, 
flexible adjustment and combination of services, and high availability of 
systems. In particular, microservices indeed have delivered enormous benefits 
in the face of rapidly changing businesses.
+
+However, after services are separated, their corresponding underlying 
databases should also be separated to ensure the independent deployment of each 
service. In this way, each service can be an independent unit, finally 
achieving the microservices. In this context, the database is becoming 
increasingly complicated:
+
+- The transformation from monolithic to microservice-oriented architecture 
models leads to increasingly complicated services, diversified requirements, 
larger scale infrastructure, complex call relations between services, and 
higher requirements on the underlying database performance.
+- Different transactions usually involve multiple services - but it is a 
challenge to ensure data consistency between services.
+- It is also challenging to query data across multiple services.
+
+With most backend applications, their system performance improvement is mainly 
limited to databases. Particularly in a microservice environment, it is a 
team's top priority to deal with database performance governance. Database 
governance naturally becomes an indispensable part of microservice governance.
+
+In database governance, we now mainly focus on **read/write splitting, 
sharding, shadow databases, database discovery, and distributed transactions**. 
At the same time, how to use databases and the actual database storage nodes 
rely on **the virtual database and database endpoint**.
+
+In response to the above-mentioned problems, OpenSergo and ShardingSphere have 
assimilated the latter's database governance experience and released the 
**database governance standard under microservices**. By doing so, they can 
standardize the database governance method, lower the entry barriers of this 
field, and improve the business applicability of microservices.
+
+# ShardingSphere's strategies on database traffic governance
+
+**1. VirtualDatabase**
+
+In database governance, whether it is read/write splitting, sharding, shadow 
database or encryption, audit, and access control, they all have to act on a 
specific database. Here such a logical database is called a virtual database, 
namely VirtualDatabase.
+
+From the application's viewpoint, VirtualDatabase refers to a set of specific 
database access information, which can achieve governance capability by binding 
corresponding governance strategies.
+
+**2. DatabaseEndpoint**
+
+In database governance, VirtualDatabase declares the logical database 
available to applications, but actually, data storage depends on a physical 
database. Here it is called database access endpoint, namely DatabaseEndpoint.
+
+DatabaseEndpoint is imperceptible to applications. It can only be bound to 
VirtualDatabase by a specific governance strategy and then be connected and 
used.
+
+**3. ReadWriteSplitting**
+
+Read/write splitting is a commonly used database extension method. The primary 
database is used for transactional read/write operations, while the secondary 
database is mainly used for queries.
+
+**4. Sharding**
+
+Data sharding is an extension strategy based on data attributes. Once data 
attributes are calculated, requests are sent to a specific data backend. 
Currently, sharding consists of sharding with shard keys and automatic 
sharding. Sharding with shard keys needs to specify which table or column is to 
be sharded and the algorithms used for sharding.
+
+**5. Encryption**
+
+To meet the requirements of audit security and compliance, enterprises need to 
provide strict security measures for data storage, such as data encryption.
+
+Data encryption parses the SQL entered by users and rewrites SQL according to 
the encryption rules provided by users.
+
+By doing so, the plaintext data can be encrypted, and plaintext data 
(optional) and ciphertext data can be both stored in the underlying database.
+
+When the user queries the data, Encryption only takes the ciphertext data from 
the database, decrypts it, and finally returns the decrypted original data to 
the user.
+
+**6. Shadow**
+
+Shadow database can receive grayscale traffic or data test requests in a 
grayscale environment or test environment, and flexibly configure multiple 
routing methods combined with shadow algorithms.
+
+**7. DatabaseDiscovery**
+
+Database auto-discovery can detect the change of data source status according 
to the high availability configuration of the database and then make 
adjustments to traffic strategy accordingly.
+
+For example, if the backend data source is [MySQL](https://www.mysql.com/) 
MGR, you can set the database discovery type as MYSQL.MGR, specify `group-name` 
and configure corresponding heartbeat intervals.
+
+**8. DistributedTransaction**
+
+It can declare configurations related to distributed transactions. Users can 
declare the transaction types without additional configuration.
+
+# Database Governance Example
+
+```sql
+# Virtual database configuration
+apiVersion: database.opensergo.io/v1alpha1
+kind: VirtualDatabase
+metadata:
+  name: sharding_db
+spec:
+  services:
+  - name: sharding_db
+    databaseMySQL:
+      db: sharding_db
+      host: localhost
+      port: 3306
+      user: root
+      password: root
+    sharding: "sharding_db"  # Declare the desired sharding strategy.
+---
+# The database endpoint configuration of the first data source
+apiVersion: database.opensergo.io/v1alpha1
+kind: DatabaseEndpoint
+metadata:
+  name: ds_0
+spec:
+  database:
+    MySQL:                 # Declare the backend data source type and other 
related information.
+      url: 
jdbc:mysql://192.168.1.110:3306/demo_ds_0?serverTimezone=UTC&useSSL=false
+      username: root
+      password: root
+      connectionTimeout: 30000
+      idleTimeoutMilliseconds: 60000
+      maxLifetimeMilliseconds: 1800000
+      maxPoolSize: 50
+      minPoolSize: 1      
+---
+# The database endpoint configuration of the second data source
+apiVersion: database.opensergo.io/v1alpha1
+kind: DatabaseEndpoint
+metadata:
+  name: ds_1
+spec:
+  database:
+    MySQL:                              # Declare the backend data source type 
and other related information.
+      url: 
jdbc:mysql://192.168.1.110:3306/demo_ds_1?serverTimezone=UTC&useSSL=false
+      username: root
+      password: root
+      connectionTimeout: 30000
+      idleTimeoutMilliseconds: 60000
+      maxLifetimeMilliseconds: 1800000
+      maxPoolSize: 50
+      minPoolSize: 1
+---
+# Sharding configuration
+apiVersion: database.opensergo.io/v1alpha1
+kind: Sharding
+metadata:
+  name: sharding_db
+spec:
+  tables: # map[string]object type
+    t_order:
+      actualDataNodes: "ds_${0..1}.t_order_${0..1}"
+      tableStrategy:
+        standard:
+          shardingColumn: "order_id"
+          shardingAlgorithmName: "t_order_inline"
+      keyGenerateStrategy:
+        column: "order_id"
+        keyGeneratorName: "snowflake"
+    t_order_item:
+      actualDataNodes: "ds_${0..1}.t_order_item_${0..1}"
+      tableStrategy:
+        standard:
+          shardingColumn: "order_id"
+          shardingAlgorithmName: "t_order_item_inline"
+      keyGenerateStrategy:
+        column: order_item_id
+        keyGeneratorName: snowflake
+  bindingTables:
+  - "t_order,t_order_item"
+  defaultDatabaseStrategy:
+    standard:
+     shardingColumn: "user_id"
+     shardingAlgorithmName: "database_inline"
+  # defaultTableStrategy: # Null means none 
+  shardingAlgorithms: # map[string]object type
+    database_inline:
+      type: INLINE    
+      props: # map[string]string type
+        algorithm-expression: "ds_${user_id % 2}"
+    t_order_inline:  
+      type: INLINE    
+      props:
+        algorithm-expression: "d_order_${order_id % 2}"      
+    t_order_item_inline:
+      type: INLINE    
+      props:
+        algorithm-expression: "d_order_item_${order_id % 2}"
+  keyGenerators: # map[string]object type
+    snowflake:
+      type: SNOWFLAKE
+```
+
+# About Apache ShardingSphere
+
+[Apache ShardingSphere](https://shardingsphere.apache.org/) is a distributed 
database ecosystem that can transform any database into a distributed database 
and enhance it with sharding, elastic scaling, encryption features & more.
+
+Apache ShardingSphere follows the Database Plus concept, designed to build an 
ecosystem on top of fragmented heterogeneous databases. It focuses on how to 
fully use the computing and storage capabilities of databases rather than 
creating a brand-new database. It attaches greater importance to the 
collaboration between multiple databases instead of the database itself.
+
+🔗 [**Apache ShardingSphere Useful 
Links**](https://linktr.ee/ApacheShardingSphere)
+
+# About OpenSergo
+
+[OpenSergo](https://opensergo.io/) is an open and universal service governance 
specification that is oriented toward distributed service architecture and 
covers a full-link heterogeneous ecosystem.
+
+It is formed based on the industry's service governance scenarios and 
practices. The biggest characteristic of OpenSergo is defining service 
governance rules with a unified set of configuration/DSL/protocol and is 
oriented towards multi-language heterogeneous architecture, achieving full-link 
ecosystem coverage.
+
+No matter if the microservice language is Java, Go, Node.js, or some other 
language, or whether it's a standard microservice or Mesh-based access, 
developers can use the same set of OpenSergo CRD standard configurations.
+
+This allows developers to implement unified governance and control for each 
layer, ranging from the gateway to microservices, from database to cache, and 
from registration and discovery to the configuration of services.
+
+🔗 [**OpenSergo GitHub**](https://github.com/opensergo/opensergo-specification)
\ No newline at end of file
diff --git 
a/docs/blog/content/material/2022_11_22_ElasticJob_UI_now_supports_Auth_2.0,_OIDC_and_SAML_single_sign-on_thanks_to_Casdoor.en.md
 
b/docs/blog/content/material/2022_11_22_ElasticJob_UI_now_supports_Auth_2.0,_OIDC_and_SAML_single_sign-on_thanks_to_Casdoor.en.md
index cca3dc4c9f6..e2ef65163ed 100644
--- 
a/docs/blog/content/material/2022_11_22_ElasticJob_UI_now_supports_Auth_2.0,_OIDC_and_SAML_single_sign-on_thanks_to_Casdoor.en.md
+++ 
b/docs/blog/content/material/2022_11_22_ElasticJob_UI_now_supports_Auth_2.0,_OIDC_and_SAML_single_sign-on_thanks_to_Casdoor.en.md
@@ -6,7 +6,7 @@ chapter = true
 
 
![img](https://shardingsphere.apache.org/blog/img/2022_11_22_ElasticJob_UI_now_supports_Auth_2.0,_OIDC_and_SAML_single_sign-on_thanks_to_Casdoor1.png)
 
-> If you‘re looking to add SSO to the administration console when using 
ElasticJob UI, this article will help you tackle this user management problem 
using ElasticJob UI’s built-in Casdoor.
+> If you're looking to add SSO to the administration console when using 
ElasticJob UI, this article will help you tackle this user management problem 
using ElasticJob UI's built-in Casdoor.
 
 # Background
 
@@ -44,7 +44,7 @@ yarn start
 
 
![img](https://shardingsphere.apache.org/blog/img/2022_11_22_ElasticJob_UI_now_supports_Auth_2.0,_OIDC_and_SAML_single_sign-on_thanks_to_Casdoor2.png)
 
-The red arrows indicate what the backend configuration requires, with 
“Redirect URLs” referring to the address where you perform a callback.
+The red arrows indicate what the backend configuration requires, with 
"Redirect URLs" referring to the address where you perform a callback.
 
 We also need to find the corresponding cert we selected in the cert option, 
such as `cert-build-in` here. A certificate is also needed.
 
@@ -64,7 +64,7 @@ Paste the data we obtained from Casdoor into the 
corresponding position as follo
 
 Now, we can use Casdoor in ElasticJob UI.
 
-Once the ElasticJob’s admin console connects to Casdoor, it will support 
UI-first centralized identity access/single sign-on based on [OAuth 
2.0](https://oauth.net/2/), [OIDC](https://openid.net/connect/) and 
[SAML](https://auth0.com/blog/how-saml-authentication-works/).
+Once the ElasticJob's admin console connects to Casdoor, it will support 
UI-first centralized identity access/single sign-on based on [OAuth 
2.0](https://oauth.net/2/), [OIDC](https://openid.net/connect/) and 
[SAML](https://auth0.com/blog/how-saml-authentication-works/).
 
 Thanks to developers from the Casdoor and Apache ShardingSphere community, our 
collaboration has been going on in a smooth and friendly way. At first, 
[jakiuncle](https://github.com/jakiuncle) from Casdoor proposed an issue and 
committed a PR, and then our Committer [TeslaCN](https://github.com/TeslaCN) 
and PMC [tristaZero](https://github.com/tristaZero) reviewed the PR. This 
cross-community collaboration stands as a testament to the Beaty of open source.
 
@@ -80,6 +80,6 @@ It provides elastic scheduling, resource management, and job 
governance combined
 
 # About Casdoor
 
-[Casdoor](https://casdoor.org/) is a UI-first identity access management (IAM) 
/ single-sign-on (SSO) platform based on OAuth 2.0 / OIDC. Casdoor can help you 
solve user management problems. There’s no need to develop a series of 
authentication features such as user login and registration. It can manage the 
user module entirely in a few simple steps in conjunction with the host 
application. It’s convenient, easy-to-use and powerful.
+[Casdoor](https://casdoor.org/) is a UI-first identity access management (IAM) 
/ single-sign-on (SSO) platform based on OAuth 2.0 / OIDC. Casdoor can help you 
solve user management problems. There's no need to develop a series of 
authentication features such as user login and registration. It can manage the 
user module entirely in a few simple steps in conjunction with the host 
application. It's convenient, easy-to-use and powerful.
 
 🔗 [**GitHub**](https://github.com/casdoor/casdoor)
\ No newline at end of file
diff --git 
a/docs/blog/content/material/2022_11_24_ShardingSphere-on-Cloud_&_Pisanix_replace_Sidecar_for_a_true_cloud-native_experience.en.md
 
b/docs/blog/content/material/2022_11_24_ShardingSphere-on-Cloud_&_Pisanix_replace_Sidecar_for_a_true_cloud-native_experience.en.md
new file mode 100644
index 00000000000..44be1af11f7
--- /dev/null
+++ 
b/docs/blog/content/material/2022_11_24_ShardingSphere-on-Cloud_&_Pisanix_replace_Sidecar_for_a_true_cloud-native_experience.en.md
@@ -0,0 +1,96 @@
++++
+title = "ShardingSphere-on-Cloud & Pisanix replace Sidecar for a true 
cloud-native experience"
+weight = 81
+chapter = true 
++++
+
+# Background
+
+For a while, many of our blog posts have shown that 
[**ShardingSphere**](https://shardingsphere.apache.org/) **consists of three 
independent products:** 
[**ShardingSphere-JDBC**](https://shardingsphere.apache.org/document/current/en/overview/#shardingsphere-jdbc)**,**
 
[**ShardingSphere-Proxy**](https://shardingsphere.apache.org/document/current/en/quick-start/shardingsphere-proxy-quick-start/)**,
 and ShardingSphere-Sidecar.**
+
+As ShardingSphere has become increasingly popular, JDBC and Proxy have been 
used in numerous production environments, but Sidecar's status has remaining as 
"**under planning"**. you may have noticed this on our GitHub `READ ME` or our 
website.
+
+With cloud-native gaining momentum, many enterprises are choosing to use 
databases on the cloud or cloud native databases. This represents an excellent 
opportunity for ShardingSphere-Sidecar, which is positioned as a **cloud-native 
database proxy in** [**Kubernetes**](https://kubernetes.io/).
+
+However, some of you may have noticed that any mention of Sidecar has 
disappeared from ShardingSphere's latest documentation. Has 
ShardingSphere-Sidecar been canceled? What will ShardingSphere's cloud native 
future look like? Here's what's coming.
+
+# What's ShardingSphere's plan for the cloud?
+
+## Stop the R&D of ShardingSphere-Sidecar
+
+As far as ShardingSphere users are concerned, ShardingSphere-JDBC and 
ShardingSphere-Proxy can already meet most requirements. 
ShardingSphere-Sidecar's only difference from them is in the deployment form. 
JDBC and Proxy are functionally identical, but each has unique advantages.
+
+ShardingSphere-JDBC is positioned as a lightweight Java framework that 
provides additional services at theJava JDBC layer. With the client connecting 
directly to the database, it provides services in the form of `jar` and 
requires no extra deployment and dependence. It can be viewed as an enhanced 
JDBC driver, fully compatible with JDBC and all kinds of 
[ORM](https://stackoverflow.com/questions/1279613/what-is-an-orm-how-does-it-work-and-how-should-i-use-one)
 frameworks. It's targeted at [...]
+
+ShardingSphere-Proxy is a transparent database proxy, supporting heterogeneous 
languages through the implementation of database binary protocol. Currently, 
[MySQL](https://www.mysql.com/) and [PostgreSQL](https://www.postgresql.org/) 
protocols are provided. Nevertheless, Proxy adds a gateway between the database 
and the front-end application layer, which will partially lower the performance.
+
+**Our community recommends users to adopt a hybrid deployment mode allowing 
JDBC and Proxy to complement each other, maximizing ShardingSphere's advantages 
in terms of performance, availability and heterogeneous support.**
+
+![img](https://shardingsphere.apache.org/blog/img/2022_11_24_ShardingSphere-on-Cloud_&_Pisanix_replace_Sidecar_for_a_true_cloud-native_experience1.png)
+
+As you can see, it's a bit awkward for ShardingSphere-Sidecar: JDBC and Proxy 
are applicable to most scenarios, environments and businesses, and can 
complement each other, leaving little room for Sidecar to innovate. From the 
viewpoint of the community and its users, Sidecar is more like an extension in 
deployment mode, and it is not capable of enhancing ShardingSphere as a whole.
+
+**Taking the above factors into consideration, it is more efficient to develop 
a patch tool for ShardingSphere that can be easily used and run in a Kubernetes 
environment. This way, users can deploy and use ShardingSphere in cloud native 
environments, while saving R&D time for the ShardingSphere community.**
+
+## ShardingSphere's cloud solution: 
[ShardingSphere-On-Cloud](https://github.com/apache/shardingsphere-on-cloud)
+
+> ShardingSphere-on-Cloud is a comprehensive system upgrade based on 
ShardingSphere.
+
+ShardingSphere-Sidecar was born when Kubernetes thrived. Back then, more and 
more enterprises were trying to adopt cloud-native concepts. The ShardingSphere 
community is not an exception.
+
+We proposed ShardingSphere-Sidecar to promote cloud-native transformation in 
the data field. However, since JDBC and Proxy are mature enough to deal with 
data governance in most scenarios, it's unnecessary to make ShardingSphere 
entirely cloud native.
+
+Sidecar can indeed play a big role in certain scenarios, but it doesn't mean 
that we have to create a Sidecar version for each component. ShardingSphere is 
working on how to come up with a solution based on real cloud-native scenarios 
after fully integrating the cloud computing concept. That's how 
ShardingSphere-on-Cloud was born.
+
+[ShardingSphere-on-Cloud](https://github.com/apache/shardingsphere-on-cloud) 
is capable of deploying and migrating ShardingSphere in a Kubernetes 
environment. With the help of [AWS 
CloudFormation](https://aws.amazon.com/cloudformation/), 
[Helm](https://helm.sh/), Operator, and Terraform (coming soon) and other 
tools, it provides best practices with quick deployment, higher observability, 
security and migration, and high availability deployment in a cloud native 
environment.
+
+> Please refer to [***Database Plus Embracing the Cloud: 
ShardingSphere-on-Cloud Solution 
Released***](https://medium.com/codex/database-plus-embracing-the-cloud-shardingsphere-on-cloud-solution-released-29916290ad06?source=your_stories_page-------------------------------------)
 for details.
+
+## Achieving the vision of ShardingSphere-Sidecar through 
[Pisanix](https://www.pisanix.io/)
+
+**Why did we develop a new open source project oriented towards data 
governance in cloud native scenarios?**
+
+Our community has been contemplating the position of ShardingSphere and 
[Database 
Mesh](https://medium.com/faun/database-mesh-2-0-database-governance-in-a-cloud-native-environment-ac24080349eb?source=your_stories_page-------------------------------------)
 concept.
+
+Within the community we hold different viewpoints on Sidecar at different 
stages. In the beginning, the community wanted to use Sidecar to manage cloud 
data issues. As the community gained a deeper understanding of cloud native and 
cloud data management processes, the limitations of ShardingSphere-Sidecar have 
been gradually exposed.
+
+ShardingSphere-Sidecar is only a deployment mode of ShardingSphere in cloud 
native environments, so it can only solve a single problem. It is incapable of 
helping ShardingSphere develop a mature and cloud-native solution for 
enterprises.
+
+**Therefore, we needed to redesign an open source product with higher 
adaptability, availability and agility in a cloud native system - in order to 
make up for ShardingSphere's limitations on cloud data governance.**
+
+That is why some of our community members at 
[SphereEx](https://www.sphere-ex.com/en/) developed [Pisanix, a cloud-native 
data governance tool](https://www.sphere-ex.com/news/43/), based on the 
Database Mesh concept. It can provide capabilities such as SQL-aware traffic 
governance, runtime resource-oriented management and DBRE.
+
+## Is Pisanix the same with ShardingSphere-Sidecar?
+
+ShardingSphere-Sidecar and Pisanix convey different understandings of Database 
Mesh. They are different in the following aspects.
+
+- **Different design concepts:** the design philosophy of JDBC & Proxy is 
Database Plus, which adds an interface on top of multiple data sources for 
unified governance and enhancement. Pisanix represents the specific practice of 
Database Mesh concept, leading to efficient and smooth DevOps of databases for 
applications in cloud native scenarios.
+- **Different language ecosystems:** JDBC is developed solely in Java. As Java 
is popular with numerous enterprise-grade community users and developers, JDBC 
can be easily applied to Java-developed applications. In comparison, Pisanix is 
developed in [Rust](https://www.rust-lang.org/) to improve the reliability and 
efficiency of the access layer.
+
+Despite small differences, both of them are oriented towards cloud-native data 
infrastructure. That is also what Database Mesh expects in the long term by 
implementing cloud native DBRE.
+
+In terms of deployment mode, Pisanix and ShardingSphere-Sidecar can both be 
deployed with business applications in the form of Sidecar, providing standard 
protocol access for developers. **Moreover, Pisanix is highly compatible with 
the ShardingSphere ecosystem. You can connect Pisanix to ShardingSphere-Proxy 
in the same way that ShardingSphere-Proxy connects to MySQL.**
+
+In short, ShardingSphere presents a complete database form for developers and 
applications under the Database Plus concept. Pisanix is designed for the same 
purpose. Through Pisanix, the entrance to cloud data traffic, users can use 
ShardingSphere-Proxy as a database and explore the collaboration mode in a 
cloud native environment.
+
+However, they belong to independent product lines. Pisanix followed the 
Database Mesh concept from the very beginning and achieved high-performance 
expansion through four aspects, including **local database, unified 
configuration and management, multi-protocol support and cloud native 
architecture**.
+
+Pisanix is only the first step towards unifying database types on the cloud, 
and Sidecar is only a deployment form.
+
+> The protocols and DevOps features of different databases vary, and the point 
lies in abstracting the standard governance behavior.
+
+Unlike Pisanix, the ShardingSphere ecosystem is not only accessible through 
protocols, and ShardingSphere-JDBC can be used more conveniently by Java 
applications.
+
+Its natural compatibility maintains functional integrity, optimizes resource 
utilization and provides ultimate performance, with which developers can 
configure data governance at their will from the perspective of businesses. 
Meanwhile, by combining ShardingSphere and the underlying databases, users can 
deploy strong computing capability on the application side and transform the 
original monolithic database into a distributed database with high performance, 
optimizing resource allocation [...]
+
+In conclusion, ShardingSphere and Pisanix together offer two solutions for 
community users. **For users who'd like to deploy ShardingSphere in a 
Kubernetes environment, ShardingSphere-on-Cloud is enough, and ShardingSphere's 
other features are exactly the same as when used locally.**
+
+**For users looking to achieve unified traffic governance on the upper-layer 
database in cloud native scenarios, Pisanix is a better choice.**
+
+Compared with ShardingSphere-Sidecar, ShardingSphere-on-Cloud combined with 
Pisanix is more effective and convenient.
+
+[**ShardingSphere Official Website**](https://shardingsphere.apache.org/)
+
+[**Database Mesh Official Website**](https://www.database-mesh.io/)
+
+[**Pisanix Official Website**](https://www.pisanix.io/)
diff --git 
a/docs/blog/content/material/2022_12_08_ShardingSphere_5.3.0_is_released_new_features_and_improvements.en.md
 
b/docs/blog/content/material/2022_12_08_ShardingSphere_5.3.0_is_released_new_features_and_improvements.en.md
new file mode 100644
index 00000000000..e303dc59e04
--- /dev/null
+++ 
b/docs/blog/content/material/2022_12_08_ShardingSphere_5.3.0_is_released_new_features_and_improvements.en.md
@@ -0,0 +1,291 @@
++++
+title = "ShardingSphere 5.3.0 is released: new features and improvements"
+weight = 82
+chapter = true 
++++
+
+![img](https://shardingsphere.apache.org/blog/img/2022_12_08_ShardingSphere_5.3.0_is_released_new_features_and_improvements1.png)
+
+After 1.5 months in development, [Apache ShardingSphere 
5.3.0](https://shardingsphere.apache.org/document/current/en/downloads/) is 
released. Our community merged [687 
PRs](https://github.com/apache/shardingsphere/pulls?q=is%3Amerged+is%3Apr+milestone%3A5.3.0)
 from contributors around the world.
+
+The new release has been improved in terms of features, performance, testing, 
documentation, examples, etc.
+
+The 5.3.0 release brings the following highlights:
+
+- Support fuzzy query for CipherColumn.
+- Support Datasource-level heterogeneous database.
+- Support checkpoint resume for data consistency check.
+- Automatically start a distributed transaction, while executing DML 
statements across multiple shards.
+
+Additionally, release 5.3.0 also brings the following adjustments:
+
+- Remove the Spring configuration.
+- Systematically refactor the DistSQL syntax.
+- Refactor the configuration format of ShardingSphere-Proxy.
+
+# Highlights
+
+## **1. Support fuzzy query for CipherColumn**
+
+In previous versions, ShardingSphere's Encrypt feature didn't support the use 
of the `LIKE` operator in SQL.
+
+For a while users strongly requested adding the `LIKE` operator to the Encrypt 
feature. Usually, encrypted fields are mainly of the string type, and it is a 
common practice for the string to execute `LIKE`.
+
+To minimize friction in accessing the Encrypt feature, our community has 
initiated a discussion about the implementation of encrypted `LIKE`.
+
+Since then, we've received a lot of feedback.
+
+Some community members even contributed their original encryption algorithm 
implementation supporting fuzzy queries after fully investigating conventional 
solutions.
+
+🔗 **The relevant issue can be found** 
[**here**](https://github.com/apache/shardingsphere/issues/20435)**.**
+
+🔗 **For the algorithm design, please refer to the** 
[**attachment**](https://github.com/apache/shardingsphere/files/9684570/default.pdf)
 **within the** 
[**issue**](https://github.com/apache/shardingsphere/files/9684570/default.pdf)**.**
+
+The [single-character abstract algorithm] contributed by the community members 
is implemented as `CHAR_DIGEST_LIKE` in the ShardingSphere encryption algorithm 
SPI.
+
+## 2. Support datasource-level heterogeneous database
+
+[ShardingSphere](https://shardingsphere.apache.org/) supports a database 
gateway, but its heterogeneous capability is limited to the logical database in 
previous versions. This means that all the data sources under a logical 
database must be of the same database type.
+
+This new release supports datasource-level heterogeneous databases at the 
kernel level. This means the datasources under a logical database can be 
different database types, allowing you to use different databases to store data.
+
+Combined with ShardingSphere's SQL dialect conversion capability, this new 
feature significantly enhances ShardingSphere's heterogeneous data gateway 
capability.
+
+## 3. Data migration: support checkpoint resume for data consistency check
+
+Data consistency checks happen at the later stage of data migration.
+
+Previously, the data consistency check was triggered and stopped by 
[DistSQL](https://shardingsphere.apache.org/document/5.1.0/en/concepts/distsql/).
 If a large amount of data was migrated and the data consistency check was 
stopped for any reason, the check would've had to be started again — which is 
sub-optimal and affects user experience.
+
+ShardingSphere 5.3.0 now supports checkpoint storage, which means data 
consistency checks can be resumed from the checkpoint.
+
+For example, if data is being verified during data migration and the user 
stops the verification for some reason, with the verification progress 
`(finished_percentage)` being 5%, then:
+
+```
+mysql> STOP MIGRATION CHECK 'j0101395cd93b2cfc189f29958b8a0342e882';
+Query OK, 0 rows affected (0.12 sec)
+mysql> SHOW MIGRATION CHECK STATUS 'j0101395cd93b2cfc189f29958b8a0342e882';
++--------+--------+---------------------+-------------------+-------------------------+-------------------------+------------------+---------------+
+| tables | result | finished_percentage | remaining_seconds | check_begin_time 
       | check_end_time          | duration_seconds | error_message |
++--------+--------+---------------------+-------------------+-------------------------+-------------------------+------------------+---------------+
+| sbtest | false  | 5                   | 324               | 2022-11-10 
19:27:15.919 | 2022-11-10 19:27:35.358 | 19               |               |
++--------+--------+---------------------+-------------------+-------------------------+-------------------------+------------------+---------------+
+1 row in set (0.02 sec)
+```
+
+In this case, the user restarts the data verification. But the work does not 
have to restart from the beginning. The verification progress 
`(finished_percentage)` remains at 5%.
+
+```
+mysql> START MIGRATION CHECK 'j0101395cd93b2cfc189f29958b8a0342e882';
+Query OK, 0 rows affected (0.35 sec)
+mysql> SHOW MIGRATION CHECK STATUS 'j0101395cd93b2cfc189f29958b8a0342e882';
++--------+--------+---------------------+-------------------+-------------------------+----------------+------------------+---------------+
+| tables | result | finished_percentage | remaining_seconds | check_begin_time 
       | check_end_time | duration_seconds | error_message |
++--------+--------+---------------------+-------------------+-------------------------+----------------+------------------+---------------+
+| sbtest | false  | 5                   | 20                | 2022-11-10 
19:28:49.422 |                | 1                |               |
++--------+--------+---------------------+-------------------+-------------------------+----------------+------------------+---------------+
+1 row in set (0.02 sec)
+```
+
+**Limitation:** this new feature is unavailable with the `CRC32_MATCH` 
algorithm because the algorithm calculates all data at once.
+
+## 4. Automatically start a distributed transaction while executing DML 
statements across multiple shards
+
+Previously, even with XA and other distributed transactions configured, 
ShardingSphere could not guarantee the atomicity of DML statements that are 
routed to multiple shards — if users didn't manually enable the transaction.
+
+Take the following SQL as an example:
+
+```
+insert into account(id, balance, transaction_id) values
+(1, 1, 1),(2, 2, 2),(3, 3, 3),(4, 4, 4),
+(5, 5, 5),(6, 6, 6),(7, 7, 7),(8, 8, 8);
+```
+
+When this SQL is sharded according to `id mod 2`, the ShardingSphere kernel 
layer will automatically split it into the following two SQLs and route them to 
different shards respectively for execution:
+
+```
+insert into account(id, balance, transaction_id) values
+(1, 1, 1),(3, 3, 3),(5, 5, 5),(7, 7, 7);
+insert into account(id, balance, transaction_id) values
+(2, 2, 2),(4, 4, 4),(6, 6, 6),(8, 8, 8);
+```
+
+If the user does not manually start the transaction, and one of the sharded 
SQL fails to execute, the atomicity cannot be guaranteed because the successful 
operation cannot be rolled back.
+
+ShardingSphere 5.3.0 is optimized in terms of distributed transactions. If 
distributed transactions are configured in ShardingSphere, they can be 
automatically started when DML statements are routed to multiple shards. This 
way, we can ensure atomicity when executing DML statements.
+
+# Significant Adjustments
+
+**1. Remove Spring configuration**
+
+In earlier versions, 
[ShardingSphere-JDBC](https://shardingsphere.apache.org/document/current/en/overview/#shardingsphere-jdbc)
 provided services in the format of DataSource. If you wanted to introduce 
ShardingSphere-JDBC without modifying the code in the 
[Spring](https://spring.io/)/[Spring 
Boot](https://spring.io/projects/spring-boot) project, you needed to use 
modules such as Spring/[Spring Boot 
Starter](https://www.javatpoint.com/spring-boot-starters) provided by 
ShardingSphere.
+
+Although ShardingSphere supports multiple configuration formats, it also has 
the following problems:
+
+1. When API changes, many config files need to be adjusted, which is a heavy 
workload.
+2. The community has to maintain multiple config files.
+3. The lifecycle management of [Spring 
bean](https://www.baeldung.com/spring-bean) is susceptible to other 
dependencies of the project such as PostProcessor failure.
+4. Spring Boot Starter and Spring NameSpace are affected by Spring, and their 
configuration styles are different from YAML.
+5. Spring Boot Starter and Spring NameSpace are affected by the version of 
Spring. When users access them, the configuration may not be identified and 
dependency conflicts may occur. For example, Spring Boot versions 1.x and 2.x 
have different configuration styles.
+
+[ShardingSphere 5.1.2 first supported the introduction of ShardingSphere-JDBC 
in the form of JDBC 
Driver](https://medium.com/codex/shardingsphere-jdbc-driver-released-a-jdbc-driver-that-requires-no-code-modifications-5464c30bcd64?source=your_stories_page-------------------------------------).
 That means applications only need to configure the Driver provided by 
ShardingSphere at the JDBC URL before accessing to ShardingSphere-JDBC.
+
+Removing the Spring configuration simplifies and unifies the configuration 
mode of ShardingSphere. This adjustment not only simplifies the configuraiton 
of ShardingSphere when using different configuration modes, but also reduces 
maintenance work for the ShardingSphere community.
+
+**2. Systematically refactor the DistSQL syntax**
+
+One of the characteristics of Apache ShardingSphere is its flexible rule 
configuration and resource control capability.
+
+[DistSQL (Distributed 
SQL)](https://shardingsphere.apache.org/document/5.1.0/en/concepts/distsql/) is 
ShardingSphere's SQL-like operating language. It's used the same way as 
standard SQL, and is designed to provide incremental SQL operation capability.
+
+ShardingSphere 5.3.0 systematically refactors DistSQL. The community 
redesigned the syntax, semantics and operating procedure of DistSQL. The new 
version is more consistent with ShardingSphere's design philosophy and focuses 
on a better user experience.
+
+Please refer to the [latest ShardingSphere 
documentation](https://shardingsphere.apache.org/) for details. A DistSQL 
roadmap will be available soon, and you're welcome to leave your feedback.
+
+**3. Refactor the configuration format of** 
[**ShardingSphere-Proxy**](https://shardingsphere.apache.org/document/current/en/quick-start/shardingsphere-proxy-quick-start/)
+
+In this update, ShardingSphere-Proxy has adjusted the configuration format and 
reduced config files required for startup.
+
+`server.yaml` before refactoring:
+
+```yaml
+rules:
+  - !AUTHORITY
+    users:
+      - root@%:root
+      - sharding@:sharding
+    provider:
+      type: ALL_PERMITTED
+  - !TRANSACTION
+    defaultType: XA
+    providerType: Atomikos
+  - !SQL_PARSER
+    sqlCommentParseEnabled: true
+    sqlStatementCache:
+      initialCapacity: 2000
+      maximumSize: 65535
+    parseTreeCache:
+      initialCapacity: 128
+      maximumSize: 1024
+```
+
+`server.yaml` after refactoring:
+
+```yaml
+authority:
+  users:
+    - user: root@%
+      password: root
+    - user: sharding
+      password: sharding
+  privilege:
+    type: ALL_PERMITTED
+transaction:
+  defaultType: XA
+  providerType: AtomikossqlParser:
+  sqlCommentParseEnabled: true
+  sqlStatementCache:
+    initialCapacity: 2000
+    maximumSize: 65535
+  parseTreeCache:
+    initialCapacity: 128
+    maximumSize: 1024
+```
+
+In ShardingSphere 5.3.0, `server.yaml` is no longer required to start Proxy. 
If no config file is provided by default, Proxy provides the default account 
root/root.
+
+ShardingSphere is completely committed to becoming cloud native. Thanks to 
DistSQL, ShardingSphere-Proxy's config files can be further simplified, which 
is more friendly to container deployment.
+
+# Release Notes
+
+## API Changes
+
+1. DistSQL: refactor syntax API, please refer to the user manual
+2. Proxy: change the configuration style of global rule, remove the 
exclamation mark
+3. Proxy: allow zero-configuration startup, enable the default account 
root/root when there is no Authority configuration
+4. Proxy: remove the default `logback.xml `and use API initialization
+5. JDBC: remove the Spring configuration and use Driver + YAML configuration 
instead
+
+## Enhancements
+
+1. DistSQL: new syntax `REFRESH DATABASE METADATA`, refresh logic database 
metadata
+2. Kernel: support DistSQL `REFRESH DATABASE METADATA` to load configuration 
from the governance center and rebuild `MetaDataContext`
+3. Support PostgreSQL/openGauss setting transaction isolation level
+4. Scaling: increase inventory task progress update frequence
+5. Scaling: `DATA_MATCH` consistency check support checkpoint resume
+6. Scaling: support drop consistency check job via DistSQL
+7. Scaling: rename column from `sharding_total_count` to `job_item_count` in 
job list DistSQL response
+8. Scaling: add sharding column in incremental task SQL to avoid broadcast 
routing
+9. Scaling: sharding column could be updated when generating SQL
+10. Scaling: improve column value reader for `DATA_MATCH` consistency check
+11. DistSQL: encrypt DistSQL syntax optimization, support like query algorithm
+12. DistSQL: add properties value check when `REGISTER STORAGE UNIT`
+13. DistSQL: remove useless algorithms at the same time when `DROP RULE`
+14. DistSQL: `EXPORT DATABASE CONFIGURATION` supports broadcast tables
+15. DistSQL: `REGISTER STORAGE UNIT` supports heterogeneous data sources
+16. Encrypt: support `Encrypt` LIKE feature
+17. Automatically start distributed transactions when executing DML statements 
across multiple shards
+18. Kernel: support `client \d` for PostgreSQL and openGauss
+19. Kernel: support select group by, order by statement when column contains 
null values
+20. Kernel: support parse `RETURNING` clause of PostgreSQL/openGauss Insert
+21. Kernel: SQL `HINT` performance improvement
+22. Kernel: support mysql case when then statement parse
+23. Kernel: support data source level heterogeneous database gateway
+24. (Experimental) Sharding: add sharding cache plugin
+25. Proxy: support more PostgreSQL datetime formats
+26. Proxy: support MySQL `COM_RESET_CONNECTION`
+27. Scaling: improve `MySQLBinlogEventType.valueOf` to support unknown event 
type
+28. Kernel: support case when for federation
+
+## Bug Fix
+
+1. Scaling: fix barrier node created at job deletion
+2. Scaling: fix part of columns value might be ignored in `DATA_MATCH` 
consistency check
+3. Scaling: fix jdbc url parameters are not updated in consistency check
+4. Scaling: fix tables sharding algorithm type `INLINE` is case-sensitive
+5. Scaling: fix incremental task on MySQL require mysql system database 
permission
+6. Proxy: fix the NPE when executing select SQL without storage node
+7. Proxy: support `DATABASE_PERMITTED` permission verification in unicast 
scenarios
+8. Kernel: fix the wrong value of `worker-id` in show compute nodes
+9. Kernel: fix route error when the number of readable data sources and weight 
configurations of the Weight algorithm are not equal
+10. Kernel: fix multiple groups of readwrite-splitting refer to the same load 
balancer name, and the load balancer fails problem
+11. Kernel: fix can not disable and enable compute node problem
+12. JDBC: fix data source is closed in ShardingSphereDriver cluster mode when 
startup problem
+13. Kernel: fix wrong rewrite result when part of logical table name of the 
binding table is consistent with the actual table name, and some are 
inconsistent
+14. Kernel: fix startup exception when use SpringBoot without configuring rules
+15. Encrypt: fix null pointer exception when Encrypt value is null
+16. Kernel: fix oracle parsing does not support varchar2 specified type
+17. Kernel: fix serial flag judgment error within the transaction
+18. Kernel: fix cursor fetch error caused by `wasNull` change
+19. Kernel: fix alter transaction rule error when refresh metadata
+20. Encrypt: fix `EncryptRule` cast to `TransparentRule` exception that occurs 
when the call procedure statement is executed in the `Encrypt` scenario
+21. Encrypt: fix exception which caused by `ExpressionProjection` in shorthand 
projection
+22. Proxy: fix PostgreSQL Proxy int2 negative value decoding incorrect
+23. Proxy: PostgreSQL/openGauss support describe insert returning clause
+24. Proxy: fix gsql 3.0 may be stuck when connecting Proxy
+25. Proxy: fix parameters are missed when checking SQL in Proxy backend
+26. Proxy: enable MySQL Proxy to encode large packets
+27. Kernel: fix oracle parse comment without whitespace error
+28. DistSQL: fix show create table for encrypt table
+
+## Refactor
+
+1. Scaling: reverse table name and column name when generating SQL if it's SQL 
keyword
+2. Scaling: improve incremental task failure handling
+3. Kernel: governance center node adjustment, unified hump to underscore
+
+# Links
+
+🔗 [Download 
Link](https://shardingsphere.apache.org/document/current/en/downloads/)
+
+🔗 [Release Notes](https://github.com/apache/shardingsphere/discussions/22564)
+
+🔗 [Project Address](https://shardingsphere.apache.org/)
+
+🔗 [ShardingSphere-on-Cloud](https://github.com/apache/shardingsphere-on-cloud)
+
+# Community Contribution
+
+This Apache ShardingSphere 5.3.0 release is the result of 687 merged PRs, 
committed by 49 contributors. Thank you for your efforts.
+
+![img](https://shardingsphere.apache.org/blog/img/2022_12_08_ShardingSphere_5.3.0_is_released_new_features_and_improvements2.png)
diff --git 
a/docs/blog/static/img/2022_11_24_ShardingSphere-on-Cloud_&_Pisanix_replace_Sidecar_for_a_true_cloud-native_experience1.png
 
b/docs/blog/static/img/2022_11_24_ShardingSphere-on-Cloud_&_Pisanix_replace_Sidecar_for_a_true_cloud-native_experience1.png
new file mode 100644
index 00000000000..58e2fb52cce
Binary files /dev/null and 
b/docs/blog/static/img/2022_11_24_ShardingSphere-on-Cloud_&_Pisanix_replace_Sidecar_for_a_true_cloud-native_experience1.png
 differ
diff --git 
a/docs/blog/static/img/2022_12_08_ShardingSphere_5.3.0_is_released_new_features_and_improvements1.png
 
b/docs/blog/static/img/2022_12_08_ShardingSphere_5.3.0_is_released_new_features_and_improvements1.png
new file mode 100644
index 00000000000..f43ecbbad79
Binary files /dev/null and 
b/docs/blog/static/img/2022_12_08_ShardingSphere_5.3.0_is_released_new_features_and_improvements1.png
 differ
diff --git 
a/docs/blog/static/img/2022_12_08_ShardingSphere_5.3.0_is_released_new_features_and_improvements2.png
 
b/docs/blog/static/img/2022_12_08_ShardingSphere_5.3.0_is_released_new_features_and_improvements2.png
new file mode 100644
index 00000000000..b0dfdaa3033
Binary files /dev/null and 
b/docs/blog/static/img/2022_12_08_ShardingSphere_5.3.0_is_released_new_features_and_improvements2.png
 differ

Reply via email to