Skip to main content

v0.8.2

Β· 4 min read

Release date: June 14, 2024

πŸš€ Features​

πŸ› Bug Fixes​

🚜 Refactor​

βš™οΈ Miscellaneous Tasks​

New Contributors​

All Contributors​

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

@MichaelScofield, @WenyXu, @cjwcommuny, @discord9, @evenyag, @irenjj, @sunng87, @v0y4g3r

v0.9.0-b03cb3860-20240606-1717661661

Release date: June 06, 2024

Breaking changes​

  • refactor!: remove the tableid in ddl response since tableids is enough by @fengjiachun in #4080

πŸš€ Features​

πŸ› Bug Fixes​

🚜 Refactor​

πŸ§ͺ Testing​

  • test: run test_flush_reopen_region and test_region_replay with KafkaLogStore by @WenyXu in #4083
  • test: add fuzz tests for column data type alteration by @realtaobo in #4076

βš™οΈ Miscellaneous Tasks​

  • ci: cargo gc fuzz test runner by @waynexia in #4074
  • ci: try to free space after fuzz tests by @WenyXu in #4089
  • chore: enable strip for tests-fuzz crate by @WenyXu in #4093
  • ci: add 'make run-cluster-with-etcd' to run greptimedb cluster by using docker-compose by @zyy17 in #4103
  • chore(ci): remove redundant sqlness test config by @WenyXu in #4106
  • ci: cargo gc all fuzz test runner by @waynexia in #4081
  • chore: remove gc before running fuzz tests by @WenyXu in #4108
  • chore: reduce some burden on the write path by @fengjiachun in #4110

Build​

New Contributors​

All Contributors​

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

@Kelvinyu1117, @MichaelScofield, @WenyXu, @discord9, @fengjiachun, @killme2008, @realtaobo, @sarailQAQ, @shuiyisong, @tisonkun, @v0y4g3r, @waynexia, @zyy17

v0.8.1

Β· 4 min read

Release date: May 30, 2024

This is a patch release, containing some important bug fix for flow's continuous aggregating in #4018

It's highly recommended to upgrade to this version if you're using v0.8.0.

πŸš€ Features​

πŸ› Bug Fixes​

  • fix(flow): correctness bugs by @discord9 in #4018

  • fix: try to fix broken CI by @WenyXu in #3998

  • fix: move log_version() into build() of App to fix no log version on bootstrap by @zyy17 in #4004

  • fix: try to fix unstable fuzz test by @WenyXu in #4003

  • fix: can't print log because the tracing guard is dropped by @zyy17 in #4005

  • fix(fuzz): sort inserted rows with primary keys and time index by @CookiePieWw in #4008

  • fix: notifies all workers once a region is flushed by @evenyag in #4016

  • fix(fuzz-tests): avoid to drop in-use database by @WenyXu in #4049

  • fix(metric-engine): missing catchup implementation by @WenyXu in #4048

  • fix: set local or session time_zone not work by @killme2008 in #4064

  • fix: avoid acquiring lock during reading stats by @WenyXu in #4070

🚜 Refactor​

  • refactor: make the command entry cleaner by @zyy17 in #3981
  • refactor: replace Expr with datafusion::Expr by @realtaobo in #3995
  • refactor: remove unused log config by @v0y4g3r in #4021
  • refactor(fuzz-tests): generate ts value separately by @WenyXu in #4056
  • refactor: move Database to client crate behind testing feature by @tisonkun in #4059
  • refactor(log_store): remove associated type Namespace and Entry in LogStore by @WenyXu in #4038

πŸ“š Documentation​

βš™οΈ Miscellaneous Tasks​

Build​

New Contributors​

All Contributors​

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

@CookiePieWw, @LYZJU2019, @MichaelScofield, @WenyXu, @discord9, @etolbakov, @evenyag, @fengjiachun, @irenjj, @killme2008, @realtaobo, @shuiyisong, @sunng87, @tisonkun, @v0y4g3r, @waynexia, @zyy17

v0.8.0

Β· 14 min read

Release date: May 18, 2024

πŸ‘ Highlights​

  • Flow Engine: which brings continuous aggregation capabilities.
  • Column Type Modification: allows you to effortlessly alter the data type of columns within a table without the hassle of rebuilding the table or manually migrating data.
  • Cluster Management Information Table: allows querying for information about the cluster. This functionality aids administrators in monitoring and managing the health status of the database cluster, facilitating prompt issue detection and resolution.
  • Append-only Tables: You can now create tables in Append-only mode by setting the append mode during table creation.
  • DROP DATABASE: enables swift deletion of all tables and resources under a database instance.
  • EXPLAIN ANALYZE <QUERY>: analyze and optimize query statements swiftly in distributed mode.

Breaking changes​

πŸš€ Features​

πŸ› Bug Fixes​

  • fix(readme): fix link of Ingester-js by @DiamondMofeng in #3668
  • fix: DeserializedValueWithBytes::from_inner misusing by @WenyXu in #3676
  • fix: cli export "create table" with quoted names by @dimbtp in #3684
  • fix(alter_table): ignore request outdated error by @WenyXu in #3715
  • fix: remove ttl option from metadata region by @waynexia in #3726
  • fix: set is_time_index properly on updating physical table's schema by @waynexia in #3770
  • fix: the dropping_regions guards should be dropped on procedure done by @MichaelScofield in #3771
  • fix: operating region guards should be dropped when procedure is done by @MichaelScofield in #3775
  • fix: consider both db param and extended db header in Prometheus HTTP API by @waynexia in #3776
  • fix: do not remove deletion markers when window time range overlaps by @v0y4g3r in #3773
  • fix: promql scalar when input empty batch by @Taylor-lagrange in #3779
  • fix: post process result on query full column name of prom labels API by @waynexia in #3793
  • fix: fix fuzz test ci by @WenyXu in #3795
  • fix: prune row groups correctly for columns with the same name by @evenyag in #3802
  • fix: push down order hint of the query again by @evenyag in #3797
  • fix: wrong handler implementation of prometheus remote write by @waynexia in #3826
  • fix: broken link in contributing guide by @waynexia in #3831
  • fix: compiler warnings on Windows by @evenyag in #3844
  • fix: count_wildcard_to_time_index_rule doesn't handle table reference properly by @waynexia in #3847
  • fix: retrieve all info instead of checking on demand by @WenyXu in #3846
  • fix: register regions during procedure recovery by @WenyXu in #3859
  • fix: return metric name instead of query in Prometheus /series API by @waynexia in #3864
  • fix: add data type to vector cache key by @evenyag in #3876
  • fix: memory leak in unit test of telemetry by @waynexia in #3897
  • by @waynexia
  • fix: sort unstable HTTP result in label values query by @waynexia in #3920
  • fix: potential deadlock by @WenyXu in #3930
  • fix(metric engine): label mismatch in metric engine by @v0y4g3r in #3927
  • fix: prevent exporting metric physical table data by @WenyXu in #3970
  • fix: prevent registering logical regions with AliveKeeper by @WenyXu in #3965
  • fix: changing column data type can't process type alias by @killme2008 in #3972
  • fix: tql parser hang on abnormal input by @waynexia in #3977

🚜 Refactor​

  • refactor: pass http method to metasrv http handler by @tisonkun in #3667
  • refactor(flow): func spec api&use Error not EvalError in mfp by @discord9 in #3657
  • refactor: bundle the lightweight axum test client by @tisonkun in #3669
  • refactor: refactor alter table procedure by @WenyXu in #3678
  • refactor: drop table procedure by @WenyXu in #3688
  • refactor: check error type before logging by @sunng87 in #3697
  • refactor: Move manifest manager lock to MitoRegion by @evenyag in #3689
  • refactor: use toml2docs to generate config docs by @zyy17 in #3704
  • refactor: remove redundant try_flush invocations by @tisonkun in #3706
  • refactor: merge RegionHandleResult into RegionHandleResponse by @tisonkun in #3721
  • refactor(meta): Ensure all moving values remain unchanged between two transactions by @WenyXu in #3727
  • refactor: avoid unnecessary cloning by @WenyXu in #3734
  • refactor: avoid unnecessary alloc by using unwrap_or_else by @etolbakov in #3742
  • refactor(flow): split render.rs and other minor changes by @discord9 in #3750
  • refactor: move the version string to common by @MichaelScofield in #3783
  • refactor: simplify the PaginationStream by @WenyXu in #3787
  • refactor(flow): refine comments and code by @zhongzc in #3785
  • refactor: log statement on error by Display by @tisonkun in #3803
  • refactor: refactor DatanodeManager to NodeManager by @WenyXu in #3811
  • refactor: DfUdfAdapter to bridge ScalaUdf by @tisonkun in #3814
  • refactor: remove location_opt and DebugFormat by @waynexia in #3830
  • refactor: use secrecy SerectString to hold secrets option by @tisonkun in #3804
  • refactor: rename flow task to flow by @WenyXu in #3833
  • refactor: remove catalog prefix by @WenyXu in #3835
  • refactor: remove TableMetaKey trait by @WenyXu in #3837
  • refactor: move database client to test by @dimbtp in #3820
  • refactor: remove re-export from logging by @waynexia in #3865
  • refactor: passing QueryContext to RegionServer by @Kelvinyu1117 in #3829
  • refactor: add the main cli entry point struct Command{} and simplify main() by @zyy17 in #3850
  • refactor: move Plugins to plugins.rs and use rwlock by @zyy17 in #3862
  • refactor(logstore): remove Entry::namemspace by @v0y4g3r in #3875
  • refactor: move mirror insertion tasks to the background runtime by @WenyXu in #3879
  • refactor: remove MixOptions and use StandaloneOptions only by @zyy17 in #3893
  • refactor: add procedure_loader macro by @WenyXu in #3906
  • refactor: make txn easy to use by @fengjiachun in #3905
  • refactor: Remove PhysicalPlan trait and use ExecutionPlan directly by @evenyag in #3894
  • refactor: refactor frontend cache by @WenyXu in #3912
  • refactor: rename metasrv_addr to metasrv_addrs by @fengjiachun in #3921
  • refactor: add tracing options in xOptions by @zyy17 in #3919
  • refactor: add Configurable trait by @zyy17 in #3917
  • refactor(naming): use the better naming for pubsub by @zyy17 in #3960

