<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>ShardingSphere - Blog</title>
    <link>https://shardingsphere.apache.org/blog/en/</link>
    <description>Recent content on ShardingSphere - Blog</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language><atom:link href="https://shardingsphere.apache.org/blog/en/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Revealing Sharding-Proxy —— Database Middleware Oriented DBA</title>
      <link>https://shardingsphere.apache.org/blog/en/material/proxy/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/proxy/</guid>
      <description>Lecturer introduction Yonglun Zhang: Senior software engineer of operation and maintenance department at JD Finance
He has been working on software development for years engaged in traditional Industry. Afterwards he was involved in Internet and started his web crawler career at JD Finance, sigh at the huge amount of Internet data since then. It&amp;rsquo;s great honor to join ShardingSphere this year and be able to do what he is interested in, he hopes to improve himself and contribute to the community.</description>
    </item>
    
    <item>
      <title>The Cooperation Between ShardingSphere and openGauss</title>
      <link>https://shardingsphere.apache.org/blog/en/videos/opengauss/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/videos/opengauss/</guid>
      <description>On May 29th, the &amp;ldquo;[Beijing] openGauss Meetup&amp;rdquo; event hosted by the openGauss community and jointly hosted by Beijing Kunpeng Joint Innovation Center, ENMOTECH, SANGFOR, and SphereEx was successfully held at Zhongguancun, Beijing. This Meetup is also the first joint event after SphereEx officially joined the openGauss community. At the Meetup site, Zhang Liang, CEO of SphereEx, shared the theme of &amp;ldquo;The Cooperation Between ShardingSphere and openGauss&amp;rdquo;.
        </description>
    </item>
    
    <item>
      <title>Getting started with Apache ShardingSphere</title>
      <link>https://shardingsphere.apache.org/blog/en/videos/opensource/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/videos/opensource/</guid>
      <description>Apache ShardingSphere is the only database middleware project of Apache software foundation. It is mainly used in distributed database related scenarios such as data fragmentation, distributed transaction and distributed governance. This live broadcast will share why we want to participate in open source; the Apache software foundation, the core principles of Apache ShardingSphere and how to embark on the road of open source.
        </description>
    </item>
    
    <item>
      <title>The quick explanation of ShardingSphere transaction module</title>
      <link>https://shardingsphere.apache.org/blog/en/material/realization/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/realization/</guid>
      <description>Lecturer Jun Zhao
Work at JD Finance
Senior Java Development Engineer
 Years of internet development experience, love open source technology, full of interested in distributed storage. And familiar with online and realtime data processing with ElasticSearch, HBase, Presto, Storm and et.   Be responsible for distributed transaction implementation in Sharding-Sphere team.  Using Scenarios of Distributed Transaction ACID Everything starts with ACID(atomicity, consistency, isolation, durability). ACID are features of database local transaction as following,</description>
    </item>
    
    <item>
      <title>How to develop ShardingSphere community with Apache way</title>
      <link>https://shardingsphere.apache.org/blog/en/videos/build/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/videos/build/</guid>
      <description>Apache shardingsphere VP: Liang Zhang gives a wonderful explanation of shardingsphere project and open source. Liang Zhang, architecture expert of Technical Center, JD Digital Technology(JD.com), Apache ShardingSphere PMC Chair. Shardingsphere has entered the Apache incubator. It is the first open source project of JD to enter the Apache software foundation, and it is also the first distributed database of Apache software foundation.
        </description>
    </item>
    
    <item>
      <title>How to merge the child resultsets</title>
      <link>https://shardingsphere.apache.org/blog/en/material/result/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/result/</guid>
      <description>This series of articles is a hands-on introduction and analysis of SS&amp;rsquo;s core modules, the cutting-edge technologies used, and valuable lessons learned by SS&amp;rsquo;s core development members. This series of articles will take you into the world of SS kernel, to gain new knowledge and inspire. We hope you will pay attention to us, exchange ideas and go forward together.
Lecturers Liang Zhang, former head of Dangdang&amp;rsquo;s architecture department. A passion for open source, currently leading two open source projects Elastic-Job and Sharding-Sphere (Sharding-JDBC).</description>
    </item>
    
    <item>
      <title>Exploring Apache ShardingSphere with the perspective of new SQL</title>
      <link>https://shardingsphere.apache.org/blog/en/videos/new_sql/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/videos/new_sql/</guid>
      <description>NewSQL is popular in recent years, and companies all over the world have different interpretations of NewSQL. This sharing will bring you the interpretation of NewSQL concept and product architecture around the world. The architecture, characteristics, planning and open source community of Apache ShardingSphere, a popular open source distributed database middleware service platform, are analyzed in detail from the perspective of NewSQL.
        </description>
    </item>
    
    <item>
      <title>How automatic executor of ShardingSphere works</title>
      <link>https://shardingsphere.apache.org/blog/en/material/engine/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/engine/</guid>
      <description>Today「Analysis of Sharding-Sphere Series Articles」is brings you an introduction to the Sharding-Sphere automated execution engine module in this article. Since the boss prefers serious technical articles, I try my best to use a serious and solemn narrative style to share with you the topic of &amp;ldquo;Sharding-Sphere Automated Execution Engine Module&amp;rdquo;.
I just finished writing and sorting out the code of this module, so before I forget, I would like to share this with you, hope this article will help you all.</description>
    </item>
    
    <item>
      <title>Apache ShardingSphere architecture evolution driven by open source</title>
      <link>https://shardingsphere.apache.org/blog/en/videos/evolution/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/videos/evolution/</guid>
      <description>This sharing will start with NewSQL, focusing on the evolution and planning of ShardingSphere architecture, and fall into the relationship and development between open source and contributors. From the perspective of product ecology, open source power, personal growth and development, it brings us interpretation and sharing.
        </description>
    </item>
    
    <item>
      <title>Would you like to become an Apache committer</title>
      <link>https://shardingsphere.apache.org/blog/en/material/committer/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/committer/</guid>
      <description>What is the Apache Software Foundation？ The Apache Software Foundation (Apache Software Foundation) is the most influential non-profit open source software project organization today. It was formally established in 1999 and is mainly composed of groups of developers and users. Under the leadership of the Apache Software Foundation, more than 350 top open source projects have graduated, including Apache HTTP Server, the world&amp;rsquo;s most famous web server software. Adhering to the spirit of &amp;ldquo;openness, innovation and community&amp;rdquo;, many Apache projects have established a strong and successful ecosystem, and the community is full of vitality.</description>
    </item>
    
    <item>
      <title>How to build database ecosystem with newSQL in a big-data environment</title>
      <link>https://shardingsphere.apache.org/blog/en/videos/ecosystem/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/videos/ecosystem/</guid>
      <description>With the rapid development of the Internet, the scale of Internet data is also explosive growth. In this scenario, how to transform and upgrade the traditional database to meet the data needs of the new Internet? How to build an ecosystem of distributed database cluster with the help of NewSQL concept to meet the business needs of query performance, large amount of data storage, data security, elastic expansion, etc? This sharing will analyze these problems in detail and provide a relatively complete NewSQL solution.</description>
    </item>
    
    <item>
      <title>The mixed open-source distributed transaction solution</title>
      <link>https://shardingsphere.apache.org/blog/en/material/solution/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/solution/</guid>
      <description>Author Liang Zhang, Leader of Data R&amp;amp;D of JD.com, initiator &amp;amp; PPMC of Apache ShardingSphere.
Love open source, currently leading open source project ShardingSphere (formerly known as Sharding-JDBC) and Elastic-Job. Good at using Java as the popular distributed architecture and Kubernetes and Mesos as the popular cloud platform, admiring elegant codes, and having more research on how to write expressive codes.
At present, focus on improving ShardingSphere to be the industry&amp;rsquo;s first-class financial data solution.</description>
    </item>
    
    <item>
      <title>Apache ShardingSphere merged Seata AT distributed transactions</title>
      <link>https://shardingsphere.apache.org/blog/en/material/seata/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/seata/</guid>
      <description>Background Seata is a distributed transaction framework that jointly created by Ali group and Ant Financial services group. The current version of seata includes AT and TCC transaction. The goal of AT transaction is to provide incremental transaction ACID semantics under the micro service architecture, which let the users use distributed transactions just like local transactions. The core concept is the same as ShardingSphere.
GitHub: https://github.com/seata/seata
Seata AT model The Seata AT transaction model includes TM (Transaction manager), RM (Resource manager) and TC (Transaction coordinator).</description>
    </item>
    
    <item>
      <title>New feature of Apache ShardingSphere 5.x</title>
      <link>https://shardingsphere.apache.org/blog/en/videos/newfeature/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/videos/newfeature/</guid>
      <description>The first version of Apache ShardingSphere 5.x will be released soon. In version 5.x, Apache ShardingSphere has made significant innovations from architecture design to product scope. Apache ShardingSphere 5.x follow pluggable architecture design concept to build a flexible, embeddable and extensible project. Apache ShardingSphere 5. X no longer takes data sharding as kernel, but turns to building distributed database ecosystem. In the new version, core functions such as data sharding, distributed transaction and database governance are completely separated from the kernel and become a part of its pluggable component.</description>
    </item>
    
    <item>
      <title>Apache ShardingSphere is included in CNCF Landscape</title>
      <link>https://shardingsphere.apache.org/blog/en/material/cncf/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/cncf/</guid>
      <description>CNCF (Cloud Native Computing Foundation), is a cloud native computing open source software foundation founded by Google. It is committed to the popularization and sustainable development of Cloud Native technology. Cloud native technology helps enterprises and organizations to build and run agile and scalable applications in modern dynamic environments (such as public clouds, private clouds, and hybrid clouds) through a series of software, specifications, and standards. The representative cloud-native technologies including containers, micro-services, micro-service governance, and declarative APIs, etc.</description>
    </item>
    
    <item>
      <title>Exploration and expansion of the community</title>
      <link>https://shardingsphere.apache.org/blog/en/material/community/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/community/</guid>
      <description>Apache ShardingSphere community was invited to attend the Apache Event-join Apache open source community held by at Tsinghua University on November 9th. As an honored speaker, Liang Zhang, the PPMC, gave a talk named exploring and expanding the Apache ShardingSphere community. The main points of this topic are as follows.
01 Why open source? For individuals, you can gain a better career and find enjoyment.
A better career   More career opportunities.</description>
    </item>
    
    <item>
      <title>How to construct the distributed database</title>
      <link>https://shardingsphere.apache.org/blog/en/material/database/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/database/</guid>
      <description>Author | Liang Zhang
