欢迎参与 8 月 1 日中午 11 点的线上分享,了解 GreptimeDB 联合处理指标和日志的最新方案! 👉🏻 点击加入

Skip to content
On this page

Biweekly Report (Jan.16 - Feb.5) – Initial Support of PromQL

Summary

Together with all our contributors worldwide, we are glad to see GreptimeDB making remarkable progress for the better. Below are some highlights:

  • Add load_based selector in meta
  • Support PromQL to query data natively
  • Support OSS storage

Join us at GitHub.

Contributor list: (In alphabetical order)

Congrats on becoming our most active contributors in the past 3 weeks:

During the past three weeks, there have been a total of 6 PRs merged, with many pending to be merged. Welcome our new contributors @wanglei4687 and @jun0315 onboard!

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 in the new year.

Good first issue

Issue #855 (Help Wanted)

Issue description: remove backtrace from sql::error::Error

Most backtraces in sql::error::Error are unnecessary, and they affect performance since the parser have to return them when encountering invalid SQL statements.

This issue can be easily fixed by removing the "backtrace" field from those variants listed below.

greptimedb/src/sql/src/error.rs: Line54-Line58

rust
UnsupportedDefaultValue {
    column_name: String,
    expr: Expr,
    backtrace: Backtrace,
},

greptimedb/src/sql/src/error.rs: Line71-Line83

rust
InvalidTimeIndex { sql: String, backtrace: Backtrace },

#[snafu(display("Invalid SQL, error: {}", msg))]
InvalidSql { msg: String, backtrace: Backtrace },

#[snafu(display("SQL data type not supported yet: {:?}", t))]
SqlTypeNotSupported {
  t: crate::ast::DataType,
  backtrace: Backtrace,
},

#[snafu(display("Failed to parse value: {}, {}", msg, backtrace))]
ParseSqlValue { msg: String, backtrace: Backtrace },

greptimedb/src/sql/src/error.rs: Line98-Line111

rust
InvalidDatabaseName { name: String, backtrace: Backtrace },

#[snafu(display("Invalid table name: {}", name))]
InvalidTableName { name: String, backtrace: Backtrace },

#[snafu(display("Invalid default constraint, column: {}, source: {}", column, source))]
InvalidDefault {
    column: String,
    #[snafu(backtrace)]
    source: datatypes::error::Error,
},

#[snafu(display("Unsupported ALTER TABLE statement: {}", msg))]
UnsupportedAlterTableStatement { msg: String, backtrace: Backtrace },

Issue #918 (Closed)

Issue description: Improve data retrieval speed by enabling OpenDAL's CacheLayer by default

OpenDAL has a CacheLayer reduces the need to access the underlying storage layer, thereby increasing data retrieval performance. This issue wants to build a caching mechanism by using CacheLayer.

A special thanks to @e1ijh1 for swiftly addressing this issue. We will continue to improve our object storage caching mechanism by building upon their contribution, particularly in distributed and serverless modes.

Highlights of Recent PR

What's cooking on DB's develop branch

#596

Currently, GreptimeDB only supports SQL and gRPC protocols for querying data.

However, PromQL has become an established standard query language in the field of cloud-native Observability.

We hope to natively support PromQL in GreptimeDB and release GreptimeDB v0.1 later this month, at which time PromQL Beta version will also be ready and we encourage you to give it a try.

#874

A new load-balancing policy, CREATE TABLE (Multi Region), has been added which supports the selection of available nodes(LoadBasedSelector) based on Load.

This policy can achieve a relatively more balanced load distribution compared to the default one (LeaseBasedSelector).

The selector can be specified through the start command, for example:

SQL
cargo run -- metasrv start --selector LoadBased

#911

Aliyun Object Storage Services (OSS) is available

GreptimeDB enables local files and Amazon S3 storage based on OpenDAL, and now OSS is also supported.

加入我们的社区

获取 Greptime 最新更新,并与其他用户讨论。