apache / apache/shardingsphere-on-cloud
Introduce JVM chaos to ShardingSphere
- 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
Assessment
This issue has not been assessed yet.