You are viewing a plain text version of this content. The canonical link for it is here.
Posted to gsoc@community.apache.org by "Liyao Miao (Jira)" <ji...@apache.org> on 2023/03/23 02:31:00 UTC

[jira] [Created] (GSOC-246) Apache ShardingSphere: Write a converter to generate DistSQL

Liyao Miao created GSOC-246:
-------------------------------

             Summary: Apache ShardingSphere: Write a converter to generate DistSQL
                 Key: GSOC-246
                 URL: https://issues.apache.org/jira/browse/GSOC-246
             Project: Comdev GSOC
          Issue Type: Improvement
            Reporter: Liyao Miao


h1. Apache ShardingSphere

Apache ShardingSphere is positioned as a Database Plus, and aims at building a standard layer and ecosystem above heterogeneous databases. It focuses on how to reuse existing databases and their respective upper layer, rather than creating a new database. The goal is to minimize or eliminate the challenges caused by underlying databases fragmentation.

Page: https://shardingsphere.apache.org/
Github: https://github.com/apache/shardingsphere 
h1. Background

Currently we try to promote StorageNode as major CRD to represent a set of storage units for ShardingSphere.
h1. Task

The elementary task is that the storage node controller could manage the lifecycle of  a set of storage units, like PostgreSQL, in kubernetes. 

We don't hope to create another wheel like pg-operator. So consider using a predefined parameter group to generate the target CRD.

- [ ] Generate DistSQL according to the Golang struct `EncryptionRule`
- [ ] Generate DistSQL according to the Golang struct `ShardingRule`
- [ ] Generate DistSQL according to the Golang struct `ReadWriteSplittingRule`
- [ ] Generate DistSQL according to the Golang struct `MaskRule`
- [ ] Generate DistSQL according to the Golang struct `ShadowRule`
h1. 
Relevant Skills

1. Master Go language, Ginkgo test framework
2. Have a basic understanding of Apache ShardingSphere Concepts and DistSQL
h1. Targets files

DistSQL Converter - https://github.com/apache/shardingsphere-on-cloud/blob/main/shardingsphere-operator/pkg/distsql/converter.go, etc.
h2. Example

A struct defined as below:

```golang
type EncryptRule struct{}
func (t EncryptRule) ToDistSQL() string {}
```
While invoking ToDistSQL() it will generate a DistSQL regarding a EncryptRule like:

```SQL
CREATE ENCRYPT RULE t_encrypt (....
```
h1. References:
* https://shardingsphere.apache.org/document/current/en/user-manual/shardingsphere-proxy/distsql/syntax/rdl/rule-definition/encrypt/create-encrypt-rule/



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: gsoc-unsubscribe@community.apache.org
For additional commands, e-mail: gsoc-help@community.apache.org