Join us for a virtual meetup on Zoom at 8 PM, July 31 (PDT) about using One Time Series Database for Both Metrics and Logs 👉🏻 Register Now

Skip to content
On this page
Biweekly
August 16, 2023

Biweekly Report (Jul.31 - Aug.13) – Greptime Javascript SDK Release!

A recap of the past two-weeks progress and changes happened on GreptimeDB.

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:

👏 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:

rust
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 store committed_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 from RegionMetaAction::Truncate as the Version's flushed_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.

Join our community

Get the latest updates and discuss with other users.