-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Tracking Issue: In-memory Engine #16141
Labels
type/enhancement
Type: Issue - Enhancement
Comments
This was referenced Dec 5, 2023
ti-chi-bot bot
pushed a commit
that referenced
this issue
Dec 12, 2023
ref #16141 Introduce hybrid engine which implements KvEngine but without detailed implementation. Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au>
ti-chi-bot bot
pushed a commit
that referenced
this issue
Dec 13, 2023
ref #16141 Integrate hybrid engine with TiKV. User can choose to use hybrid engine by set `memory_engine_enabled` in TiKV config. Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au>
9 tasks
ti-chi-bot bot
pushed a commit
that referenced
this issue
Dec 14, 2023
ref #16141 implement in-memory engine read flow -- part 1 Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au>
This was referenced Dec 15, 2023
9 tasks
ti-chi-bot bot
pushed a commit
that referenced
this issue
Dec 21, 2023
ref #16141 implement read flow of in-memory engine -- hybrid engine part Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au>
ti-chi-bot bot
pushed a commit
that referenced
this issue
Dec 25, 2023
) ref #16141 implement read flow -- support sequence number Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au>
This was referenced Dec 25, 2023
ti-chi-bot bot
pushed a commit
that referenced
this issue
Dec 26, 2023
ref #16141 implement read flow -- prefix read Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au>
7 tasks
9 tasks
9 tasks
9 tasks
ti-chi-bot bot
pushed a commit
that referenced
this issue
Jan 12, 2024
ref #16141 API and other changes to pass the sequence number from the disk engine to the cache engine's on write: - Make the callback`WriteBatch::write_callback_opt` take a u64 - Keep track of sequence number in `RegionCacheWriteBatch` - integrate `RegionCacheWriteBatch` with HybridEngine Signed-off-by: Alex Feinberg <alex@strlen.net> Co-authored-by: Spade A <71589810+SpadeA-Tang@users.noreply.github.com>
ti-chi-bot bot
pushed a commit
that referenced
this issue
Jan 13, 2024
ref #16141 Do not start in-memory engine unless the `memory-engine` feature is enabled. Signed-off-by: Alex Feinberg <alex@strlen.net>
9 tasks
pingandb
pushed a commit
to pingandb/tikv
that referenced
this issue
Jan 18, 2024
ref tikv#16141 API and other changes to pass the sequence number from the disk engine to the cache engine's on write: - Make the callback`WriteBatch::write_callback_opt` take a u64 - Keep track of sequence number in `RegionCacheWriteBatch` - integrate `RegionCacheWriteBatch` with HybridEngine Signed-off-by: Alex Feinberg <alex@strlen.net> Co-authored-by: Spade A <71589810+SpadeA-Tang@users.noreply.github.com> Signed-off-by: pingandb <songge102@pingan.com.cn>
pingandb
pushed a commit
to pingandb/tikv
that referenced
this issue
Jan 18, 2024
ref tikv#16141 Do not start in-memory engine unless the `memory-engine` feature is enabled. Signed-off-by: Alex Feinberg <alex@strlen.net> Signed-off-by: pingandb <songge102@pingan.com.cn>
ti-chi-bot bot
pushed a commit
that referenced
this issue
Jan 18, 2024
ref #16141 refactor from region based to range based Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au>
This was referenced Jan 19, 2024
This was referenced Jun 17, 2024
9 tasks
ti-chi-bot bot
pushed a commit
that referenced
this issue
Jun 18, 2024
ref #16141 add seek duration metrics Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au>
9 tasks
ti-chi-bot bot
pushed a commit
that referenced
this issue
Jun 18, 2024
ref #16141 add metrics for prepare for write duration Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au>
ti-chi-bot bot
added a commit
that referenced
this issue
Jun 18, 2024
ref #16141 set disk engine when start Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Co-authored-by: ti-chi-bot[bot] <108142056+ti-chi-bot[bot]@users.noreply.github.com>
ti-chi-bot bot
pushed a commit
that referenced
this issue
Jun 19, 2024
ref #16141 avoid using snapshot cache Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au>
overvenus
pushed a commit
to overvenus/tikv
that referenced
this issue
Jun 19, 2024
ref tikv#16141 support delete range Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au>
overvenus
pushed a commit
to overvenus/tikv
that referenced
this issue
Jun 19, 2024
ref tikv#16141, close tikv#17103 clear write batch when range load failed Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au>
overvenus
pushed a commit
to overvenus/tikv
that referenced
this issue
Jun 19, 2024
ref tikv#16141 add seek duration metrics Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au>
overvenus
pushed a commit
to overvenus/tikv
that referenced
this issue
Jun 19, 2024
) ref tikv#16141 add metrics for prepare for write duration Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au>
overvenus
pushed a commit
to overvenus/tikv
that referenced
this issue
Jun 19, 2024
ref tikv#16141 set disk engine when start Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Co-authored-by: ti-chi-bot[bot] <108142056+ti-chi-bot[bot]@users.noreply.github.com>
overvenus
pushed a commit
to overvenus/tikv
that referenced
this issue
Jun 19, 2024
ref tikv#16141 avoid using snapshot cache Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au>
9 tasks
ti-chi-bot bot
pushed a commit
that referenced
this issue
Jun 19, 2024
ref #16141 evict range when becomeing follower, merge, and deleting data ranges. Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au>
overvenus
pushed a commit
to overvenus/tikv
that referenced
this issue
Jun 21, 2024
ref tikv#16141 evict range when becomeing follower, merge, and deleting data ranges. Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au>
overvenus
pushed a commit
to overvenus/tikv
that referenced
this issue
Jun 21, 2024
…tikv#17171) ref tikv#16141 filter plus one when any key is removed during GC Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Signed-off-by: Spade A <71589810+SpadeA-Tang@users.noreply.github.com>
overvenus
added a commit
that referenced
this issue
Jun 21, 2024
* build: bump tikv pkg version (#17063) Signed-off-by: ti-chi-bot <ti-community-prow-bot@tidb.io> * resolved_ts: refactor log for the unexpected path (#17064) (#17068) ref #16818 Refactor logs for the unexpected path, print both the exsiting row and input key/value. Signed-off-by: cfzjywxk <lsswxrxr@163.com> Co-authored-by: cfzjywxk <lsswxrxr@163.com> * chore: add prow OWNERS files for critial configuration files (#17071) (#17108) close #17004 Signed-off-by: wuhuizuo <wuhuizuo@126.com> Co-authored-by: wuhuizuo <wuhuizuo@126.com> * OWNERS: Auto Sync OWNERS files from community membership (#16973) (#17120) Signed-off-by: Ti Chi Robot <ti-community-prow-bot@tidb.io> Signed-off-by: Jinpeng Zhang <zzzhangjinpeng@gmail.com> Co-authored-by: Jinpeng Zhang <zzzhangjinpeng@gmail.com> Co-authored-by: wuhuizuo <wuhuizuo@126.com> * In-memory engine: strip off read related code from engine.rs to a separte file (#16792) ref #16141 strip off read related code from engine.rs to a separte file Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * In-memory engine: collector iteration related metrics (#16735) ref #16141 collector iteration related metrics Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * In-memory engine: expose range cache engine configuration (#16791) ref #16141 expose range cache engine configuration Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * In-memory engine: do not load a range overlapped with an unresolved range (#16794) ref #16141 do not load a range overlapped with an unresolved range Co-authored-by: ti-chi-bot[bot] <108142056+ti-chi-bot[bot]@users.noreply.github.com> * server/node: rename Node to MultiRaftServer (#16783) close #16782 Signed-off-by: zhangjinpeng87 <zzzhangjinpeng@gmail.com> Signed-off-by: Jinpeng Zhang <zzzhangjinpeng@gmail.com> Co-authored-by: lucasliang <nkcs_lykx@hotmail.com> * In-memory engine: add metrics for memory usage (#16822) ref #16141 add metrics for memory usage Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Co-authored-by: Jinpeng Zhang <zzzhangjinpeng@gmail.com> * In-memory engine: add metrics for gc duration, range load duration, and write duration (#16831) ref #16141 add metrics for gc duration, range load duration, and write duration Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * In-memory engine: delete lock physically rather than writting tombstone (#16852) ref #16141 delete lock physically rather than writting tombstone Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * In-memory engine: fix missing memory record when snapshot loading (#16850) ref #16141 fix missing memory record when snapshot loading Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * In-Memory Engine: add a tag to the range for easier troubleshooting (#16816) ref #16141 In-Memory Engine: add a tag into Range for diagnostics Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Signed-off-by: Qi Xu <tonyxuqqi@outlook.com> Co-authored-by: SpadeA-Tang <u6748471@anu.edu.au> Co-authored-by: Qi Xu <tonyxuqqi@outlook.com> * In-memory engine: remove out of date pending ranges (#16872) ref #16141 remove out of date pending ranges Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * compile memory-engine by default and support dynamic config update for memory-engine (#16897) ref #16141 compile the in-memory-engine by default and support dynamic config update for memory-engine. The enabled flag would support enabled:true -> enabled:false and soft/hard limit also supports online change. But if enabled:false is set initially, the config change to make enabled:true needs the TiKV restart. Signed-off-by: tonyxuqqi <tonyxuqi@outlook.com> * In-memory engine: skiplist tombstone should be handled separetely in gc (#16944) ref #16141 skiplist tombstone should be handled separetely in gc Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * In-memory engine: manually implement partial_eq for CacheRange to avoid the consideration of tag (#16959) ref #16141 manually implement partial_eq for CacheRange to avoid the consideration of tag Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Co-authored-by: tonyxuqqi <tonyxuqi@outlook.com> * In-memory engine: implement core local array and collect read flow statistics (#16945) ref #16141 implement core local array and collect read flow statistics Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * In-memory engine: fix seek does not set self.valid properly (#16991) ref #16141 fix seek does not set self.valid properly Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Co-authored-by: ti-chi-bot[bot] <108142056+ti-chi-bot[bot]@users.noreply.github.com> * In-memory engine: add metrics for different types of iteration operations (#16997) ref #16141 add metrics for different types of iteration operations Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * In-memory engine: add metrics for range count (#16971) ref #16141 add metrics for range count Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Signed-off-by: Spade A <71589810+SpadeA-Tang@users.noreply.github.com> Co-authored-by: lucasliang <nkcs_lykx@hotmail.com> * In-memory engine: fix gc worker not used (#17032) ref #16141 fix gc worker not used Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * raftstore: fix online config change panic for periodic-full-compact-start-time (#17069) close #17066 fix online config change panic for periodic-full-compact-start-time Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * config: test +HHMM offset in ReadableSchedule (#17081) close #17080 * Test both formats +HHMM offsets and as well as +HH:MM for ReadableSchedule. Signed-off-by: Alex Feinberg <alex@strlen.net> * In-memory engine: mvcc keys with different sequence number should only be handled once in GC (#17083) ref #16141, close #17060 mvcc keys with different sequen number should only be handled once in GC Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Signed-off-by: Spade A <71589810+SpadeA-Tang@users.noreply.github.com> Co-authored-by: Neil Shen <overvenus@gmail.com> Co-authored-by: lucasliang <nkcs_lykx@hotmail.com> * In-memory engine: enable compaction filter for HybridEngine (#17087) ref #16141, close #17086 enable compaction filter for HybridEngine Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Co-authored-by: ti-chi-bot[bot] <108142056+ti-chi-bot[bot]@users.noreply.github.com> * In-memory Engine: sequence number should be increased for each key (#17122) ref #16141, close #17114 sequence number should be increased for each key Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * In-memory engine: support changing the direction of iteration (#17129) ref #16141, close #17079 support reverse direction when iterating Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Co-authored-by: ti-chi-bot[bot] <108142056+ti-chi-bot[bot]@users.noreply.github.com> * In-memory engine: clean lock cf tombstone in a background worker (#17128) ref #16141, close #17127 clean lock cf tombstone in a background worker Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * In-memory Engine: encode internal key trailer in little endian. (#17125) close #17082 An internal key trailer is `(sequence_number << 8) | value_type as u64` and it should be encoded in little endian to be consistent with RocksDB. Signed-off-by: Neil Shen <overvenus@gmail.com> * In-memory engine: set boundries when gc (#17145) ref #16141, close #17143 set boundries when gc Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Co-authored-by: ti-chi-bot[bot] <108142056+ti-chi-bot[bot]@users.noreply.github.com> * In-memory engine: encode key for lock cf without mvcc version in delete range (#17142) ref #16141, close #17140 encode key for lock cf without mvcc version in delete range Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Co-authored-by: ti-chi-bot[bot] <108142056+ti-chi-bot[bot]@users.noreply.github.com> * In-memory Engine: get GC safe_point from PD (#17144) close #17123 The `safe_point` is used to check if a cache is eligible to serve a read request. If the `safe_point` drifts into the future, for example by 10 minutes, the cache will not be able to serve any requests for those 10 minutes. This commit fixes such issue by getting the `safe_point` from PD. Signed-off-by: Neil Shen <overvenus@gmail.com> Co-authored-by: ti-chi-bot[bot] <108142056+ti-chi-bot[bot]@users.noreply.github.com> * In-Memory Engine: Eviction, Algorithmic loading (#17023) ref #16141, ref #16764 In-Memory Engine: Algorithmic Load and Eviction Signed-off-by: Alex Feinberg <alex@strlen.net> * In-memory engine: consider range overlaps when eviction (#17137) ref #16141, close #17131 consider range overlaps when eviction Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * In-memory engine: support delete range (#17151) ref #16141 support delete range Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * In-memory engine: evict range should consider loading range (#17154) close #17153 evict range should consider loading range Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Co-authored-by: ti-chi-bot[bot] <108142056+ti-chi-bot[bot]@users.noreply.github.com> * In-memory engine: clear write batch when range load failed (#17156) ref #16141, close #17103 clear write batch when range load failed Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * In-memory engine: fix concurrency issue between delete range and write to memory (#17149) close #17104 fix concurrency issue between delete range and write to memory Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Co-authored-by: ti-chi-bot[bot] <108142056+ti-chi-bot[bot]@users.noreply.github.com> * In-memory engine: add seek duration metrics (#17160) ref #16141 add seek duration metrics Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * In-memory engine: add metrics for prepare for write duration (#17161) ref #16141 add metrics for prepare for write duration Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * In-memory engine: set disk engine when start (#17165) ref #16141 set disk engine when start Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Co-authored-by: ti-chi-bot[bot] <108142056+ti-chi-bot[bot]@users.noreply.github.com> * In-memory engine: avoid using snapshot cache (#16863) ref #16141 avoid using snapshot cache Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * In-memory engine: evict range after some raft commands (#17159) ref #16141 evict range when becomeing follower, merge, and deleting data ranges. Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * In-memory engine: `filter` plus one when any key is removed during GC (#17171) ref #16141 filter plus one when any key is removed during GC Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Signed-off-by: Spade A <71589810+SpadeA-Tang@users.noreply.github.com> * periodic reload Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * avoid mem negative Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * make period of reload config Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * add overhead for delte entry size Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> * Fix missing field reload_period Signed-off-by: Neil Shen <overvenus@gmail.com> * Fix get_regions_in_range and BackgroundWorker compile Signed-off-by: Neil Shen <overvenus@gmail.com> --------- Signed-off-by: ti-chi-bot <ti-community-prow-bot@tidb.io> Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Signed-off-by: tonyxuqqi <tonyxuqi@outlook.com> Signed-off-by: Alex Feinberg <alex@strlen.net> Signed-off-by: Neil Shen <overvenus@gmail.com> Signed-off-by: Spade A <71589810+SpadeA-Tang@users.noreply.github.com> Co-authored-by: Ti Chi Robot <ti-community-prow-bot@tidb.io> Co-authored-by: cfzjywxk <lsswxrxr@163.com> Co-authored-by: wuhuizuo <wuhuizuo@126.com> Co-authored-by: Jinpeng Zhang <zzzhangjinpeng@gmail.com> Co-authored-by: Spade A <71589810+SpadeA-Tang@users.noreply.github.com> Co-authored-by: ti-chi-bot[bot] <108142056+ti-chi-bot[bot]@users.noreply.github.com> Co-authored-by: lucasliang <nkcs_lykx@hotmail.com> Co-authored-by: tonyxuqqi <tonyxuqi@outlook.com> Co-authored-by: SpadeA-Tang <u6748471@anu.edu.au> Co-authored-by: Qi Xu <tonyxuqqi@outlook.com> Co-authored-by: Alex Feinberg <alex@strlen.net>
9 tasks
ti-chi-bot bot
pushed a commit
that referenced
this issue
Jun 26, 2024
ref #16141 fix name inconsistency Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au>
3AceShowHand
pushed a commit
to 3AceShowHand/tikv
that referenced
this issue
Jun 27, 2024
…tikv#17171) ref tikv#16141 filter plus one when any key is removed during GC Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Signed-off-by: Spade A <71589810+SpadeA-Tang@users.noreply.github.com> Signed-off-by: 3AceShowHand <jinl1037@hotmail.com>
3AceShowHand
pushed a commit
to 3AceShowHand/tikv
that referenced
this issue
Jun 27, 2024
ref tikv#16141 fix name inconsistency Signed-off-by: SpadeA-Tang <u6748471@anu.edu.au> Signed-off-by: 3AceShowHand <jinl1037@hotmail.com>
This was referenced Jul 4, 2024
ti-chi-bot bot
pushed a commit
that referenced
this issue
Jul 5, 2024
ref #16141 Add property test for skiplist map vs. RocksDB. This test validates basic key-value operations including put, get, delete, scan, and delete_range. Signed-off-by: Neil Shen <overvenus@gmail.com>
ti-chi-bot bot
added a commit
that referenced
this issue
Jul 5, 2024
ref #16141 Do not evict the cache when applying a snapshot because the peer must be in the follower role during this process. The cache is already evicted when the leader steps down. Signed-off-by: Neil Shen <overvenus@gmail.com> Co-authored-by: ti-chi-bot[bot] <108142056+ti-chi-bot[bot]@users.noreply.github.com>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
RFC: tikv/rfcs#111
Summary:
In-memory engine works as a range cache, selectively caching certain ranges to enhance read performance.
Tasks:
Enhancement
Bugs
safe_point
ingc_range
should be obtained from PD #17123range
to evict may contain multiple cached range #17131CacheRange
may be inaccurate #17147next_to_match
#17148The text was updated successfully, but these errors were encountered: