Skip to main content

v0.9.0

· 11 min read

Release date: July 16, 2024

👍 Highlights

  • Log Engine: GreptimeDB is now a unified time-series database for both metrics, logs, and events (trace in plan).
  • Remote WAL is significantly improved and is now recommended to turn on.
  • Table View: You can now CREATE VIEW on tables and treat them as logical table.
  • Short interval literal for user experience.
  • InfluxDB Merge Read: You can now use the merge_mode=last_non_null table option to allow SELECT result merges all the last non-null fields.
  • gRPC TLS: You can now set up the grpc.tls config to turn on TLS for gRPC connection.
  • Manually Compact in Strict Window: You can now use SELECT COMPACT_TABLE("monitor", "strict_window", "3600"); to manually schedule a compaction task, splitting SST files strictly into time windows. The third option is the time window's width in seconds.

Breaking changes

  • refactor!: unify FrontendOptions and DatanodeOptions by using GrpcOptions by @realtaobo in #4088
  • feat!: reduce sorted runs during compaction by @v0y4g3r in #3702
  • fix!: forbid to change information_schema by @CookiePieWw in #4233
  • feat!: remove alias metasrv-addr by @discord9 in #4239
  • feat!: Set merge mode while creating table in influx handler by @evenyag in #4299

🚀 Features

🐛 Bug Fixes

  • fix(sqlness): catch different format timestamp by @WenyXu in #4149
  • fix: region logical regions after catching up by @WenyXu in #4176
  • fix(flow): fix call df func bug&sqlness test by @discord9 in #4165
  • fix: region_peers returns same region_id for multi logical tables by @realtaobo in #4190
  • fix(sql): improve compound signed number processing by @etolbakov in #4200
  • fix: align workflows again for the troublesome GHA by @waynexia in #4196
  • fix: format error correctly by @WenyXu in #4204
  • fix: wrong frontend registration address by @killme2008 in #4199
  • fix: add serialize_ignore_column_ids() to fix deserialize region options failed from json string by @zyy17 in #4229
  • fix(puffin): fix dependency by @v0y4g3r in #4267
  • fix(fuzz): generate valid string by @WenyXu in #4281
  • fix: enhance ColumnOption::DefaultValue formatting for string values by @WenyXu in #4287
  • fix: enable space string in yaml value by @shuiyisong in #4286
  • fix: align pre-commit config with make file by @shuiyisong in #4292
  • fix: call df_func with literal by @discord9 in #4265
  • fix: prepare inserting with column defaults not work, #4244 by @killme2008 in #4272
  • fix: deregister failure detector in region migration by @WenyXu in #4293
  • fix(ci): remove sqlness state in success by @waynexia in #4313
  • fix: test_fulltext_intm_path by @zhongzc in #4314
  • fix: error on show databases in non-default catalog by @sunng87 in #4316
  • fix: panic while reading information_schema. KEY_COLUMN_USAGE by @killme2008 in #4318
  • fix: support unary operator in default value, partition rule and prepare statement by @waynexia in #4301
  • fix(sqlness): relax start time regex to match various precisions by @waynexia in #4326
  • fix: permission denied is 403 by @sunng87 in #4350
  • fix(config): enable file engine by default by @WenyXu in #4345
  • fix: build info should use build time env var by @tisonkun in #4343
  • fix: remove path label for cache store by @sunng87 in #4336
  • fix: scan hint checks order asc by @evenyag in #4365

🚜 Refactor

  • refactor: add Compactor trait to abstract the compaction by @zyy17 in #4097
  • refactor: make region manifest checkpoint ran in background by @MichaelScofield in #4133
  • refactor: Decouple dedup and merge by @evenyag in #4139
  • refactor: make RegionOptions and MergeOutput serializable by @zyy17 in #4180
  • refactor: add region_dir in CompactionRegion by @zyy17 in #4187
  • refactor: migrate region failover implementation to region migration by @WenyXu in #4172
  • refactor: add SerializedPickerOutput and field modification of CompactorRequest by @zyy17 in #4198
  • refactor(flow): make from_substrait_* async& worker handle refactor by @discord9 in #4210
  • refactor: expose DatanodeBuilder::build_object_store_manager() and MitoConfig::sanitize() by @zyy17 in #4212
  • refactor: use ObjectStoreManagerRef type in open_compaction_region() and add related unit test by @zyy17 in #4238
  • refactor: add interceptor after Influxdb lines are converted to grpc row insert by @MichaelScofield in #4225
  • refactor: add RemoteCompaction error by @zyy17 in #4251
  • refactor: change InvertedIndexWriter method signature to offsets to f… by @v0y4g3r in #4250
  • refactor(puffin): adjust generic parameters by @zhongzc in #4279
  • refactor: use rwlock for modifiable session data by @sunng87 in #4232
  • refactor(inverted_index): integrate puffin manager with sst indexer by @zhongzc in #4285
  • refactor: split match arms in prom_expr_to_plan into smaller methods by @waynexia in #4317
  • refactor: do not print error log on PlanQuery error by @sunng87 in #4322
  • refactor: Remove the StandaloneKafkaConfig struct by @irenjj in #4253
  • refactor: LastRowReader to use LastRowSelector by @v0y4g3r in #4374

📚 Documentation

⚡ Performance

🧪 Testing

⚙️ Miscellaneous Tasks

◀️ Revert

Build

All Contributors

We would like to thank the following contributors from the GreptimeDB community:

@CookiePieWw, @J0HN50N133, @MichaelScofield, @WenyXu, @ZonaHex, @discord9, @etolbakov, @evenyag, @fengjiachun, @irenjj, @killme2008, @lyang24, @paomian, @realtaobo, @shuiyisong, @sunng87, @tisonkun, @v0y4g3r, @waynexia, @yuanbohan, @zhongzc, @zyy17