Skip to content
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

feat: row protocol support for opentsdb #2468

Closed
wants to merge 36 commits into from
Closed

feat: row protocol support for opentsdb #2468

wants to merge 36 commits into from

Conversation

Lilit0x
Copy link
Contributor

@Lilit0x Lilit0x commented Sep 21, 2023

I hereby agree to the terms of the GreptimeDB CLA

What's changed and what's your intention?

Support for row inserts in opentsdb

Please explain IN DETAIL what the changes are in this PR and why they are needed:
OpenTSDB now uses the row insert protocol as against column inserts

Checklist

  • I have written the necessary rustdoc comments.
  • I have added the necessary unit tests and integration tests.

close #2444

@Lilit0x Lilit0x marked this pull request as draft September 21, 2023 20:06
@Lilit0x Lilit0x marked this pull request as ready for review September 25, 2023 21:19
@MichaelScofield
Copy link
Collaborator

@Lilit0x can you fix the failed tests?

@codecov
Copy link

codecov bot commented Sep 26, 2023

Codecov Report

Merging #2468 (fcf65a1) into develop (201acd1) will decrease coverage by 0.57%.
The diff coverage is 100.00%.

❗ Current head fcf65a1 differs from pull request most recent head ff300d2. Consider uploading reports for the commit ff300d2 to get more accurate results

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #2468      +/-   ##
===========================================
- Coverage    85.28%   84.72%   -0.57%     
===========================================
  Files          730      724       -6     
  Lines       116093   115218     -875     
===========================================
- Hits         99009    97615    -1394     
- Misses       17084    17603     +519     

@fengjiachun
Copy link
Collaborator

Hi, @Lilit0x , can we make OpentsdbProtocolHandler accept a collection of DataPoints? In this way, we can convert the collection of DataPoints into a RowInsertRequests at once. I think this will improve efficiency. cc @MichaelScofield

@Lilit0x
Copy link
Contributor Author

Lilit0x commented Sep 27, 2023

Hi, @Lilit0x , can we make OpentsdbProtocolHandler accept a collection of DataPoints? In this way, we can convert the collection of DataPoints into a RowInsertRequests at once. I think this will improve efficiency. cc @MichaelScofield

Hi, that makes sense. I will work on it.

waynexia and others added 22 commits October 2, 2023 11:39
* feat: add two grpc config options

Those options are for:
* Limit receiving(decoding) message size
* Limit sending(enoding) message size

* test: add integration tests for message size limit
chore: remove unused region_status method form table
* feat: added show tables command

* fix(tests): fixed parser and statement unit tests

* chore: implemeted display trait for table type

* fix: handled no tabletype and error for usopprted command in show databse

* chore: removed full as a show kind, instead as a show option

* chore(tests): fixed failing test and added more tests for show full

* chore: refactored table types to use filters

* fix: changed table_type to tables
…2466)

* test: test on_compaction_finished

* fix: avoid submit same region to compact

* feat: persist and recover compaction time window

* test: fix test

* test: sort like result
* refactor: remove is_timestamp_compatible.

* chore: fmt

* refactor: remove int64 to timestamp match

* chore

* chore: apply suggestions from code review

Co-authored-by: dennis zhuang <[email protected]>

* chore: fmt

---------

Co-authored-by: dennis zhuang <[email protected]>
* feat: implement new histogram data model

* feat:  use prometheus table format for histogram

* refactor: remove duplicated code

* fix: histogram tag column

* fix: use accumulated count in buckets

* refactor: using row based protocol for otlp WIP

* refactor: use row based writer for otlp.

Also updated row writer for owned keys

* refactor: use row writers for otlp

* test: add integration tests for histogram

* refactor: change le column name
…ies (#2474)

fix: reset is_sorted flag to true after the merger finishing one series
fix: normalize region dir in RegionOpener
* refactor: datetime time unit

* Update src/common/time/src/datetime.rs

Co-authored-by: Yingwen <[email protected]>

* chore: cr.

---------

Co-authored-by: Yingwen <[email protected]>
)

* refactor: set meta leader lease secs to 3s

* fix: correct default heartbeat interval

