apache / apache/shardingsphere-on-cloud

Introduce JVM chaos to ShardingSphere

Open
#254 7 comments 0 reactions 1 assignee Assigned to @Jacob953 View on GitHub
in: chaos type: enhancement
Dominant language
Go
Stars
88
Forks
33
PR merge metrics
No merged PRs in 30d

Description

# 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 

# Background

There is a proposal about the background of ChaosEngineering as belows:
- #32

And we also proposed a generic controller for ShardingSphereChaos as belows:
- #272

The ShardingSphereChaos controller is aiming at different chaos tests. This JVMChaos is an important one.

# Task

Write several scripts to implement different JVMChaos for main features of ShardingSphere. The specific case list is as follows.

- [ ] Add scripts injecting chaos to DataSharding
- [ ] Add scripts injecting chaos to ReadWritingSplitting
- [ ] Add scripts injecting chaos to DatabaseDiscovery
- [ ] Add scripts injecting chaos to Encryption
- [ ] Add scripts injecting chaos to Mask
- [ ] Add scripts injecting chaos to Shadow

Basically, these scripts will cause unexpected behaviour while executing the related. DistSQL.

# Relevant Skills

1. Master Go language, Ginkgo test framework
2. Have a deep understanding of Apache ShardingSphere concepts and practices.
3. JVM byte mechanisms like ByteMan, ByteBuddy.

# Targets files

JVMChaos Scripts - https://github.com/apache/shardingsphere-on-cloud/chaos/jvmchaos/scripts/

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.