Lei, HUANG
f7d98e533b
chore: fix compaction caused race condition ( #1759 )
...
* fix: set max_files_in_l0 in unit tests to avoid compaction
* refactor: pass while EngineConfig
* fix: comment out unstable sqlness test
* revert commented sqlness
2023-06-12 11:19:42 +00:00
Yingwen
0e937be3f5
fix(storage): Use region_write_buffer_size as default value ( #1760 )
2023-06-12 15:05:17 +08:00
Ruihang Xia
8c78368374
refactor: replace #[snafu(backtrace)] with Location ( #1753 )
...
* remove snafu backtrace
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
* clean up
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
---------
Signed-off-by: Ruihang Xia <waynestxia@gmail.com >
2023-06-12 11:55:33 +08:00
Lei, HUANG
67c16dd631
feat: optimize some parquet writer parameter ( #1758 )
2023-06-12 11:46:45 +08:00
Lei, HUANG
ddcee052b2
fix: order by optimization ( #1748 )
...
* add some debug log
* fix: use lazy parquet reader in MitoTable::scan_to_stream to avoid IO in plan stage
* fix: unit tests
* fix: order-by optimization
* add some tests
* fix: move metric names to metrics.rs
* fix: some cr comments
2023-06-12 11:45:43 +08:00
dennis zhuang
f08f726bec
test: s3 manifest ( #1755 )
...
* feat: change default manifest options
* test: s3 manifest
* feat: revert checkpoint_margin to 10
* Update src/object-store/src/test_util.rs
Co-authored-by: Lei, HUANG <6406592+v0y4g3r@users.noreply.github.com >
---------
Co-authored-by: Lei, HUANG <6406592+v0y4g3r@users.noreply.github.com >
2023-06-09 10:28:41 +00:00
Yingwen
5b8e54e60e
feat: Add HTTP API for cpu profiling ( #1694 )
...
* chore: print source error in mem-prof
* feat(common-pprof): add pprof crate
* feat(servers): Add pprof handler to router
refactor the mem_prof handler to avoid checking feature while
registering router
* feat(servers): pprof handler support different output type
* docs(common-pprof): Add readme
* feat(common-pprof): Build guard using code in pprof-rs's example
* feat(common-pprof): use prost
* feat: don't add timeout to perf api
* feat: add feature pprof
* feat: update readme
* test: fix tests
* feat: close region in TestBase
* feat(pprof): addres comments
2023-06-07 15:25:16 +08:00
Lei, HUANG
f63ddb57c3
fix: parquet time range predicate panic ( #1735 )
...
fix: parquet reader should use store schema to build time range predicate
2023-06-06 19:11:45 +08:00
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