πŸ“š Documentation​

⚑ Performance​

πŸ§ͺ Testing​

  • test: Add tests for KvBackend trait implement by @realtaobo in #3700
  • test: introduce unstable fuzz create table test by @WenyXu in #3788
  • test: give windows file watcher more time by @sunng87 in #3953
  • test: gracefully shutdown postgres client in sql tests by @evenyag in #3958

βš™οΈ Miscellaneous Tasks​

Build​

New Contributors​

All Contributors​

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

@CookiePieWw, @DiamondMofeng, @KKould, @Kelvinyu1117, @MichaelScofield, @Taylor-lagrange, @WenyXu, @ZonaHex, @dimbtp, @discord9, @etolbakov, @evenyag, @fengjiachun, @irenjj, @killme2008, @realtaobo, @shuiyisong, @sunng87, @tisonkun, @tizee, @v0y4g3r, @waynexia, @zhongzc, @zyy17

v0.7.2

Β· 7 min read

Release date: April 08, 2024

This is a patch release, containing a critial bug fix to avoid wrongly delete data files (#3635).

It's highly recommended to upgrade to this version if you're using v0.7.

Breaking changes​

  • refactor!: Renames the new memtable to PartitionTreeMemtable by @evenyag in #3547
  • fix!: columns table in information_schema misses some columns by @killme2008 in #3639

πŸš€ Features​

  • feat: Partition memtables by time if compaction window is provided by @evenyag in #3501
  • feat: acquire all locks in procedure by @WenyXu in #3514
  • feat: implement the drop database parser by @WenyXu in #3521
  • feat(mito): Checks whether a region should flush periodically by @evenyag in #3459
  • feat(metasrv): implement maintenance by @tisonkun in #3527
  • feat: update dashboard to v0.4.9 by @ZonaHex in #3531
  • feat: support per table memtable options by @evenyag in #3524
  • feat(flow): shared in-memory state for dataflow operator by @discord9 in #3508
  • feat: update pgwire to 0.20 for improved performance by @sunng87 in #3538
  • feat: support multi params in promql range function macro by @Taylor-lagrange in #3464
  • feat: support append-only mode in time-series memtable by @v0y4g3r in #3540
  • feat: Able to pretty print sql query result in http output by @YCCDSZXH in #3539
  • feat: return new added columns in region server's extension response by @waynexia in #3533
  • feat: update physical table's schema on creating logical table by @waynexia in #3570
  • feat: implement the drop database procedure by @WenyXu in #3541
  • feat: batch alter logical tables by @fengjiachun in #3569
  • feat: support time range in copy table by @v0y4g3r in #3583
  • feat: update physical table schema on alter logical tables by @fengjiachun in #3585
  • feat(auth): watch file user provider by @tisonkun in #3566
  • feat: Support printing postgresql's bytea data type in its "hex" and "escape" format by @J0HN50N133 in #3567
  • feat: Implement append mode for a region by @evenyag in #3558
  • feat: create regions persist true by @fengjiachun in #3590
  • feat: remove support for logical tables in the create table procedure by @fengjiachun in #3592
  • feat: adds metric engine to information_schema engines table by @killme2008 in #3599
  • feat: support 2+2 and /status/buildinfo by @waynexia in #3604
  • feat(tql): add initial support for start,stop,step as sql functions by @etolbakov in #3507
  • feat: Implement an unordered scanner for append mode by @evenyag in #3598
  • feat: allow cross-schema query in promql by @sunng87 in #3545
  • feat: let alter table procedure can only alter physical table by @fengjiachun in #3613
  • feat(function): add timestamp epoch integer support for to_timezone by @etolbakov in #3620
  • feat: impl show index and show columns by @killme2008 in #3577
  • feat: group requests by peer by @fengjiachun in #3619
  • feat: Support outputting various date styles for postgresql by @J0HN50N133 in #3602
  • feat: reject invalid timestamp ranges in copy statement by @v0y4g3r in #3623
  • feat(procedure): auto split large value to multiple values by @WenyXu in #3605
  • feat(procedure): enable auto split large value by @WenyXu in #3628
  • feat: introduce wal benchmarker by @niebayes in #3446
  • feat: adding victoriametrics remote write by @sunng87 in #3641
  • feat: Add timers to more mito methods by @evenyag in #3659
  • feat: cluster information by @fengjiachun in #3631
  • feat: update dashboard to v0.4.10 by @ZonaHex in #3663

πŸ› Bug Fixes​

  • fix: clone data instead of moving it - homemade future is dangerous by @waynexia in #3542
  • fix: performance degradation caused by config change by @v0y4g3r in #3556
  • fix(flow): Arrange get range with batch unaligned by @discord9 in #3552
  • fix: set http response chartset to utf-8 when using table format by @xxxuuu in #3571
  • fix: update pk_cache in compat reader by @waynexia in #3576
  • fix: incorrect version info in by @waynexia in #3586
  • fix: canonicalize catalog and schema names by @killme2008 in #3600
  • fix: adjust status code to http error code map by @waynexia in #3601
  • fix: run purge jobs in another scheduler by @evenyag in #3621
  • fix: mistakely removes compaction inputs on failure by @v0y4g3r in #3635
  • fix: move object store read/write timer into inner by @dimbtp in #3627
  • fix: construct correct pk list with pre-existing pk by @waynexia in #3614

🚜 Refactor​

πŸ“š Documentation​

πŸ§ͺ Testing​

  • test: add a parameter type mismatch test case to sql integration test by @xxxuuu in #3568
  • test: add tests for drop databases by @WenyXu in #3594
  • test: add more integration test for kafka wal by @niebayes in #3190
  • test(sqlness): release databases after tests by @WenyXu in #3648

βš™οΈ Miscellaneous Tasks​

Build​

New Contributors​

All Contributors​

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

@CookiePieWw, @J0HN50N133, @MichaelScofield, @Taylor-lagrange, @WenyXu, @YCCDSZXH, @ZonaHex, @dimbtp, @discord9, @etolbakov, @evenyag, @fengjiachun, @killme2008, @niebayes, @shuiyisong, @sunng87, @tisonkun, @v0y4g3r, @waynexia, @xxxuuu, @zhongzc

v0.7.1

Β· 3 min read

Release date: March 14, 2024

This is a patch release, containing an important bug fix while decoding the Prometheus remote write proto https (#3505).

Future critical bug fixes were delivered at v0.7.2. It's highly recommended to upgrade to v0.7.2 if you're using v0.7.

Breaking changes​

  • fix!: remove error message from http header to avoid panic by @sunng87 in #3506

Bug fixes​

Improvements​

Others​

Contributors​

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

Eugene Tolbakov, JeremyHi, LFC, Lei HUANG, Ning Sun, Ruihang Xia, WU Jingdi, Weny Xu, Yingwen, Zhenchi, ZonaHe, crwen, discord9, gcmutator, shuiyisong, tison

v0.7.0

Β· 9 min read

Release date: March 12, 2024

This is a feature release, read the release blog to learn more detail about the feature and performance updates.

v0.7 represents a crucial leap toward achieving production readiness; it implements production-ready features for cloud-native monitoring scenarios.

Highlights

  • Metric Engine: handles a large number of small tables, making it particularly suitable for cloud-native monitoring.
  • Region Migration: enhances the user experience and simplifies region migrations with straightforward SQL commands.
  • Inverted Index: dramatically improves the efficiency of locating data segments relevant to user queries, significantly reducing the IO operations needed for scanning data files and thus accelerating the query process.

Breaking changes​

  • Switch prom remote write to metric engine by @waynexia in #3198
  • Rename initialize_region_in_background to init_regions_in_background by @WenyXu in #3216
  • New partition grammar in SQL parser by @waynexia in #3347

Bug fixes​

Improvements​

Contributors​

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

Cancai Cai, Eugene Tolbakov, Hudson C. DalprΓ‘, JeremyHi, JohnsonLee, Kould, LFC, Lei HUANG, Ning Sun, Ruihang Xia, SteveLauC, WU Jingdi, Wei, Weny Xu, Yingwen, Yiran, Zhenchi, ZonaHe, dennis zhuang, dimbtp, discord9, fys, liyang, niebayes, shuiyisong, tison