* refactor: ask meta leader in parallel

* feat: configure heartbeat client timeout to 500ms

* fix: trigger to send heartbeat immediately after fail

* fix: fix clippy
zhongzc and others added 13 commits October 2, 2023 11:39
* feat: re-support query engine execute dml

Signed-off-by: Zhenchi <[email protected]>

* chore: remove region_number in InsertRequest

Signed-off-by: Zhenchi <[email protected]>

* chore: add doc comments

Signed-off-by: Zhenchi <[email protected]>

---------

Signed-off-by: Zhenchi <[email protected]>
* fix: convert datetime to chrono datetime

Signed-off-by: Zhenchi <[email protected]>

* chore: typo

Signed-off-by: Zhenchi <[email protected]>

* fix the bad fix

Signed-off-by: Zhenchi <[email protected]>

---------

Signed-off-by: Zhenchi <[email protected]>
* feat: distribute truncate table

* chore: add metrics for truncate table

* test: add sqlness test

* chore: cr

* test: add multi truncate

* chore: add trace id to the header
* impl macro stack_trace_debug

Signed-off-by: Ruihang Xia <[email protected]>

* manually mark external error

Signed-off-by: Ruihang Xia <[email protected]>

* ignore warnings

Signed-off-by: Ruihang Xia <[email protected]>

* fix clippy warnings

Signed-off-by: Ruihang Xia <[email protected]>

* use debug print

Signed-off-by: Ruihang Xia <[email protected]>

* simplify the error and warn macro

Signed-off-by: Ruihang Xia <[email protected]>

* fix ut

Signed-off-by: Ruihang Xia <[email protected]>

* add docs

Signed-off-by: Ruihang Xia <[email protected]>

* replace snafu backtrace with location

Signed-off-by: Ruihang Xia <[email protected]>

---------

Signed-off-by: Ruihang Xia <[email protected]>
* feat: add cache manager

* feat: add cache to reader builder

* feat: add AsyncFileReaderCache

* feat: Impl AsyncFileReaderCache

* chore: move moka dep to workspace

* feat: add moka cache to the manager

* feat: implement parquet meta cache

* test: test cache manager

* feat: consider vec size

* style: fix clippy

* test: fix config api test

* feat: divide cache

* test: test disabling meta cache

* test: fix config api test

* feat: remove meta cache if file is purged
* fix: check for table scan before expanding

Signed-off-by: Ruihang Xia <[email protected]>

* change assert_ok to unwrap

Signed-off-by: Ruihang Xia <[email protected]>

* fix clippy warning

Signed-off-by: Ruihang Xia <[email protected]>

* update sqlness result

Signed-off-by: Ruihang Xia <[email protected]>

* don't skip dml

Signed-off-by: Ruihang Xia <[email protected]>

* uncomment ignored tests

Signed-off-by: Ruihang Xia <[email protected]>

---------

Signed-off-by: Ruihang Xia <[email protected]>
…he dir (#2504)

fix: fix region drop task runs multiple times but never clean the directory
* refactor: simplify the error! and warn! macros

Signed-off-by: Ruihang Xia <[email protected]>

* support display format

Signed-off-by: Ruihang Xia <[email protected]>

* err.msg to err

Signed-off-by: Ruihang Xia <[email protected]>

---------

Signed-off-by: Ruihang Xia <[email protected]>
* chore: set default connect_timeout_millis to 1000

* fix: re-create heartbeat stream ASAP

* chore: apply suggestions
* chore: test return msg

* fix: test_child_error

Signed-off-by: Ruihang Xia <[email protected]>

* chore: fix test

* chore: minor fix grpc return value

* chore: format return msg

* chore: use root error as return value

* chore: fix empty err display

* chore: iter through external error

* chore: remove err msg

* chore: remove unused field

---------

Signed-off-by: Ruihang Xia <[email protected]>
Co-authored-by: Ruihang Xia <[email protected]>
* fix: allow `.`(dot) literal in table name

* fix: resolve PR comments
feat: pushdown filters to region engine

Signed-off-by: Zhenchi <[email protected]>
@Lilit0x Lilit0x closed this Oct 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Use row protocol to support opentsdb