Yingwen
1b4976b077
feat: Adds some metrics for write path and flush ( #1726 )
...
* feat: more metrics
* feat: Add preprocess elapsed
* chore(storage): rename metric
* test: fix tests
2023-06-05 21:35:44 +08:00
LFC
5004cf6d9a
feat: make grpc insert requests in a batch ( #1687 )
...
* feat: make Prometheus remote write in a batch
* rebase
* fix: resolve PR comments
* fix: resolve PR comments
* fix: resolve PR comments
2023-06-02 09:06:48 +00:00
Lei, HUANG
ccd666aa9b
fix: avoid writing manifest and wal if no files are actually flushed ( #1698 )
...
* fix: avoid writing manifest and wal if no files are actually flushed
* fix: simplify log
2023-06-02 13:16:59 +08:00
Ruihang Xia
e5b6f8654a
feat: optimizer rule to pass expected output ordering hint ( #1675 )
...
* move type convertsion rule into optimizer dir
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* implement order_hint rule
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* add test
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix clippy
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* it works!
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix clippy
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* use column name instead
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix clippy
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* accomplish test case
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update lock file
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-06-02 03:43:51 +00:00
Weny Xu
0460f3ae30
test: add write test for region failover ( #1673 )
...
* test: add write test for region failover
* test: add written data assertion after failover
* test: support more storage types
2023-05-31 15:42:00 +08:00
Yingwen
9d179802b8
feat: Add a global TTL option for all tables ( #1679 )
...
* feat: Add a global TTL option for all tables
* docs: update config examples
* chore: print start command and options when standalone/frontend starts
2023-05-31 15:36:25 +08:00
Lei, HUANG
72b6bd11f7
feat: adapt window reader to order rules ( #1671 )
...
* feat: adapt window reader to order rules
* fix: add asc sort test case
2023-05-31 03:36:17 +00:00
Ruihang Xia
9e21632f23
fix: clippy warning ( #1669 )
...
* fix: clippy warning
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* restore the removed common sqlness cases
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-05-30 08:55:24 +08:00
Lei, HUANG
78fab08b51
feat: window inferer ( #1648 )
...
* feat: window inferer
* doc: add some doc
* test: add a long missing unit test case for windowed reader
* add more tests
* fix: some CR comments
2023-05-29 14:41:00 +08:00
Weny Xu
9f67ad8bce
fix: fix doesn't release closed regions issue ( #1596 )
...
* fix: fix close region issue
* chore: apply suggestion from CR
* chore: apply suggestion from CR
* chore: apply suggestion from CR
* chore: apply suggestion from CR
* refactor: remove close method from Region trait
* chore: remove PartialEq from CloseTableResult
2023-05-23 11:40:12 +08:00
Lei, HUANG
8e7ec4626b
refactor: remove useless error ( #1624 )
...
* refactor: remove useless
* fix: remove useless error variant
2023-05-22 22:55:27 +08:00
Yingwen
6dbceb1ad5
feat: Trigger flush based on global write buffer size ( #1585 )
...
* feat(storage): Add AllocTracker
* feat(storage): flush request wip
* feat(storage): support global write buffer size
* fix(storage): Test and fix size based strategy
* test(storage): Test AllocTracker
* test(storage): Test pick_by_write_buffer_full
* docs: Add flush config example
* test(storage): Test schedule_engine_flush
* feat(storage): Add metrics for write buffer size
* chore(flush): Add log when triggering flush by global buffer
* chore(storage): track allocation in update_stats
2023-05-22 19:00:30 +08:00
Lei, HUANG
82f2b34f4d
fix: wal replay ignore manifest entries ( #1612 )
...
* fix: wal replay ignore manifest entries
* test: add ut
2023-05-19 18:12:44 +08:00
Vanish
8764ce7845
feat: add delete WAL in drop_region ( #1577 )
...
* feat: add delete WAL in drop_region
* chore: fix typo err.
* feat: mark all SSTs deleted and remove the region from StorageEngine's region map.
* test: add test_drop_region for StorageEngine.
* chore: make clippy happy
* fix: fix conflict
* chore: CR.
* chore: CR
* chore: fix clippy
* fix: temp file life time
2023-05-18 18:02:34 +08:00
Lei, HUANG
e8c2222a76
feat: add WindowedReader ( #1532 )
...
* feat: add WindowedReader
* fix: some cr comments
* feat: filter memtable by timestamp range
* fix: add source in error variants
* fix: some CR comments
* refactor: filter memtable in MapIterWrapper
* fix: clippy
2023-05-17 17:34:29 +08:00
Lei, HUANG
e70d49b9cf
feat: memtable stats ( #1591 )
...
* feat: memtable stats
* chore: add tests for timestamp subtraction
* feat: add `Value:as_timestamp` method
2023-05-17 11:07:07 +08:00
WU Jingdi
fb1ac0cb9c
feat: support user config manifest compression ( #1579 )
...
* feat: support user config manifest compression
* chore: change style
* chore: enhance test
2023-05-16 11:02:59 +08:00
Yingwen
8d54d40b21
feat: Add FlushPicker to flush regions periodically ( #1559 )
...
* feat: Add FlushPicker
* feat(storage): Add close to StorageEngine
* style(storage): fix clippy
* feat(storage): Close regions in StorageEngine::close
* chore(storage): Clear requests on scheduler stop
* test(storage): Test flush picker
* feat(storage): Add metrics for auto flush
* feat(storage): Add flush reason and record it in metrics
* feat: Expose flush config
docs(config): Update config example
* refactor(storage): Run auto flush task in FlushScheduler
* refactor(storage): Add FlushItem trait to make FlushPicker easy to test
2023-05-15 17:29:28 +08:00
Ning Sun
497b1f9dc9
feat: metrics for storage engine ( #1574 )
...
* feat: add storage engine region count gauge
* test: remove catalog metrics because we can't get a correct number
* feat: add metrics for log store write and compaction
* fix: address review issues
2023-05-15 15:22:00 +08:00
Lei, HUANG
cfcfc72681
refactor: remove version column ( #1576 )
2023-05-15 11:03:37 +08:00
WU Jingdi
486bb2ee8e
feat: Compress manifest and checkpoint ( #1497 )
...
* feat: Compress manifest and checkpoint
* refactor: use file extention infer compression type
* chore: apply suggestions from CR
* Update src/storage/src/manifest/storage.rs
Co-authored-by: Yingwen <realevenyag@gmail.com >
* chore: CR advices
* chore: Fix bugs, strengthen test
* chore: Fix CR, strengthen test
---------
Co-authored-by: dennis zhuang <killme2008@gmail.com >
Co-authored-by: Yingwen <realevenyag@gmail.com >
2023-05-10 07:53:06 +00:00
Yingwen
ee3e1dbdaa
feat: Use LocalScheduler framework to implement FlushScheduler ( #1531 )
...
* test: simplify countdownlatch
* feat: impl Drop for LocalScheduler
* feat(storage): Impl FlushRequest and FlushHandler
* feat(storage): Use scheduler to handle flush job
* chore(storage): remove unused code
* feat(storage): Use new type pattern for RegionMap
* feat(storage): Remove on_success callback
* feat(storage): Address CR comments and add some metrics to flush
2023-05-10 07:16:51 +00:00
Yingwen
1833e487a4
refactor: remove unnecessary async from RepeatedTask::start ( #1545 )
...
* refactor: relax RepeatedTask requirements
Some refactor:
- Remove async from start()
- Cancel task in drop
- Allow TaskFunction::call taking &mut self
- Make start/stop concurrent safe
* test(log-store): Fix log store tests (start multiple times)
2023-05-09 21:03:15 +08:00
Yingwen
479ef9d379
fix: checkpoint GC task also deletes the file with the last version ( #1491 )
...
* test(storage): use assert_eq to check scan result
* feat(storage): Add more info to manifest log
* feat: Avoid error log when unable to delete
* fix: The manifest gc task should delete files <= last_version
* feat(storage): Don't log if the error kind is not found
* feat: Add keep_last_checkpoint option
2023-05-04 14:18:38 +08:00
Yingwen
b1f7ad097a
test: Fix s3 region in test ( #1493 )
2023-04-27 12:25:20 +00:00
Weny Xu
bf35620904
refactor: refactor BufferedWriter ( #1439 )
...
* feat: implement ApproximateBufWriter
* refactor: refactor BufferedWriter
* refactor: remove ApproximateBufWriter
* fix: fix losing pending writes issue
* chore: fmt
* chore: remove unused import
* chore: rename method name
* feat: return written row count
* chore: apply suggestions from CR
* fix: fix counting the bytes_written twice issue
2023-04-27 14:45:33 +08:00
dennis zhuang
b88d8e5b82
feat: bump opendal to 0.33 ( #1479 )
2023-04-27 12:13:18 +08:00
dennis zhuang
2a9f482bc7
feat: show create table ( #1336 )
...
* temp commit
* feat: impl Display for CreateTable statement
* feat: impl show create table for standalone
* fix: forgot show.rs
* feat: clean code
* fix: typo
* feat: impl show create table for distributed
* test: add show create table sqlness test
* fix: typo
* fix: sqlness tests
* feat: render partition rules for distributed table
* Update src/sql/src/statements.rs
Co-authored-by: Yingwen <realevenyag@gmail.com >
* Update src/sql/src/statements.rs
Co-authored-by: Yingwen <realevenyag@gmail.com >
* Update src/sql/src/statements.rs
Co-authored-by: Yingwen <realevenyag@gmail.com >
* Update src/sql/src/statements/create.rs
Co-authored-by: Yingwen <realevenyag@gmail.com >
* chore: by CR comments
* fix: compile error
* fix: missing column comments and extra table options
* test: add show create table test
* test: add show create table test
* chore: timestamp precision
* fix: test
---------
Co-authored-by: Yingwen <realevenyag@gmail.com >
2023-04-21 11:37:16 +08:00
Ruihang Xia
a6e41cdd7b
chore: bump arrow, parquet, datafusion and tonic ( #1386 )
...
* bump arrow, parquet, datafusion, tonic and greptime-proto
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* add analyzer and fix test
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix clippy warnings
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update sqlness result
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-04-15 00:03:15 +08:00
Lei, HUANG
68e64a6ce9
feat: add some metrics ( #1384 )
...
* feat: add some metrics
* fix: compile errors
2023-04-14 20:46:45 +08:00
Ruihang Xia
da66138e80
refactor(error): remove backtrace, and introduce call-site location for debugging ( #1329 )
...
* wip: global replace
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix compile
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix warnings
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* remove unneeded tests of errors
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix ErrorExt trait implementator
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix warnings
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix format
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* fix pyo3 tests
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-04-06 04:06:00 +00:00
Eugene Tolbakov
59f7630000
feat: initial changes for compaction_time_window field support ( #1083 )
...
* feat(compaction_time_window): initial changes for compaction_time_window field support
* feat(compaction_time_window): move PickerContext creation
* feat(compaction_time_window): update region descriptor, fix formatting
* feat(compaction_time_window): add minor enhancements
* feat(compaction_time_window): fix failing test
* feat(compaction_time_window): return an error instead silently skip for the user provided compaction_time_window
* feat(compaction_time_window): add TODO reminder
2023-04-06 10:32:41 +08:00
dennis zhuang
bf8c717022
feat: try to do manifest checkpoint on opening region ( #1321 )
2023-04-04 21:36:54 +08:00
Ruihang Xia
99353c6ce7
refactor: rename "value" semantic type to "field" ( #1326 )
...
* global replace
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* change desc table
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update sqlness result
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-04-04 11:14:28 +00:00
dennis zhuang
68d3247791
chore: tweak logs ( #1314 )
...
* chore: tweak logs
* chore: cr comments
2023-04-03 21:08:16 +08:00
dennis zhuang
aea932b891
fix: checkpoint fails when deleting old logs fails ( #1300 )
2023-04-02 11:06:36 +08:00
Lei, HUANG
0253136333
feat: buffered parquet writer ( #1263 )
...
* wip: use
* rebase develop
* chore: fix typos
* feat: replace export parquet writer with buffered writer
* fix: some cr comments
* feat: add sst_write_buffer_size config item to config how many bytes to buffer before flush to underlying storage
* chore: reabse onto develop
2023-04-01 17:21:19 +08:00
dennis zhuang
563adbabe9
feat!: improve region manifest service ( #1268 )
...
* feat: try to use batch delete in ManifestLogStorage
* feat: clean temp dir when startup with file backend
* refactor: export region manifest checkpoint actions magin and refactor storage options
* feat: purge unused manifest and checkpoint files by repeat gc task
* chore: debug deleted logs
* feat: adds RepeatedTask and refactor all gc tasks
* chore: clean code
* feat: export gc_duration to manifest config
* test: assert gc works
* fix: typo
* Update src/common/runtime/src/error.rs
Co-authored-by: LFC <bayinamine@gmail.com >
* Update src/common/runtime/src/repeated_task.rs
Co-authored-by: LFC <bayinamine@gmail.com >
* Update src/common/runtime/src/repeated_task.rs
Co-authored-by: LFC <bayinamine@gmail.com >
* fix: format
* Update src/common/runtime/src/repeated_task.rs
Co-authored-by: Yingwen <realevenyag@gmail.com >
* chore: by CR comments
* chore: by CR comments
* fix: serde default for StorageConfig
* chore: remove compaction config in StandaloneOptions
---------
Co-authored-by: LFC <bayinamine@gmail.com >
Co-authored-by: Yingwen <realevenyag@gmail.com >
2023-03-31 10:42:00 +08:00
Ruihang Xia
b5e5f8e555
chore(deps): bump arrow and parquet to 36.0.0, and datafusion to the latest ( #1282 )
...
* chore: update arrow, parquet to 36.0 and datafusion
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* update deps
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* Apply suggestions from code review
Co-authored-by: LFC <bayinamine@gmail.com >
* update sqlness result
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
Co-authored-by: LFC <bayinamine@gmail.com >
2023-03-30 16:24:10 +08:00
Ruihang Xia
d7cadf6e6d
fix: nyc-taxi bench tools and limit max parallel compaction task number ( #1275 )
...
* limit mas parallel compaction subtask
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* correct type map
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-03-29 09:16:53 +00:00
Lei, HUANG
d7a1435517
fix: remove backtrace from ratelimit error ( #1273 )
2023-03-29 15:58:01 +08:00
Yingwen
e72ce5eaa9
fix: Adds FileHandle to ChunkStream ( #1255 )
...
* test: Add compaction test
* test: Test read during compaction
* test: Add s3 object store to test
* test: only run compact test
* feat: Hold file handle in chunk stream
* test: check files still exist after compact
* feat: Revert changes to develop.yaml
* test: Simplify MockPurgeHandler
2023-03-28 16:22:07 +08:00
Lei, HUANG
5edd2a3dbe
feat: upgrade opendal ( #1245 )
...
* chore: upgrade opendal
* chore: finish upgrading opendal
* fix: clippy complaints
* fix some tests
* fix: all unit tests
* chore: rebase develop
* fix: sqlness tests
* optimize imports
* chore: rebase develop
* doc: add todo
2023-03-28 09:47:33 +08:00
dennis zhuang
4f15b26b28
feat: region manifest checkpoint ( #1202 )
...
* chore: adds log when manifest protocol is changed
* chore: refactor region manifest
* temp commit
* feat: impl region manifest checkpoint
* feat: recover region version from manifest snapshot
* test: adds region snapshot test
* test: region manifest checkpoint
* test: alter region with manifest checkpoint
* fix: revert storage api
* feat: delete old snapshot
* refactor: manifest log storage
* Update src/storage/src/version.rs
Co-authored-by: Ruihang Xia <waynestxia@gmail.com >
* Update src/storage/src/manifest/checkpoint.rs
Co-authored-by: Ruihang Xia <waynestxia@gmail.com >
* Update src/storage/src/manifest/region.rs
Co-authored-by: Ruihang Xia <waynestxia@gmail.com >
* Update src/storage/src/manifest/region.rs
Co-authored-by: Ruihang Xia <waynestxia@gmail.com >
* chore: by CR comments
* refactor: by CR comments
* fix: typo
* chore: tweak start_version
---------
Co-authored-by: Ruihang Xia <waynestxia@gmail.com >
2023-03-27 11:15:52 +08:00
Lei, HUANG
6f81717866
fix: skip empty parquet ( #1236 )
...
* fix: returns None if parquet file does not contain any rows
* fix: skip empty parquet file
* chore: add doc
* rebase develop
* fix: use flatten instead of filter_map with identity
2023-03-26 09:39:15 +08:00
Lei, HUANG
77f9383daf
fix: allow larger compaction window to reduce parallel task num ( #1223 )
...
fix: unit tests
2023-03-24 17:12:13 +08:00
Yingwen
f1139fba59
fix: Holds FileHandle in ParquetReader to avoid the purger purges it ( #1224 )
2023-03-23 14:24:25 +00:00
LFC
b2a09c888a
feat: phi accrual failure detector ( #1200 )
2023-03-21 11:47:47 +08:00
Yingwen
ad5c47185d
feat: wait flush until the flush is done ( #1188 )
...
* feat: Add wait argument to flush
* test(storage): Fix flush tests
2023-03-20 11:25:19 +08:00
Weny Xu
296c6dfcbf
feat: implement table flush ( #1121 )
...
* feat: add flush method for trait
* feat: implement flush via grpc
* chore: move table_dir/region_name/region_id to table crate
* chore: Update src/mito/src/table.rs
---------
Co-authored-by: Yingwen <realevenyag@gmail.com >
2023-03-13 20:10:37 +08:00