Clean up redundant code for TiFlash
Open
Nobody has claimed this yet.
help wanted
type/code-quality-improvement
- Dominant language
- C++
- Stars
- 1k
- Forks
- 423
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 24
Description
TiFlash fork from Clickhouse around late 2018. There are lots of useless codes for TiFlash.
- Remove
StorageKafka,StorageMySQL,StorageODBCandCapnProtoRowInputStreamhttps://github.com/pingcap/tics/pull/1279 - (Mainly) Remove documents for Clickhouse https://github.com/pingcap/tics/pull/1596
- Remove ReplicatedMergeTree family (TiFlash does not rely on those storage engines to do replication) https://github.com/pingcap/tics/pull/1805
- #3481
- #3484
- Automatically update related generated-cpp files after
kvproto/tipbget updated https://github.com/pingcap/tics/pull/2110 - Remove some useless dependency for TiFlash.
- kafka https://github.com/pingcap/tics/pull/2022
- MongoDB, MySQL, odbc https://github.com/pingcap/tics/pull/2022
- XML
Clickhouse uses XML as the configuration file format but TiFlash uses toml. Seems that TiFlash do not rely on XML anymore. - Zookeeper https://github.com/pingcap/tics/pull/2253 https://github.com/pingcap/tics/pull/2255
Clickhouse use zookeeper for replication, but TiFlash rely on PD and TiKV's Raft layer
- Remove Analyzers https://github.com/pingcap/tics/pull/2497 #2549
- #3485
- #3486
These are outdated permission management, resource management from ClickHouse - https://github.com/pingcap/tics/issues/3491
Something not sure:
- Remove redundant data types so that we don't need to instantiate some template class for these data types, which may greatly reduce our compile time
- "DataTypeDate"/"DateTypeDateTime"
We use "DataTypeMyDate"/"DataTypeMyDatetime" for MySQL/TiDB-compatibility, these original data types ported from Clickhouse are useless for TiFlash - "DataTypeTuple"/"DataTypeArray"/"DataTypeSet"
We don't use these data type
- "DataTypeDate"/"DateTypeDateTime"
Possible it is good for speeding up our CI building step #1390.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the remaining unchecked items: the XML dependency, issue #3486, and redundant data types such as DataTypeDate, DataTypeDateTime, DataTypeTuple, DataTypeArray, and DataTypeSet. Confirm which are still used before removing them, and consider the impact on CI build time; done means the redundant code or dependencies are removed without breaking the build.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- build-system, performance
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100