Summary
Together with all our contributors worldwide, we are glad to see GreptimeDB making remarkable progress for the better. In the past two weeks, a total of 119 PRs were merged for our program. Below are some highlights:
- Accept InfluxDB request without timestamp even if table doesn't exist
- Impl Interval type and conversation between gRPC and Interval
- Support Truncate Table in standalone mode
- Support RangeSelect Logical Plan rewrite
Contributor list: (in alphabetical order)
For the past two weeks, our community has been super active with a total of 20 PRs from 11 contributors merged successfully and lots pending to be merged. Congrats on becoming our most active contributors in the past 2 weeks:
- @DevilExileSu (db#2084 db#2090 db#2097)
- @etolbakov (db#2078)
- @gongzhengyang (db#2055 db#2116)
- @niebayes (docs#509)
- @NiwakaDev (db#2041)
- @parkma99 (db#2042)
- @quakewang (docs#521)
- @QuenKar (db#1952 db#2043 db#2064 db#2117 db#2146)
- @sjcsjc123 (gtctl#86 gtctl#119)
- @sunray-ley (db#2044)
- @Taylor-lagrange (db#2058)
- @xie-zheng (db#2143)
👏 Let's welcome @gongzhengyang and @quakewang as the new contributors to join our community with their first PR merged.
A big THANK YOU for the generous and brilliant contributions! It is people like you who are making GreptimeDB a great product. Let's build an even greater community together.
Highlights of Recent PR
Support accept InfluxDB request without timestamp even if table doesn't exist
Originally, we could execute the following command when the corresponding table existed, but we couldn't execute the command when the corresponding table didn't exist:
curl -i -XPOST "http://localhost:4000/v1/influxdb/write?db=public&precision=ms" \
--data-binary \
'monitor,host=127.0.0.1 cpu=0.1,memory=0.4'
We now support GreptimeDB accepting InfluxDB requests without timestamps if the corresponding table does not exist.
Impl interval type and conversation between gRPC and interval
In #1952, we
- impl
Interval
type in common time package; - impl
DataType
,Vector
,Value
trait for IntervalMonthDayNano;
and fix bug in #1886. Now we implement the basic Interval type, and this PR is used to implement the conversation between gRPC and Interval.
Support Truncate Table in standalone mode
In this PR, we implement the Truncate Table procedure in standalone mode, reset version and Truncate region, which:
- Acquires the
RegionWriter
lock; - Create
RegionMetaAction::Truncate
to storecommitted_sequence
and persist it for recovery from the manifest; - Mark all data in WAL as
obsolete
; - Mark all SSTs as deleted;
- Reset Version.
Also we support recover from RegionMetaAction::Truncate
.
- Mark all SSTs as deleted.
- Reset the Version and set the
committed_sequence
fromRegionMetaAction::Truncate
as the Version'sflushed_sequence
.
Support RangeSelect Logical Plan rewrite
In order to provide the ability to easily aggregate over time at the SQL level (e.g., aggregation calculations in five-minute steps), GreptimeDB is in the process of implementing a new Range syntax, and this implementation of the RangeSelect logic is planned to be one step in that process. This is one of the steps in implementing the range select logic scheme, and the issue can be found here.
New Things
We have released greptime-js-sdk, which is based on typescript and encapsulates common SQL table building, insertion and querying statements, as well as PromQL queries. We will continue to improve support for different protocols and syntaxes, as well as improve the documentation to further reduce the difficulty of getting started with GreptimeDB.