Relational databases have dominated the database field for the past few decades, and the stability, security, and ease of use they bring have become the cornerstone for building modern systems. With the rapid development of the Internet, the database structured in a stand-alone system has been unable to meet the increasingly high concurrent requests and increasingly large data storage needs, therefore, distributed database are more widely adopted.</description>
    </item>
    
    <item>
      <title>Congratulations on graduation of Apache ShardingSphere as a Top-Level Project!</title>
      <link>https://shardingsphere.apache.org/blog/en/material/graduate/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/graduate/</guid>
      <description>Apache Software Foundation (ASF), The most popular open-source software foundation, announced Apache ShardingSphere as a Top-Level Project (TLP) on Wakefield, MA, 16th April 2020.
ShardingSphere entered into the Apache incubator since 10th November 2018. With the help of mentors and the whole community, The Apache board approved its graduation proposal with 10 +1 votes successfully, which ends up its 17 months incubator and promotes it as TLP.
As the first project graduating from Incubator in 2020, this cheering news was published subsequently on Apache official blog with the support of Sally Khudairi, Vice President Marketing &amp;amp; Publicity of ASF.</description>
    </item>
    
    <item>
      <title>News! The distributed scheduling project ElasticJob set sail again</title>
      <link>https://shardingsphere.apache.org/blog/en/material/elasticjob/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/elasticjob/</guid>
      <description>ElasticJob is a distributed scheduling solution that provides distributed task sharding, elastic scaling, fully automated discovery. , multitasking based on time-driven, data-driven, resident and ad-hoc task types, task aggregation and dynamic resource provisioning, fault detection, auto-remediation, and failover.Main features are as follows:
 Task aggregation Dynamic resource scheduling Fault detection and automatic repairing Failover and retry Full-featured operation platform and management tools Friendly with cloud-native  ElasticJob can fully meet enterprise user&amp;rsquo;s requirements on scheduling and processing ability for task management and batch jobs.</description>
    </item>
    
    <item>
      <title>After years of stagnation, ElasticJob is back with the first Apache version 3.0.0-alpha</title>
      <link>https://shardingsphere.apache.org/blog/en/material/alpha/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/alpha/</guid>
      <description>Within a few months ElasticJob as the subproject of Apache ShardingSphere has fixed and merged 535 issues and pull requests. More importantly, the ElasticJob community released the first official version: 3.0.0-alpha after joined Apache Software Foundation.
