[ 
https://issues.apache.org/jira/browse/GSOC-246?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Liyao Miao updated GSOC-246:
----------------------------
    Description: 
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/

Mentor
Liyao Miao, Committer of Apache ShardingSphere,  [email protected]

Chuxin Chen, Committer of Apache ShardingSphere, [email protected]

  was:
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/


> 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
>            Priority: Major
>              Labels: ShardingSphere, gsoc2023, mentor
>   Original Estimate: 1m
>  Remaining Estimate: 1m
>
> 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/
> Mentor
> Liyao Miao, Committer of Apache ShardingSphere,  [email protected]
> Chuxin Chen, Committer of Apache ShardingSphere, [email protected]



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

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to