Background ElasticJob (https://github.com/apache/shardingsphere-elasticjob) is a distributed scheduling solution for internet ecology and massive tasks. ElasticJob consisting of two separate subprojects, ElasticJob-Lite and ElasticJob-Cloud. It was born in 2015, at that time the industry had outstanding job scheduling library such as QuartZ, but lacked of exploration at distributed field.</description>
    </item>
    
    <item>
      <title>Following 6 months of development Apache ShardingSphere 5.0.0-beta has been officially released!</title>
      <link>https://shardingsphere.apache.org/blog/en/material/ss_5.0.0beta/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/ss_5.0.0beta/</guid>
      <description>As an Apache top-level project, ShardingSphere goes through community verification, voting and many other steps before it can be released. Such steps ensure the release is compliant with the Apache Release License specifications, and meeting the users’ expectations set for the 5.0.0-beta milestone. The current version’s architecture has been completed and the version is officially available.
Release Features: 1. Highlight Features DistSQL – A New SQL Type for a Distributed Database Ecosystem SQL is a database query programming language for accessing, querying, updating, and managing relational database systems.</description>
    </item>
    
    <item>
      <title>Why should you get involved in an Open-Source community?</title>
      <link>https://shardingsphere.apache.org/blog/en/material/open_source_community/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/open_source_community/</guid>
      <description>You wouldn&amp;rsquo;t imagine how close Open-Source projects are to you, as they have been integrated into every aspect of our lives - from the office to your home, from gyms to restaurants etc.
The saying goes something along the lines of &amp;ldquo;Open-Source projects belong to us, not me&amp;rdquo; , which explains why these projects are popular to the point that even renowned business giants are including Open-Source initiatives into their roadmap.</description>
    </item>
    
    <item>
      <title>An Introduction to DistSQL</title>
      <link>https://shardingsphere.apache.org/blog/en/material/jul_26_an_introduction_to_distsql/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/jul_26_an_introduction_to_distsql/</guid>
      <description>We believe that if you’re reading this then you’re familiar with SQL (Structured Query Language), the data query and programming language. It’s also used as the standard language of relational database management systems for accessing data, querying, updating and managing relational database systems.
Similar to standard SQL, DistSQL, or Distributed SQL, is a built-in SQL language unique to ShardingSphere that provides incremental functional capabilities beyond standard SQL. Leveraging ShardingSphere&amp;rsquo;s powerful SQL parsing engine, DistSQL provides a syntax structure and syntax validation system like that of standard SQL - making DistSQL more flexible while maintaining regularity.</description>
    </item>
    
    <item>
      <title>ShardingSphere’s Metadata Loading Process</title>
      <link>https://shardingsphere.apache.org/blog/en/material/oct_12_1_shardingspheres_metadata_loading_process/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/oct_12_1_shardingspheres_metadata_loading_process/</guid>
      <description>1. Overview
Metadata is the data that constitutes the data. In database terms, any data that describes the database is metadata. Column names, database names, usernames, table names, etc. and data customization library tables that store information about database objects are metadata. ShardingSphere core functions such as data sharding, encryption and decryption are all based on the database metadata.
This shows that metadata is the core of the ShardingSphere system and is also the core data of every data storage related middleware or component.</description>
    </item>
    
    <item>
      <title>A Distributed Database Middleware Ecosystem Driven by Open Source</title>
      <link>https://shardingsphere.apache.org/blog/en/material/oct_12_2_a_distributed_database_middleware_ecosystem_driven_by_open_source/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/oct_12_2_a_distributed_database_middleware_ecosystem_driven_by_open_source/</guid>
      <description>On July 21, 2021, Pan Juan, the SphereEx Co-Founder and Apache ShardingSphere PMC, was invited to give a keynote session at the 2021 AWS Cloud Summit Shanghai, on “Apache ShardingSphere: Open-Source Distributed Database Middleware Ecosystem Building”.
She introduced the expansion of the Open-Source project, community building, and how ShardingSphere practices the “Apache Way”. This article is a summary of Pan Juan’ s ideas.
A New Ecosystem Layer Positioned Above the Database &amp;amp; Under Business Applications Different industries, different users, different positionings, different requirements.</description>
    </item>
    
    <item>
      <title>How Can Students Participate in Open-Source Communities?</title>
      <link>https://shardingsphere.apache.org/blog/en/material/oct_12_3_how_can_students_participate_in_open_source_communities/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/oct_12_3_how_can_students_participate_in_open_source_communities/</guid>
      <description>Having some experience in Open-Source projects or communities is quite common for developers nowadays. Actually, not only adults but students should, and are increasingly likely to get involved in Open-Source projects.
If you want to know more about why you should consider being part of Open-Source projects, please refer to Why you should get involved in open-source community [1].
The last 2 years have been challenging to say the least. The Covid-19 pandemic has forever changed us in more ways than one.</description>
    </item>
    
    <item>
      <title>Updates and FAQ — Your 1 Minute Quick Start Guide to ShardingSphere</title>
      <link>https://shardingsphere.apache.org/blog/en/material/oct_12_4_updates_and_faq_your_1_minute_quick_start_guide_to_shardingsphere/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/oct_12_4_updates_and_faq_your_1_minute_quick_start_guide_to_shardingsphere/</guid>
      <description>Background Apache ShardingSphere is an Apache Top-Level project and is one of the most popular open-source big data projects. It was started about 5 years ago, and now ShardingSphere has over 14K+ stars and 270+ contributors in its community.
The successful project has already launched and updated many versions. Apache ShardingSphere now supports many powerful features and keeps optimizing its configuration rules. We want to help users understand all features and configuration rules, to help them quickly test and run components, and ultimately help them achieve best performance, so we decide to start the shardingsphere-example project.</description>
    </item>
    
    <item>
      <title>E-Hualu X ShardingSphere | Hulu Story’s Data Processing Shortcut</title>
      <link>https://shardingsphere.apache.org/blog/en/material/oct_12_5_e_hualu_shardingsphere_hulu_story_data_processing_shortcut/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/oct_12_5_e_hualu_shardingsphere_hulu_story_data_processing_shortcut/</guid>
      <description>“ShardingSphere has greatly simplified sharding development and maintenance, which has played a very important role in our rapid product release. We estimate that ShardingSphere has saved us at least 4 months of R&amp;amp;D costs.” — Shi Moxuan, Technical Director, E-Hualu
 At the beginning of this year, E-hualu officially launched its cloud service product “Hulu App” that targets non-business users. Since then, its architecture’s data stress has increased on a daily basis.</description>
    </item>
    
    <item>
      <title>AutoTable: Your Butler-Like Sharding Configuration Tool</title>
      <link>https://shardingsphere.apache.org/blog/en/material/oct_12_6_autotable_your_butler_like_sharding_configuration_tool/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/oct_12_6_autotable_your_butler_like_sharding_configuration_tool/</guid>
      <description>Summary In the previous article “An Introduction to DistSQL” written by Haoran Meng, the Apache ShardingSphere Committer shared the motivating reasons behind the design of DistSQL, explained its syntax system, and impressively showcased how you can use one SQL to create a sharding table.
We believe that you should be now more familair with the new capabilities Apache ShardingSphere can bring you.
Following the article’s publication, we received many messages from our readers and users.</description>
    </item>
    
    <item>
      <title>openGauss X ShardingSphere: One of the Top Distribution Solutions</title>
      <link>https://shardingsphere.apache.org/blog/en/material/oct_12_7_opengauss_shardingsphere_one_of_the_top_distribution_solutions/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/oct_12_7_opengauss_shardingsphere_one_of_the_top_distribution_solutions/</guid>
      <description>About openGauss openGauss is an open source relational database management system. Since its launch in June 2020, it has made waves the database management vertical. With an increasing number of partners and developers, it’s already reaping the benefits of the significant efforts &amp;amp; resources poured into building a successful database ecosystem.
Project Background Facing problems like data volume explosion, and super-high levels of concurrent data processing, openGauss made a choice: to adopt a distributed solution.</description>
    </item>
    
    <item>
      <title>ShardingSphere x Google Summer of Code: Students, How Was Your Open Source Experience?</title>
      <link>https://shardingsphere.apache.org/blog/en/material/oct_12_8_shardingsphere_google_summer_of_code_students_how_was_your_open_source_experience/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/oct_12_8_shardingsphere_google_summer_of_code_students_how_was_your_open_source_experience/</guid>
      <description>Recently the ShardingSphere community had the pleasure of contributing to the Google Summer of Code (GSoC), and mentoring the next generation of open source innovators. Our project was select to be part of this brilliant and long running program, to provide students from all over the world with an experience in open source software.
Thanoshan and Liangda are the students that worked with Apache ShardingSphere mentors during the latest GSoC, and continue contributing to the project ever since.</description>
    </item>
    
    <item>
      <title>ShardingSphere x JD Baitiao: Story of an Implementation Journey</title>
      <link>https://shardingsphere.apache.org/blog/en/material/oct_12_9_shardingsphere_jd_baitiao_story_of_an_implementation_journey/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/oct_12_9_shardingsphere_jd_baitiao_story_of_an_implementation_journey/</guid>
      <description>Apache ShardingSphere has become the best solution for JD Baitiao&amp;rsquo;s very large storage scenarios and scale-up. JD&amp;rsquo;s shopping festival weighed very much on our big data storage. I mean, like hundreds of millions of data sets.
  JD Baitiao, an internet credit products provider launched in 2014, has always been challenged by data explosion. Every shopping festival is like a technical test for us, but every time the technical staff professionals take proactive strategic initiatives in data architecture development to ensure everything goes smoothly.</description>
    </item>
    
    <item>
      <title>Apache ShardingSphere 5.0.0 New Features: Middleware to Ecosystem Evolution</title>
      <link>https://shardingsphere.apache.org/blog/en/material/nov_22_5.0.0_new/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/nov_22_5.0.0_new/</guid>
      <description>Apache ShardingSphere 5.0.0 New Features: Middleware to Ecosystem Evolution Having undergone nearly two years of development and polishing with versions 5.0.0-Alpha and 5.0.0-Beta, Apache ShardingSphere 5.0.0 GA version will finally be available in November.
Coincidentally November 10th marks the 3rd anniversary of ShardingSphere’s entry into the Apache Software Foundation. The ShardingSphere core team has been working hard together with the community to meet this special deadline and release the 5.0.0 GA version to celebrate the third anniversary with the broader community, and entire distributed database and security ecosystem.</description>
    </item>
    
    <item>
      <title>Integrating SCTL into RAL</title>
      <link>https://shardingsphere.apache.org/blog/en/material/nov_23_1_integrate_sctl_into_ral/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/nov_23_1_integrate_sctl_into_ral/</guid>
      <description>Integrating SCTL into RAL In the previous article “An Introduction to DistSQL” written by Haoran Meng, the Apache ShardingSphere Committer shared the motivating reasons behind the design of DistSQL, explained its syntax system, and impressively showcased how you can use one SQL to create a sharding table.
Recently, the ShardingSphere community has redesigned the SCTL grammar and the execution engine, integrating SCTL into the DistSQL syntax system. Now RAL contains the old SCTL function, making ShardingSphere&amp;rsquo;s command language even more convenient for database management.</description>
    </item>
    
    <item>
      <title>Create a Distributed Database Solution Based on PostgreSQL/openGauss</title>
      <link>https://shardingsphere.apache.org/blog/en/material/jan_28_blog_pg_create_a_distributed_database_solution_based_on_postgresql__opengauss/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/jan_28_blog_pg_create_a_distributed_database_solution_based_on_postgresql__opengauss/</guid>
      <description>Create a Distributed Database Solution Based on PostgreSQL/openGauss As the MySQL ShardingSphere-Proxy is becoming mature and widely accepted, ShardingSphere is also focusing on the PostgreSQL ShardingSphere-Proxy.
Compared with the alpha and beta, lots of improvements such as PostgreSQL agreement realization, SQL support and control, have been made in ShardingSphere-Proxy 5.0.0. This lays the foundation for full docking with the PostgreSQL ecosystem in the future. The ecosystem integration of ShardingSphere-Proxy and PostgreSQL provides users, on the basis of PostgreSQL database, with transparent and enhanced capabilities, such as: data sharding, read/write splitting, shadow database, data masking and data desensitization as well as distributed governance.</description>
    </item>
    
    <item>
      <title>Kernel Optimizations &amp; Upgrade Guide for Apache ShardingSphere 5.0.0 — The Ideal Database Management Ecosystem</title>
      <link>https://shardingsphere.apache.org/blog/en/material/jan_28_blog_x_kernel_optimizations__upgrade_guide_for_apache_shardingsphere_5.0.0_the_ideal_database_management_ecosystem/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/jan_28_blog_x_kernel_optimizations__upgrade_guide_for_apache_shardingsphere_5.0.0_the_ideal_database_management_ecosystem/</guid>
      <description>Kernel Optimizations &amp;amp; Upgrade Guide for Apache ShardingSphere 5.0.0 — The Ideal Database Management Ecosystem Having undergone almost two years of development and optimization, the Apache ShardingSphere 5.0.0 GA version has been recently released. Compared with the 4.1.1 GA version, the new version’s kernel is greatly improved:
  Kernel optimizations are subject to the pluggable architecture allowing users to combine kernel features as they wish.
  Aiming to improve SQL distributed query capabilities, the Federation Execution Engine is created to satisfy users’ needs in complex business scenarios.</description>
    </item>
    
    <item>
      <title>How to Develop Your Distributed SQL Statement in Apache ShardingSphere</title>
      <link>https://shardingsphere.apache.org/blog/en/material/jan_28_blog_x_how_to_develop_your_distributed_sql_statement_in_apache_shardingsphere/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/jan_28_blog_x_how_to_develop_your_distributed_sql_statement_in_apache_shardingsphere/</guid>
      <description>How to Develop Your Distributed SQL Statement in Apache ShardingSphere In the previous articles &amp;ldquo;An Introduction to DistSQL&amp;rdquo; and &amp;ldquo;Integrating SCTL Into DistSQL’s RAL— Making Apache ShardingSphere Perfect for Database Management&amp;rdquo;, the Apache ShardingSphere Committers shared the motivations behind the development of DistSQL, explained its syntax system, and impressively showcased how you can use just one SQL to create a sharding table.
Today, to help you gain a better understanding of DistSQL and develop your own DistSQL syntax, our community author analyzes the design &amp;amp; development process of DistSQL and showcases how you can implement a brand new DistSQL grammar in four stages of the development life cycle (i.</description>
    </item>
    
    <item>
      <title>F6 Automobile Technology’s Multimillion Rows of Data Sharding Strategy Based on Apache ShardingSphere</title>
      <link>https://shardingsphere.apache.org/blog/en/material/jan_28_f6_automobile_technologys_multimillion_rows_of_data_sharding_strategy_based_on_apache_shardings/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/jan_28_f6_automobile_technologys_multimillion_rows_of_data_sharding_strategy_based_on_apache_shardings/</guid>
      <description>F6 Automobile Technology’s Multimillion Rows of Data Sharding Strategy Based on Apache ShardingSphere F6 Automobile Technology is an Internet platform company focusing on the informatization of the automotive aftermarket.
It helps automotive repair companies (clients) build their smart management systems to digitally transform the auto aftermarket. The data of different auto repair companies will certainly be isolated from each other, so theoretically the data can be stored in different tables of different databases.</description>
    </item>
    
    <item>
      <title>Your Detailed Guide to Apache ShardingSphere’s Operating Modes</title>
      <link>https://shardingsphere.apache.org/blog/en/material/jan_28_your_detailed_guide_to_apache_shardingspheres_operating_modes/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/jan_28_your_detailed_guide_to_apache_shardingspheres_operating_modes/</guid>
      <description>Your Detailed Guide to Apache ShardingSphere’s Operating Modes In Apache ShardingSphere 5.0.0 GA version, we added the new concept Operating Mode and provided three configuration methods: Memory, Standalone, and Cluster. Why does ShardingSphere provide these operating modes? What are the differences between them in actual development scenarios?
This article is a guide for you to better understand ShardingSphere’s new operating modes.
Background: Distributed Governance Distributed governance is the foundation of cluster deployment in ShardingSphere.</description>
    </item>
    
    <item>
      <title>Apache ShardingSphere Enterprise Applications</title>
      <link>https://shardingsphere.apache.org/blog/en/material/jan_28_blog_apache_shardingsphere_enterprise_applications/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/jan_28_blog_apache_shardingsphere_enterprise_applications/</guid>
      <description>Apache ShardingSphere Enterprise Applications  To further understand application scenarios, enterprises’ needs, and improve dev teams’ understanding of Apache ShardingSphere, our community launched the “Enterprise Visits” series.
 Keep For our community’s first visit, we went to Asia’s leading workout &amp;amp; fitness trainer app maker “Keep” headquarters at Vanke Times Center, and shared our technologies with developers at Keep Co.
Way back in 2018, Keep had already deployed ShardingSphere capabilities such as sharding and read/write splitting in multiple application scenarios for its diversified lines of business.</description>
    </item>
    
    <item>
      <title>Full Link Online Stress Testing for Production Database: Apache ShardingSphere Shadow Database Feature Upgrade</title>
      <link>https://shardingsphere.apache.org/blog/en/material/jan_28_full_link_online_stress_testing_for_production_database_apache_shardingsphere_shadow_database_feature_upgrade/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/jan_28_full_link_online_stress_testing_for_production_database_apache_shardingsphere_shadow_database_feature_upgrade/</guid>
      <description>Full Link Online Stress Testing for Production Database: Apache ShardingSphere Shadow Database Feature Upgrade What is full link stress testing? As the Internet industry is growing rapidly, businesses that operate with large amounts of data are seeing a rapid expansion.
Predictably, ever changing customer demand is having a significant impact on the stability of their whole systems. For example, online food delivery platforms receive most of their customer orders at noon and in the evening.</description>
    </item>
    
    <item>
      <title>Apache ShardingSphere 5.1.0 Now Available</title>
      <link>https://shardingsphere.apache.org/blog/en/material/feb_18_apache_shardingsphere_5.1.0_now_avaliable/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/feb_18_apache_shardingsphere_5.1.0_now_avaliable/</guid>
      <description>Apache ShardingSphere 5.1.0 Now Available Apache ShardingSphere 5.1.0 is officially released and available. The previous 5.0.0 GA version was launched in November last year, and marked ShardingSphere’s evolution from middleware to an ecosystem.
This meant gaining the power to transform any database in a distributed database system, and enhance it with features such as data sharding, distributed transaction, data encryption, SQL audit, database gateway, and more.
For the past three months, the ShardingSphere community received a lot of feedback from developers, partners, and users across different industries.</description>
    </item>
    
    <item>
      <title>Apache ShardingSphere is on the Stack Overflow Podcast, InfoQ and FOSDEM!</title>
      <link>https://shardingsphere.apache.org/blog/en/material/feb_23_stack_overflow/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/feb_23_stack_overflow/</guid>
      <description>Apache ShardingSphere is on the Stack Overflow Podcast, InfoQ and FOSDEM! Our PMC Trista Pan, and our community contributor Yacine Si Tayeb, joined the Stack Overflow podcast to share about the Apache ShardingSphere ecosystem.
They shared the advantages of data sharding and how it splits a database into smaller distributed databases to spread query load across multiple servers.
During the conversation, they introduced the complexities that arise with large databases, the rise of open source in China, and how Trista’s position as the only female Apache member in China can help other women get into technology.</description>
    </item>
    
    <item>
      <title>Featured update! DISTSQL cluster governance capacity detailed explanation</title>
      <link>https://shardingsphere.apache.org/blog/en/material/mar_23_distsql_cluster_governance_capabilities/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/mar_23_distsql_cluster_governance_capabilities/</guid>
      <description>Featured update! DISTSQL cluster governance capacity detailed explanation Background Since the release of Apache ShardingSphere 5.0.0-Beta, DistSQL has quickly come to the forefront of users&#39; minds and has become increasingly popular among developers and operators for its unique &amp;ldquo;dynamic, no restart&amp;rdquo; advantage and beautiful syntax that is close to standard SQL. With the 5.0.0 and 5.1.0 iterations, the ShardingSphere community has once again added a large amount of syntax to DistSQL, bringing many useful features.</description>
    </item>
    
    <item>
      <title>SQL Parse Format Function — A Technical Deep Dive by Apache ShardingSphere</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_03_09_sql_parse_format_function_a_technical_deep_dive_by_apache_shardingsphere/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_03_09_sql_parse_format_function_a_technical_deep_dive_by_apache_shardingsphere/</guid>
      <description>Complicted SQL statements are some of the most common problems that data scientists and engineers encounter. For example, can you comprehend at first glance the complex SQL statement below?
select a.order_id,a.status,sum(b.money) as money from t_order a inner join (select c.order_id as order_id, c.number * d.price as money from t_order_detail c inner join t_order_price d on c.s_id = d.s_id) b on a.order_id = b.order_id where b.money &amp;gt; 100 group by a.order_id How about formatting it?</description>
    </item>
    
    <item>
      <title>Asia’s E-Commerce Giant Dangdang Increases Order Processing Speed by 30% — Saves Over Ten Million in Technology Budget with Apache ShardingSphere</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_03_11_asias_e-commerce_giant_dangdang_increases_order_processing_speed_by_30_saves_over_ten_million_in_technology_budget_with_apache_shardingsphere/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_03_11_asias_e-commerce_giant_dangdang_increases_order_processing_speed_by_30_saves_over_ten_million_in_technology_budget_with_apache_shardingsphere/</guid>
      <description>Apache ShardingSphere is an easy-to-use and stable product, making Dangdang’s warehouse management system (WMS) even more powerful. Integrated with WMS, ShardingSphere plays a vital role in reforming the supply chain system.
   Li Yong, Head of WMS Technology, Dangdang   Ffollowing Apache ShardingSphere 5.0.0 GA release in November 2021, the 5.1.0 version was released last month. Having gone through over two years of polishing, ShardingSphere’s plugin-oriented ecosystem is beginning to take shape, and the project embarks on the evolution from a simple data sharding middleware to a mature distributed database ecosystem driven by the concept of Database Plus.</description>
    </item>
    
    <item>
      <title>Create a Distributed Database with High Availability with Apache ShardingSphere</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_03_16_create_a_distributed_database_with_high_availability_with_apache_shardingsphere/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_03_16_create_a_distributed_database_with_high_availability_with_apache_shardingsphere/</guid>
      <description>What is Database High Availability (HA)? Inthe digital age, modern business systems have to be highly available, reliable, and stable. As the cornerstone of the modern business system, databases are supposed to embrace high availability.
HA allows databases to switch over services between primary and secondary databases and to automatically select Master, so it can pick the best node as the master when the previous one crashes.
MySQL High Availability There are plenty of MySQL high availability options, but each of them has its pros and cons.</description>
    </item>
    
    <item>
      <title>Apache ShardingSphere -Proxy Performance with PostgreSQL is Improved 26.8% with Version 5.1.0</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_03_23_apache_shardingsphere_proxy_performance_with_postgresql_is_improved_26.8_with_version_5.1.0/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_03_23_apache_shardingsphere_proxy_performance_with_postgresql_is_improved_26.8_with_version_5.1.0/</guid>
      <description>Increasing Apache ShardingSphere adoption across various industries, has allowed our community to receive valuable feedback for our latest release. Our team has made numerous performance optimizations to the ShardingSphere Kernel, interface and etc. since the release of Version 5.0.0. This article introduces some of the performance optimizations at the code level, and showcases the optimized results of ShardingSphere-Proxy TPC-C benchmark tests.
Optimizations Correct the Use of Optional
java.util.Optional, introduced by Java 8, it makes the code cleaner.</description>
    </item>
    
    <item>
      <title>Executor Engine: Performance Optimization Showcase with Apache ShardingSphere 5.1.0</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_03_18_executor_engine_performance_optimization_showcase_with_apache_shardingsphere_5.1.0/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_03_18_executor_engine_performance_optimization_showcase_with_apache_shardingsphere_5.1.0/</guid>
      <description>Our community’s previous two blog posts about the SQL Format function and High Availability (HA) introduced a comprehensive overview of Apache ShardingSphere’s updates.
Apart from many new practical features, we also have been optimizing overall performance. In this post, our community author is going to showcase with specific SQL examples how Apache ShardingSphere’s Executor Engine performance is greatly optimized.
In this post, our community author is going to showcase with specific SQL examples how Apache ShardingSphere’s Executor Engine performance is greatly optimized.</description>
    </item>
    
    <item>
      <title>A Deep Dive Into Observability —Apache ShardingSphere Agent</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_03_25_a_deep_dive_into_observability_apache_shardingsphere_agent/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_03_25_a_deep_dive_into_observability_apache_shardingsphere_agent/</guid>
      <description>Apache ShardingSphere follows Database Plus — our community’s guiding development concept for creating a complete data service ecosystem that allows you to transform any database into a distributed database system, and easily enhance it with sharding, elastic scaling, data encryption features &amp;amp; more.
Users often need to monitor Apache ShardingSphere’s performance in a real application scenario to find specific problems.
It’s a given that Application Performance Monitoring (APM) can monitor and diagnose system performance by collecting, storing, and analyzing observable data.</description>
    </item>
    
    <item>
      <title>CITIC Industrial Cloud — Apache ShardingSphere Enterprise Applications</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_03_29_citic_industrial_cloud_apache_shardingsphere_enterprise_applications/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_03_29_citic_industrial_cloud_apache_shardingsphere_enterprise_applications/</guid>
      <description>To further understand application scenarios, and enterprises’ needs, and improve dev teams’ understanding of Apache ShardingSphere, our community launched the “Enterprise Visits” series.
On February 28, the Apache ShardingSphere core development team visited CITIC Industrial Cloud Co., Ltd at the invitation of the company. During the meetup, Zhang Liang, Apache ShardingSphere PMC Chair and SphereEx Founder provided details on open source ecosystem building, and ShardingSphere production scenario-oriented solutions.
CITIC Group is China’s largest conglomerate.</description>
    </item>
    
    <item>
      <title>1st Academic Paper by Apache ShardingSphere Accepted by ICDE, A Top-Level Database Conference</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_04_01_1st_academic_paper_by_apache_shardingsphere_accepted_by_icde_a_top-level_database_conference/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_04_01_1st_academic_paper_by_apache_shardingsphere_accepted_by_icde_a_top-level_database_conference/</guid>
      <description>ICDE Accepted Apache ShardingSphere’s First Academic Paper Recently, “Apache ShardingSphere: A Holistic and Pluggable Platform for Data Sharding”, co-authored by the Apache ShardingSphere community, SphereEx Lab and the Department of Computer Science of Chongqing University, has been accepted by The International Conference on Data Engineering (ICDE), one of the top international conferences on data engineering and databases. This conference paper is the first one focusing on data sharding in the database industry.</description>
    </item>
    
    <item>
      <title>A Holistic Pluggable Platform for Data Sharding — ICDE 2022 &amp; Understanding Apache ShardingSphere</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_04_06_a_holistic_pluggable_platform_for_data_sharding_icde_2022_understanding_apache_shardingsphere/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_04_06_a_holistic_pluggable_platform_for_data_sharding_icde_2022_understanding_apache_shardingsphere/</guid>
      <description>I bet you have at least once experienced accessibility issues on your preferred online shopping website. Yo may have not even thought much about it, or you may have attirbuted it to a slow internet connction, but the truth is that the increasing concurrent access that databases cannot deal with is one of the reasons.
Then it begs the question: how can we effectively solve the current database challenges? Data sharding could be a solution.</description>
    </item>
    
    <item>
      <title>A Practical Guide to Apache ShardingSphere’s HINT</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_04_13_a_practical_guide_to_apache_shardingspheres_hint/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_04_13_a_practical_guide_to_apache_shardingspheres_hint/</guid>
      <description>Background Apache ShardingSphere has gradually introduced various features based on practical user requirements, such as data sharding and read/write splitting.
The data sharding feature contains many practical sharding strategies such as Standard Sharding Strategy and Complex Sharding Strategy, and users can easily configure the corresponding sharding algorithms.
When it comes to Read/Write Splitting, Apache ShardingSphere provides users with two types called Static and Dynamic, and abundant load balancing algorithms.
Sharding and Read/Write Splitting functions of ShardingSphere are already very useful, but scenarios are ever-changing.</description>
    </item>
    
    <item>
      <title>Apache ShardingSphere 5.1.1 Is Available</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_04_18_apache_shardingsphere_5.1.1_is_available/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_04_18_apache_shardingsphere_5.1.1_is_available/</guid>
      <description>In less than two months since the release of Apache ShardingSphere 5.1.0, our community has merged 698 PRs from teams or individuals around the world to bring you the new 5.1.1 release. This release has a number of optimizations in terms of features, performance, testing, documentation, examples and more.
  The performance aspect deserves special mention, as we adopt the industry-standard TPC-C test model to run Apache ShardingSphere 5.</description>
    </item>
    
    <item>
      <title>Apache ShardingSphere &amp; openGauss: Breaking the Distributed Database Performance Record with 10 Million tpmC</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_04_21_apache_shardingsphere_opengauss_breaking_the_distributed_database_performance_record_with_10_million_tpmc/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_04_21_apache_shardingsphere_opengauss_breaking_the_distributed_database_performance_record_with_10_million_tpmc/</guid>
      <description>Our open source community has cooperated Huawei’s openGauss to build a distributed solution with Apache ShardingSphere and openGauss.
We tested performance together with openGauss on 16 servers for more than one hour. The results were great: our joint solution broke the performance bottleneck of a single machine with a benchmark result of 10 million transactions per minute (tpmC) on average.
Breaking the 10 Million tpmC Barrier In this test, the openGauss community ran this TPC-C testing on BenchmarkSQL 5.</description>
    </item>
    
    <item>
      <title>How to Use ShardingSphere-Proxy in Real Production Scenarios—Your Quick Start Guide</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_04_26_how_to_use_shardingsphere-proxy_in_real_production_scenarios_your_quick_start_guide/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_04_26_how_to_use_shardingsphere-proxy_in_real_production_scenarios_your_quick_start_guide/</guid>
      <description>This post analyzes ops &amp;amp; maintenance solutions with experiences taken from real production scenarios for data sharding and other functions provided by ShardingSphere-Proxy Version 5.1.0.
 Unless otherwise specified, in the following examples, when we say “database” we refer to MySQL.
 What does ShardingSphere-Proxy do? ShardingSphere-Proxy allows users to use Apache ShardingSphere just as if it were a native database.
To gain a better understanding of what’s ShardingSphere-proxy, let’s take a look at its definition provided, by Apache ShardingSphere’s official website:</description>
    </item>
    
    <item>
      <title>Apache ShardingSphere Enterprise Applications: Zhuanzhuan’s Transaction System with 100s of Millions of Records</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_04_29_apache_shardingsphere_enterprise_applications_zhuanzhuans_transaction_system_with_100s_of_millions_of_records/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_04_29_apache_shardingsphere_enterprise_applications_zhuanzhuans_transaction_system_with_100s_of_millions_of_records/</guid>
      <description>Background and Challenges Zhuanzhuan is an internet platform that allows it users to sell their second-hand stuff — sort of an eBay of the East. Its business had been booming, and with it the ordering system started to face increasing performances challenges. The order database is the cornerstone of the system, and its performance should not be underestimated.
Challenges:
 During promotions and special discount periods the burden on databases is heaby with tens of thousands of single database queries per second (qps) taking up huge database resources, and causing a significant reduction in write performance.</description>
    </item>
    
    <item>
      <title>What’s the Database Plus concept and what challenges can it solve?</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_05_10_whats_the_database_plus_concept_and_what_challenges_can_it_solve/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_05_10_whats_the_database_plus_concept_and_what_challenges_can_it_solve/</guid>
      <description>Background For a long time, unification or fragmentation were the two most popular predictions for the future of databases. With the advance of digitization, a single scenario cannot meet the needs of diversified applications — making database fragmentation an irreversible trend. While Oracle, the commercial database with the largest market share, has no obvious weaknesses, all sorts of new databases are still entering the market. Today, over 300 databases are ranked on DB-Engines.</description>
    </item>
    
    <item>
      <title>How does Apache ShardingSphere implement distributed transactions?</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_05_17_how_does_apache_shardingsphere_implement_distributed_transactions/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_05_17_how_does_apache_shardingsphere_implement_distributed_transactions/</guid>
      <description>With increasing amounts of data and increasing traffic load, business systems are facing significant challenges, and a strong demand for the scalability of database systems has emerged. Problems in online scaling of traditional standalone databases such as Oracle, MySQL, SQL Server, and PostgreSQL is now more evident than ever. In such cases, the distributed database that can scale out was conceived to solve these scaling challenges. All of this means that distributed transactions are a problem that must be tackled.</description>
    </item>
    
    <item>
      <title>Apache ShardingSphere Enterprise User Case: Zhongshang Huimin’s Transaction Middle Platform Architecture</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_05_19_apache_shardingsphere_enterprise_user_case_zhongshang_huimins_transaction_middle_platform_architecture/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_05_19_apache_shardingsphere_enterprise_user_case_zhongshang_huimins_transaction_middle_platform_architecture/</guid>
      <description>The FMCG (fast moving consumer-goods) industry can no longer meet current development requirements. The traditional way of only upgrading the end of the supply chain cannot achieve high-quality business development. Huimin focuses on order fulfillment and delivery service for over one million community supermarkets, transforming and upgrading from serving retail terminal stores to promoting the digitization of the whole FMCG industry chain.
It is committed to building a B2B2C data closed-loop operating system, providing brand owners, distributors, and community supermarkets with transformed and upgraded solutions for the whole chain covering purchasing, marketing, operation, and distribution.</description>
    </item>
    
    <item>
      <title>Your Guide to DistSQL Cluster Governance Capability——Apache ShardingSphere Feature Update</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_05_24_your_guide_to_distsql_cluster_governance_capability_apache_shardingsphere_feature_update/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_05_24_your_guide_to_distsql_cluster_governance_capability_apache_shardingsphere_feature_update/</guid>
      <description>Since Apache ShardingSphere 5.0.0-Beta version included DistSQL, it made the project increasingly loved by developers and Ops teams for its advantages such as dynamic effects, no restart, and elegant syntax close to standard SQL.
With upgrades to 5.0.0 and 5.1.0, the ShardingSphere community has once again added abundant syntax to DistSQL, bringing more practical features.
In this post, the community co-authors will share the latest functions of DistSQL from the perspective of “cluster governance”.</description>
    </item>
    
    <item>
      <title>Database Mesh 2.0: Database Governance in a Cloud Native Environment</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_06_02_database_mesh_2.0_database_governance_in_a_cloud_native_environment/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_06_02_database_mesh_2.0_database_governance_in_a_cloud_native_environment/</guid>
      <description>In March 2018, an article titled Service Mesh is the broad trend, what about Database Mesh?, was pubslished on InfoQ China and went viral in the technical community. In this article, Zhang Liang, the founder of Apache ShardingSphere, described Database Mesh concept along with the idea of Service Mesh. Four years later, the Database Mesh concept has been integrated by several companies together with their own tools and ecosystems. Today, in addition to Service Mesh, a variety of “X Mesh” concepts such as ChaosMesh, EventMesh, IOMesh have emerged.</description>
    </item>
    
    <item>
      <title>How does Apache ShardingSphere standardize and format code? We use Spotless</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_06_08_how_does_apache_shardingsphere_standardize_and_format_code_we_use_spotless/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_06_08_how_does_apache_shardingsphere_standardize_and_format_code_we_use_spotless/</guid>
      <description>Why do we need to format code? Simply put, it’s to make code easier to read, understand, and modify.
As a Top-Level Apache open source project, ShardingSphere has 400 contributors as of today. Since most developers do not have the same coding style, it is not easy to standardize the project’s overall code format in a GitHub open collaboration model. To solve this issue, ShardingSphere uses Spotless to unify code formatting.</description>
    </item>
    
    <item>
      <title>Apache ShardingSphere Enterprise Applications — Bilibili</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_06_10_apache_shardingsphere_enterprise_applications_bilibili/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_06_10_apache_shardingsphere_enterprise_applications_bilibili/</guid>
      <description>To further understand application scenarios, and enterprises’ needs, and improve dev teams’ understanding of Apache ShardingSphere, our community launched the “Enterprise Visits” series.
 Apache ShardingSphere’s core contributor team was invited to the headquarters of Bilibili in Shanghai. Our PMC Chair, Zhang Liang, discussed with Bilibili’s tech team the e-commerce and digital entertainment verticals application scenarios, and the capabilities of different versions of ShardingSphere.
With the unprecedented growth of data volume and increasingly diversified data application scenarios, different platforms, businesses, and scenarios have resulted in database applications’ fragmentation.</description>
    </item>
    
    <item>
      <title>Understanding Apache ShardingSphere&#39;s SPI, and why it’s simpler than Dubbo’s</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_06_16_understanding_apache_shardingspheres_spi_and_why_its_simpler_than_dubbos/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_06_16_understanding_apache_shardingspheres_spi_and_why_its_simpler_than_dubbos/</guid>
      <description>Why learn ShardingSphere’s SPI? You might already be familiar with Java and Dubbo’s SPI (Service Provider Interface) mechanism, so you may wonder “why would I learn about ShardingSphere’s SPI mechanism?” The reasons are quite simple:
 ShardingSphere’s source code is simpler and easier to adapt. The execution of ShardingSphere’s SPI mechanism is quite smooth, with less code required for day-to-day operations. Unlike Dubbo’s SPI mechanism and its additional features related to IoC, the one in ShardingSphere only preserves the fundamental structure, making it effortless to use.</description>
    </item>
    
    <item>
      <title>Heterogeneous migration: reducing Dangdang’s customer system RTO 60x and increasing speed by 20%</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_06_21_heterogeneous_migration_reducing_dangdangs_customer_system_rto_60x_and_increasing_speed_by_20/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_06_21_heterogeneous_migration_reducing_dangdangs_customer_system_rto_60x_and_increasing_speed_by_20/</guid>
      <description>Apache ShardingSphere helps Dangdang rebuild its customer system with 350 million users, and seamlessly transition from a PHP+SQL Server technology stack to a Java+ShardingSphere+MySQL stack. The performance, availability, and maintainability of its customer system have been significantly improved, which is the best practice of ShardingSphere’s heterogeneous migration.
 Dangdang’s customer system Dangdang’s customer system is mainly responsible for account registration, login, and privacy data maintenance. Its previous technology stack was based on PHP and SQL Server, which means a standard centralized architecture, as shown in the figure below.</description>
    </item>
    
    <item>
      <title>Cloud native deployment for a high-performance data gateway &#43; new API driver: Apache ShardingSphere 5.1.2 is released</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_06_28_cloud_native_deployment_for_a_high-performance_data_gateway_new_api_driver_apache_shardingsphere_5.1.2_is_released/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_06_28_cloud_native_deployment_for_a_high-performance_data_gateway_new_api_driver_apache_shardingsphere_5.1.2_is_released/</guid>
      <description>Following the release of Apache ShardingSphere 5.1.1, our community integrated 1,028 PRs from contributors all over the world to bring you the latest 5.1.2 version. The new version includes a lot of improvements in terms of functions, performance, tests, documentation, examples, etc.
Standout new features include:
 ShardingSphere-Proxy Helm Chart. SQL dialect translation. Using ShardingSphere-JDBC as a Driver.  These new capabilities boosted ShardingSphere’s data gateway capability, enabling ShardingSphere to be deployed on the cloud while optimizing user experience.</description>
    </item>
    
    <item>
      <title>ShardingSphere &amp; Database Mesh</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_06_30_shardingsphere__database_mesh/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_06_30_shardingsphere__database_mesh/</guid>
      <description>Some time ago, SphereEx, a startup formed by Apache ShardingSphere’s core contributor team, officially launched the Database Mesh 2.0 concept and its associated open source solution “Pisanix”, sparking discussion and reflection in the community about ShardingSphere and Database Mesh.
Some community users might be wondering why would you go through the trouble of starting from scratch in a new field when you’re already part of a successful open source project like Apache ShardingSphere?</description>
    </item>
    
    <item>
      <title>ShardingSphere-JDBC Driver Released: A JDBC Driver That Requires No Code Modifications</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_07_06_shardingsphere-jdbc_driver_released_a_jdbc_driver_that_requires_no_code_modifications/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_07_06_shardingsphere-jdbc_driver_released_a_jdbc_driver_that_requires_no_code_modifications/</guid>
      <description>Background ShardingSphereDataSourceFactory is the most basic user API of Apache ShardingSphere JDBC, and it is used to transform users&#39; rule configuration objects and generate the standard implementation of the DataSource.
It also provides YamlShardingSphereDataSourceFactory for YAML configuration, as well as the custom namespace for the Spring and Spring Boot Starter.
DataSource is a standard Java JDBC interface. Engineers can use it to further create JDBC-compliant Connection, Statement, PreparedStatement, ResultSet, and other familiar standard objects.</description>
    </item>
    
    <item>
      <title>ShardingSphere-Proxy Front-End Protocol Troubleshooting Guide and Examples</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_07_08_shardingsphere-proxy_front-end_protocol_troubleshooting_guide_and_examples/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_07_08_shardingsphere-proxy_front-end_protocol_troubleshooting_guide_and_examples/</guid>
      <description>ShardingSphere-Proxy, positioned as a transparent database proxy, is one of Apache ShardingSphere’s access points.
ShardingSphere-Proxy implements a database protocol that can be accessed by any client using or compatible with MySQL / PostgreSQL / openGauss protocols. The advantage of ShardingSphere-Proxy over ShardingSphere-JDBC is the support for heterogeneous languages and the operable entry point to the database cluster for DBAs.
Similar to ShardingSphere’s SQL parsing module, establishing ShardingSphere-Proxy’s support for database protocols is a long-term process that requires developers to continuously improve the database protocol deployment.</description>
    </item>
    
    <item>
      <title>ShardingSphere Cloud Applications: An out-of-the-box ShardingSphere-Proxy Cluster</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_07_12_shardingsphere_cloud_applications_an_out-of-the-box_shardingsphere-proxy_cluster/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_07_12_shardingsphere_cloud_applications_an_out-of-the-box_shardingsphere-proxy_cluster/</guid>
      <description>The Apache ShardingSphere v5.1.2 update introduces three new features, one of which allows using the ShardingSphere-Proxy chart to rapidly deploy a set of ShardingSphere-Proxy clusters in a cloud environment. This post takes a closer look at this feature.
Background and Pain Points In a cloud-native environment, an application can be deployed in batches in multiple different environments. It is difficult to deploy it into a new environment by reusing the original YAML.</description>
    </item>
    
    <item>
      <title>User Case: China Unicom Digital Technology - Ensuring Stability, Efficiency, and Replicability at Scale</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_07_20_user_case_china_unicom_digital_technology_ensuring_stability_efficiency_and_replicability_at_scale/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_07_20_user_case_china_unicom_digital_technology_ensuring_stability_efficiency_and_replicability_at_scale/</guid>
      <description>China Unicom Digital Tech is the subsidiary of China Unicom, a global leading telecommunication operator with over 310 million subscribers as of 2021.
The company integrates with China Unicom’s capabilities such as cloud computing, Big Data, IoT, AI, blockchain, and security and touches on smart city, industrial internet, ecological protection, cultural tourism, and other fields.
Unicom Digital Tech has accumulated a large number of industry benchmark cases and successfully provided customers with diverse and professional products &amp;amp; services.</description>
    </item>
    
    <item>
      <title>DistSQL Applications: Building a Dynamic Distributed Database</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_07_26_distsql_applications_building_a_dynamic_distributed_database/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_07_26_distsql_applications_building_a_dynamic_distributed_database/</guid>
      <description>Background Ever since the release of ShardingSphere 5.0.0, DistSQL has been providing strong dynamic management capabilities to the ShardingSphere ecosystem.
Thanks to DistSQL, users have been empowered to do the following:
 Create logical databases online. Dynamically configure rules (i.e. sharding, data encryption, read/write splitting, database discovery, shadow DB, and global rules). Adjust storage resources in real-time. Switch transaction types instantly. Turn SQL logs on and off at any time. Preview the SQL routing results.</description>
    </item>
    
    <item>
      <title>Database Plus’s Embracing the Cloud: ShardingSphere-on-Cloud Solution Released</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_07_28_database_pluss_embracing_the_cloud_shardingsphere-on-cloud_solution_released/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_07_28_database_pluss_embracing_the_cloud_shardingsphere-on-cloud_solution_released/</guid>
      <description>As a follower of the Database Plus development concept, ShardingSphere has successfully passed production environment tests across multiple industries and gained popularity among community enthusiasts.
As Kubernetes has become the de facto standard for container orchestration, the cloud-native concept has gone viral in the tech world. Apache ShardingSphere, as a database enhancement engine with an open ecosystem, has many similarities with Kubernetes in its design concept. So SphereEx took the lead in launching ShardingSphere-on-Cloud, its cloud solution for ShardingSphere.</description>
    </item>
    
    <item>
      <title>Book Release: “A Definitive Guide to Apache ShardingSphere” is Published Internationally</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_08_02_book_release_a_definitive_guide_to_apache_shardingsphere_is_published_internationally/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_08_02_book_release_a_definitive_guide_to_apache_shardingsphere_is_published_internationally/</guid>
      <description>Recently, A Definitive Guide to Apache ShardingSphere, a technical book co-written by Pan Juan, Zhang Liang, and Yacine Si Tayeb, core members of Apache ShardingSphere, was officially launched internationally.
As the first book that comprehensively introduces ShardingSphere and demos several design details and best practices, A Definitive Guide to Apache ShardingSphere was written by core contributors and the founder of the ShardingSphere project.
 “Many developers would like to have a complete document or book to understand the design concept of ShardingSphere and how to use it effectively.</description>
    </item>
    
    <item>
      <title>First Look at ShardingSphere 5.2.0 &amp; In-Person Meetup on Massive Data Management Practices</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_09_02_first_look_at_shardingsphere_5.2.0__in-person_meetup_on_massive_data_management_practices/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_09_02_first_look_at_shardingsphere_5.2.0__in-person_meetup_on_massive_data_management_practices/</guid>
      <description>One more day before ShardingSphere&amp;rsquo;s first in-person meetup in Beijing on September 3, 2022.
Join us to learn about the best practices and technical highlights of Apache ShardingSphere&amp;rsquo;s latest release - version5.2.0.
On Saturday, the first in-person Meetup of the ShardingSphere Community will be held in Beijing on Sep 3, 2022. Four technology experts from the developers’ community are invited to give you a detailed analysis of the following:
 How ShardingSphere can rapidly improve the data application ability of ordinary users driven by cloud scenarios.</description>
    </item>
    
    <item>
      <title>Apache ShardingSphere Enterprise User Case - Energy Monster</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_09_06_apache_shardingsphere_enterprise_user_case_-_energy_monster/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_09_06_apache_shardingsphere_enterprise_user_case_-_energy_monster/</guid>
      <description>Energy Monster’s application of ShardingSphere-JDBC Energy Monster is a consumer tech company with the mission to energize everyday life. The company is the largest provider of mobile device charging services in Asia.
As the company’s business concurrency volume is getting larger, the amount of data generated (users, orders, activities, etc.) increases each day. The traditional relational database has proven to be inadequate in supporting millions or tens of millions of data volumes in a single database or table.</description>
    </item>
    
    <item>
      <title>Apache ShardingSphere 5.2.0 is Released!</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_09_08_apache_shardingsphere_5.2.0_is_released_bringing_new_cloud_native_possibilities/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_09_08_apache_shardingsphere_5.2.0_is_released_bringing_new_cloud_native_possibilities/</guid>
      <description>Our new 5.2.0 release enhances features such as SQL audit, elastic migration, SQL execution process management, and data governance on the cloud.
Introduction Since Apache ShardingSphere released version 5.1.2 at the end of June, our community has continued to optimize and enhance its product features. The community merged 1,728 PRs from teams and individuals around the world. The resulting 5.2.0 release has been optimized in terms of its features, performance, testing, documentation, examples, etc.</description>
    </item>
    
    <item>
      <title>How does ShardingSphere’s Show processlist &amp; Kill Work?</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_09_22_how_does_shardingspheres_show_processlist__kill_work/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_09_22_how_does_shardingspheres_show_processlist__kill_work/</guid>
      <description>For those of you who often use databases, you may wonder:
  How do I check what SQL is currently being executed by the database, and in what state?
  How do I terminate abnormal SQL? For instance, if a SELECT statement used to query a table with massive data does not carry query conditions, it would drag down the performance of the entire database. This may push to want to terminate this abnormal SQL.</description>
    </item>
    
    <item>
      <title> ShardingSphere 5.2.0: Audit for sharding intercepts unreasonable requests in multi-shards scenarios</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_10_14_shardingsphere_5.2.0_audit_for_sharding_intercepts_unreasonable_requests_in_multi-shards_scenarios/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_10_14_shardingsphere_5.2.0_audit_for_sharding_intercepts_unreasonable_requests_in_multi-shards_scenarios/</guid>
      <description>1. Background Thanks to our continuous review of the ShardingSphere&amp;rsquo;s community feedback that we use to develop features such as data sharding and read/write splitting, we found that some users create a large number of shards when using the data sharding feature.
In such cases, there can be 1,000 physical tables corresponding to a sharding logical table, which largely disturbs users.
For instance, a SELECT * FROM t_order statement will lead to a full-route, which is obviously not the case for OLTP.</description>
    </item>
    
    <item>
      <title>ShardingSphere 5.2.1 is released — Here are the highlights</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_10_25_shardingsphere_5.2.1_is_released-here_are_the_highlights/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_10_25_shardingsphere_5.2.1_is_released-here_are_the_highlights/</guid>
      <description>Our new 5.2.1 release brings new features and enhancements such as the ShardingSphere system database, SQL HINT mandatory sharding routing, asynchronous data consistency check, and support for Consul and Nacos governance center.
Introduction Following 1.5 months in development, Apache ShardingSphere 5.2.1 is released. Our community merged 614 PRs from teams and individuals around the world. The resulting 5.2.1 release has been optimized in terms of features, performance, testing, documentation, examples, etc.</description>
    </item>
    
    <item>
      <title>ElasticJob 3.0.2 is released including failover optimization, scheduling stability, and Java 19 compatibility</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_10_27_elasticjob_3.0.2_is_released_with_failover_optimization_scheduling_stability_and_java_19_compatibility/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_10_27_elasticjob_3.0.2_is_released_with_failover_optimization_scheduling_stability_and_java_19_compatibility/</guid>
      <description>ElasticJob, one of the sub-projects of the Apache ShardingSphere community, is a distributed scheduling solution oriented towards Internet applications and massive tasks.
Since ElasticJob 3.0.1 was released, we’ve received a lot of feedback from users on GitHub. After merging the code committed by the contributors, ElasticJob has been significantly optimized.
The resulting ElasticJob 3.0.2 has been improved in terms of Failover, scheduling stability, job API, and Java 19 compatibility.
Release 3.</description>
    </item>
    
    <item>
      <title>Alibaba Cloud&#39;s OpenSergo &amp; ShardingSphere release database governance standard for microservices - combining Database Plus and Database Mesh concepts</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_11_15_alibaba_clouds_opensergo__shardingsphere_release_database_governance_standard_for_microservices_-_combining_database_plus_and_database_mesh_concepts/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_11_15_alibaba_clouds_opensergo__shardingsphere_release_database_governance_standard_for_microservices_-_combining_database_plus_and_database_mesh_concepts/</guid>
      <description>Background Recently, Alibaba Cloud&amp;rsquo;s OpenSergo and ShardingSphere jointly released the database governance standard for microservices. By combining the Database Plus and Database Mesh concepts, the two communities have standardized the existing database governance concepts, patterns, and paths, further completing the database governance ecosystem under the cloud-native environment.
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:</description>
    </item>
    
    <item>
      <title>ElasticJob UI now supports Auth 2.0, OIDC and SAML single sign-on thanks to Casdoor</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_11_22_elasticjob_ui_now_supports_auth_2.0_oidc_and_saml_single_sign-on_thanks_to_casdoor/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_11_22_elasticjob_ui_now_supports_auth_2.0_oidc_and_saml_single_sign-on_thanks_to_casdoor/</guid>
      <description>If you&amp;rsquo;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&amp;rsquo;s built-in Casdoor.
 Background ElasticJob UI is the visual admin console of ElasticJob, whose target users are developers and DevOps teams rather than users. Generally, it is deployed only in the internal environment and thus its R&amp;amp;D focus more on its features.</description>
    </item>
    
    <item>
      <title>ShardingSphere-on-Cloud &amp; Pisanix replace Sidecar for a true cloud-native experience</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_11_24_shardingsphere-on-cloud__pisanix_replace_sidecar_for_a_true_cloud-native_experience/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_11_24_shardingsphere-on-cloud__pisanix_replace_sidecar_for_a_true_cloud-native_experience/</guid>
      <description>Background For a while, many of our blog posts have shown that ShardingSphere consists of three independent products: ShardingSphere-JDBC, ShardingSphere-Proxy, and ShardingSphere-Sidecar.
As ShardingSphere has become increasingly popular, JDBC and Proxy have been used in numerous production environments, but Sidecar&amp;rsquo;s status has remaining as &amp;ldquo;under planning&amp;rdquo;. 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.</description>
    </item>
    
    <item>
      <title>ShardingSphere 5.3.0 is released: new features and improvements</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_12_08_shardingsphere_5.3.0_is_released_new_features_and_improvements/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_12_08_shardingsphere_5.3.0_is_released_new_features_and_improvements/</guid>
      <description>After 1.5 months in development, Apache ShardingSphere 5.3.0 is released. Our community merged 687 PRs 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.</description>
    </item>
    
    <item>
      <title>Use AWS CloudFormation to create ShardingSphere HA clusters</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_12_13_use_aws_cloudformation_to_create_shardingsphere_ha_clusters/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_12_13_use_aws_cloudformation_to_create_shardingsphere_ha_clusters/</guid>
      <description>What&amp;rsquo;s AWS CloudFormation? AWS CloudFormation is an infrastructure as code (IaC) service that allows you to easily model, provision, and manage all the cloud services provided by AWS by custom templates.
Traditionally, when we create a new architecture, we need to manually configure it in AWS step by step which can cause some errors such forgetting some steps.
Now with CloudFormation, we can use declarative configuration to define resources and then create and manage them without worrying about the dependency order of the resources.</description>
    </item>
    
    <item>
      <title>Fuzzy query for CipherColumn | ShardingSphere 5.3.0 Deep Dive</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2022_12_28_fuzzy_query_for_ciphercolumn__shardingsphere_5.3.0_deep_dive/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2022_12_28_fuzzy_query_for_ciphercolumn__shardingsphere_5.3.0_deep_dive/</guid>
      <description>1. Background Apache ShardingSphere supports data encryption. By parsing users&#39; SQL input and rewriting the SQL according to the users&#39; encryption rules, the original data is encrypted and stored with ciphertext data in the underlying database at the same time.
When a user queries the data, it only fetches the ciphertext data from the database, decrypts it, and finally returns the decrypted original data to the user. However, because the encryption algorithm encrypts the whole string, fuzzy queries cannot be achieved.</description>
    </item>
    
    <item>
      <title>Refactoring the DistSQL Syntax | ShardingSphere 5.3.0 Deep Dive</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2023_01_04_refactoring_the_distsql_syntax__shardingsphere_5.3.0_deep_dive/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2023_01_04_refactoring_the_distsql_syntax__shardingsphere_5.3.0_deep_dive/</guid>
      <description>Background DistSQL (Distributed SQL) is ShardingSphere&amp;rsquo;s SQL-like functional language. Since we releasedversion 5.0.0-Beta, we&amp;rsquo;ve been iterating rapidly and providing users with features including rule management, cluster management, and metadata management. It was an incremental improvement process including many steps.
At the same time, DistSQL is still releatively young. The ShardingSphere community often receives fresh ideas and suggestions about DistSQL, which means fast growth with lots of possible different development directions.</description>
    </item>
    
    <item>
      <title>Leverage Terraform to Create an Apache ShardingSphere Proxy High Availability Cluster on AWS</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2023_02_09_leverage_terraform_to_create_an_apache_shardingsphere_proxy_high_availability_cluster_on_aws/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2023_02_09_leverage_terraform_to_create_an_apache_shardingsphere_proxy_high_availability_cluster_on_aws/</guid>
      <description>For this ShardingSphere blog entry, we want you to take advantage of the benefits of IaC (Infrastructure as Code) by deploying and managing a ShardingSphere Proxy cluster the IaC way.
With this in mind, we plan to use Terraform to create a ShardingSphere-Proxy high availability cluster with multiple availability zones.
Background Terraform Terraform is Hashicorp&amp;rsquo;s open source infrastructure automation orchestration tool that uses IaC philosophy to manage infrastructure changes.
It&amp;rsquo;s supported by public cloud vendors such as AWS, GCP, AZURE and a variety of other providers from the community, and has become one of the most popular practices in the &amp;ldquo;Infrastructure as Code&amp;rdquo; space.</description>
    </item>
    
    <item>
      <title>A Distributed Database Load Balancing Architecture Based on ShardingSphere: Demo and User Case</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2023_02_15_a_distributed_database_load_balancing_architecture_based_on_shardingsphere_demo__user_case/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2023_02_15_a_distributed_database_load_balancing_architecture_based_on_shardingsphere_demo__user_case/</guid>
      <description>This post introduces how to build a distributed database load-balancing architecture based on ShardingSphere, and the impact of introducing load balancing with a user case.
Finally, a one-stop solution for Apache ShardingSphere distributed databases on the cloud will be presented and demonstrated at the end.
ShardingSphere-based distributed database load balancing architecture ShardingSphere Load Balancing Architecture Essentials As many of our readers may already know, Apache ShardingSphere is a distributed database ecosystem that transforms any database into a distributed database and enhances it with data sharding, elastic scaling, encryption, and other capabilities.</description>
    </item>
    
    <item>
      <title>Dynamic Data Masking | ShardingSphere 5.3.1 Deep Dive</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2023_02_17_dynamic_data_masking_shardingsphere_5.3.1_deep_dive/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2023_02_17_dynamic_data_masking_shardingsphere_5.3.1_deep_dive/</guid>
      <description>With increased focus placed on user data protection and the introduction of privacy laws or data protection regulations such as GDPR, being compliant in terms of digital personal privacy is now of paramount importance.
Traditional applications generally lack personal data protection. Data masking enables data returned by production databases to be specially masked, encrypted, hidden, and audited according to the users&#39; role, responsibility, and other defined rules without having to make any changes to the data.</description>
    </item>
    
    <item>
      <title>ShardingSphere-Proxy Database Protocol Interaction Explained</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2023_02_23_shardingsphere-proxy_database_protocol_interaction_explained/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2023_02_23_shardingsphere-proxy_database_protocol_interaction_explained/</guid>
      <description>Database protocols are considered relatively unknown knowledge for most developers. Generally, users and developers use databases through off-the-shelf database clients and drivers, without manipulating database protocols directly.
However, having some basic understanding of the features and processes of database protocols can help developers provide some ideas to identify troubleshooting problems when it comes to database functionality and performance issues.
In this post, we will introduce the features of commonly used open source database protocols such as MySQL and PostgreSQL, and explain how ShardingSphere-Proxy interacts with clients at the database protocol level.</description>
    </item>
    
    <item>
      <title>ShardingSphere 5.3.x Update: Spring Configuration Update Guide</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2023_03_07_shardingsphere_5.3.x_update_spring_configuration_update_guide/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2023_03_07_shardingsphere_5.3.x_update_spring_configuration_update_guide/</guid>
      <description>Before 5.3.0, ShardingSphere-JDBC supported Java API, YAML, Spring Boot Starter, and Spring Namespace.
However, compatibility with Spring has brought the following challenges to the community:
 Many configuration files need to be adjusted when adding or updating API, which causes a heavy workload. The community needs to maintain lots of configuration documents and examples. Spring Bean life cycle management is susceptible to other project dependencies, such as PostProcessor.[1][2] Spring Boot Starter and Spring Namespace&amp;rsquo;s style differs from YAML in ShardingSphere.</description>
    </item>
    
    <item>
      <title>ShardingSphere Operator Practical Guide</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2023_03_14_shardingsphere_operator_practical_guide/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2023_03_14_shardingsphere_operator_practical_guide/</guid>
      <description>Apache ShardingSphere-on-Cloud sub-project ShardingSphere-on-Cloud is a sub-project of Apache ShardingSphere for cloud solutions, covering verything from automated deployment scripts to virtual machines in AWS, GCP, AliCloud, Huawei Cloud cloud environments such as CloudFormation Stack templates, Terraform and more.
The project also covers tools such as Helm Charts, Operator, and automatic horizontal scaling in Kubernetes environments, and will gradually cover ShardingSphere high-availability, observability, and security compliance in cloud environments.
 If you want to quickly understand, validate or use the features of ShardingSphere-Proxy and don&amp;rsquo;t have a Kubernetes environment, you can use AWS CloudFormation or Terraform for on-demand deployments, as described in the previous article &amp;ldquo;Use AWS CloudFormation to create ShardingSphere HA clusters&amp;rdquo;.</description>
    </item>
    
    <item>
      <title>Streamlining Database Configuration with DistSQL&#39;s Export, Import, and YAML Conversion</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2023_03_21_streamlining_database_configuration_with_distsqls_export_import_and_yaml_conversion/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2023_03_21_streamlining_database_configuration_with_distsqls_export_import_and_yaml_conversion/</guid>
      <description>DistSQL, which stands for Distributed SQL, is a specialized operating language exclusive to Apache ShardingSphere. This language provides users with a simplified and powerful dynamic management system that allows them to operate ShardingSphere like a traditional database.
One of the key benefits of using DistSQL is the ability to define resources and rules online without the need to modify YAML files and restart the system. This streamlines the management process and reduces the potential for errors.</description>
    </item>
    
    <item>
      <title>Managing Metadata in Sharded Database Environments with ShardingSphere&#39;s Built-in Metadata Function</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2023_03_23_managing_metadata_in_sharded_database_environments_with_shardingspheres_built-in_metadata_function/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2023_03_23_managing_metadata_in_sharded_database_environments_with_shardingspheres_built-in_metadata_function/</guid>
      <description>Apache ShardingSphere is a popular open-source data management platform that supports sharding, encryption, read/write splitting, transactions, and high availability. The metadata of ShardingSphere comprises of rules, data sources, and table structures, which are crucial for the platform&amp;rsquo;s proper functioning. ShardingSphere uses the governance center&amp;rsquo;s capabilities, such as ZooKeeper and etcd, for the sharing and modification of cluster configurations to achieve the horizontal expansion of computing nodes.
In this blog post, we will focus on understanding the metadata structure of Apache ShardingSphere.</description>
    </item>
    
    <item>
      <title>ShardingSphere 5.3.2 Release: Apollo Integration, Better Data Migration, and Stronger Encryption</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2023_04_03_shardingsphere_5.3.2_release_apollo_integration_better_data_migration_and_stronger_encryption/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2023_04_03_shardingsphere_5.3.2_release_apollo_integration_better_data_migration_and_stronger_encryption/</guid>
      <description>Apache ShardingSphere has recently released version 5.3.2 after two months of development, which includes 797 PRs from teams and individuals worldwide. The new version includes significant improvements in functionality, performance, testing, documentation, and examples. With this update, users can experience an enhanced and problem-solving version. Let&amp;rsquo;s take a quick preview of what&amp;rsquo;s new:
 ShardingSphere Driver now supports Apollo, which is a great addition for users. Data migration now supports migrating tables with any index structure, including tables without an index, making it more convenient for users.</description>
    </item>
    
    <item>
      <title>Monitoring SQL Performance with ShardingSphere-Agent, Prometheus and Grafana</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2023_04_11_monitoring_sql_performance_with_shardingsphere-agent_prometheus_and_grafana/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2023_04_11_monitoring_sql_performance_with_shardingsphere-agent_prometheus_and_grafana/</guid>
      <description>As business systems become more complex, users are increasingly concerned about system performance and the need to monitor relevant metrics during system operation. This includes obtaining real-time monitoring metric information, monitoring and warning of relevant issues, and combining business analysis to locate anomalies.
Application Performance Monitoring (APM) monitors and diagnoses system performance by collecting, storing, and analyzing system data that can be observed. Its main functions include performance metric monitoring, call chain analysis, and application topology maps.</description>
    </item>
    
    <item>
      <title>Revamped ShardingSphere-On-Cloud: What’s New in Version 0.2.0 with CRD ComputeNode</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2023_04_13_revamped_shardingsphere_on_cloud_whats_new_in_version_0.2.0_with_crd_computenode/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2023_04_13_revamped_shardingsphere_on_cloud_whats_new_in_version_0.2.0_with_crd_computenode/</guid>
      <description>Apache ShardingSphere-On-Cloud recently released version 0.2.0, which includes a new CRD ComputeNode for ShardingSphere Operator. This new feature enables users to define computing nodes fully within the ShardingSphere architecture.
Introduction to ComputeNode In the classic architecture of Apache ShardingSphere, computing nodes, storage nodes, and governance nodes are the primary components.
The computing node refers to the ShardingSphere Proxy, which acts as the entry point for all data traffic and is responsible for data governance capabilities such as distribution and balancing.</description>
    </item>
    
    <item>
      <title>How South Korea’s Yogiyo Improved Scalability and Performance with Apache ShardingSphere</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2023_04_27_how_south_koreas_yogiyo_improved_scalability_and_performance_with_apache_shardingsphere/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2023_04_27_how_south_koreas_yogiyo_improved_scalability_and_performance_with_apache_shardingsphere/</guid>
      <description>Yogiyo is South Korea’s leading mobile and online food delivery platform that seeks to offer customers powerful and convenient food ordering services. Formerly a subsidiary of Delivery Hero, Yogiyo was acquired by GS Retail, one of Korea’s top ten listed companies, for $684 million at the end of 2021.
Hello! My name is Byungchul Kim, and I work as a backend developer at Yogiyo R&amp;amp;D Centre on Orderyo, an ordering service.</description>
    </item>
    
    <item>
      <title>Simplifying Learning: ShardingSphere’s Template Engine for Streamlined Examples</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2023_05_10_simplifying_learning_shardingspheres_template_engine_for_streamlined_examples/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2023_05_10_simplifying_learning_shardingspheres_template_engine_for_streamlined_examples/</guid>
      <description>After years of rapid development, ShardingSphere has grown significantly, offering six core functional modules that cater to various needs. It is also compatible with different registries, such as ZooKeeper and Nacos, allowing for seamless integration. Moreover, it supports distributed transactions and various development frameworks, providing flexibility and convenience.
To ensure a user-friendly experience, we have created an example module that showcases the diverse functionalities, registries, and service frameworks of ShardingSphere.</description>
    </item>
    
    <item>
      <title>Enhancing Database Security: ShardingSphere-Proxy’s Authentication</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2023_05_18_enhancing_database_security_shardingsphere-proxys_authentication/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2023_05_18_enhancing_database_security_shardingsphere-proxys_authentication/</guid>
      <description>ShardingSphere-Proxy is a transparent database proxy that supports interaction with any client using MySQL, PostgreSQL, or openGauss protocols.
Proxy provides user authentication and can adapt to different authentication modes for various database protocols. However, there is a question that has been rarely addressed and has almost no corresponding issue even in the Github community:
“How does ShardingSphere-Proxy authenticate its clients?”
Note: this post only discusses password authentication, and does not include non-password authentication methods such as UDS (Unix Domain Socket).</description>
    </item>
    
    <item>
      <title>How to Run SQL Trace with ShardingSphere-Agent</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2023_06_07_how_to_run_sql_trace_with_shardingsphere/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2023_06_07_how_to_run_sql_trace_with_shardingsphere/</guid>
      <description>Apache ShardingSphere, a data service platform that follows the Database Plus concept for distributed database systems, offers a range of features, including data sharding, read/write splitting, data encryption, and shadow database. In production environment, especially in data-sharding scenarios, SQL tracing is critical for monitoring and analyzing slow queries and abnormal executions. Therefore, a thorough understanding of SQL rewriting and query execution is crucial.
What is ShardingSphere-Agent ShardingSphere-Agent provides an observable framework for ShardingSphere.</description>
    </item>
    
    <item>
      <title>Chaos Engineering: Efficient Way to Improve System Availability</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2023_06_15_chaos_engineering/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2023_06_15_chaos_engineering/</guid>
      <description>Resilience is a crucial requirement for ShardingSphere-Proxy, an essential database infrastructure. Testing and verifying resilience can be efficiently achieved through the use of chaos engineering methodology. To support customized chaos engineering, the ShardingSphere-on-Cloud project is designing and implementing a new CustomResourceDefinition (CRD) called Chaos. This post provides a practical description of CRD’s concept and features, helping the community better understand its potential benefits.
What is chaos engineering System availability is a critical metric for evaluating service reliability.</description>
    </item>
    
    <item>
      <title>AWS Summit China 2023: ShardingSphere Highlights and Data Security Insights</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2023_07_07_aws_summit_china_2023_shardingsphere_highlights_and_data_security_insights/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2023_07_07_aws_summit_china_2023_shardingsphere_highlights_and_data_security_insights/</guid>
      <description>TheAWS Summit China 2023, held in Shanghai from June 27th to June 28th, brought together global leaders in the cloud computing sector. This two-day event featured over 100 leading companies and organizations, along with industry experts who delivered insightful speeches on reliable technology and services.
From emerging technologies like generative AI to discussions on cloud-native technology and enterprise digitalization, the summit provided a platform for knowledge sharing and collaboration.
Among the participants, theShardingSphere open-source community and its PMC andSphereEx co-founder and CTOTrista Pan, made their mark in the Developer Lounge, engaging with enthusiasts and sharing experiences.</description>
    </item>
    
    <item>
      <title>A Step-by-Step Guide to Data Migration: Unlocking Distributed Database Potential with ShardingSphere</title>
      <link>https://shardingsphere.apache.org/blog/en/material/2023_07_10_a_step-by-step_guide_to_data_migration/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://shardingsphere.apache.org/blog/en/material/2023_07_10_a_step-by-step_guide_to_data_migration/</guid>
      <description>As businesses grow and data volumes and concurrent transactions surge, traditional standalone databases often face challenges related to performance, scalability, and availability. To overcome these limitations, the industry has introduced NoSQL solutions, employing techniques like data sharding and horizontal scaling. However, NoSQL databases often lack support for transactions and structured query language (SQL). This is where ShardingSphere comes into play.
Apache ShardingSphere offers a distributed SQL transaction &amp;amp; query engine capable of transforming any conventional database into a distributed one.</description>
    </item>
    
  </channel>
</rss>
