Skip to content

Releases: GreptimeTeam/greptimedb

Release v1.0.0-beta.3-nightly-20251222

22 Dec 02:30
c0652f6

Choose a tag to compare

Pre-release

What's Changed

Full Changelog: v1.0.0-beta.3...v1.0.0-beta.3-nightly-20251222

Release v1.0.0-beta.3

17 Dec 07:52
1afcddd

Choose a tag to compare

v1.0.0-beta.3

Release date: December 17, 2025

It's recommended to upgrade to v1.0.0-beta.4

Breaking changes

  • feat!: download file to fill the cache on write cache miss by @evenyag in #7294
    • Added: region_engine.mito.manifest_cache_size (default: 256MB)
    • Removed: storage.cache_path, storage.enable_read_cache, storage.cache_capacity

🚀 Features

🐛 Bug Fixes

🚜 Refactor

  • refactor(servers): allow custom flight service by @v0y4g3r in #7333
  • refactor(servers): bulk insert service by @v0y4g3r in #7329
  • refactor: remove datafusion data frame wrapper by @waynexia in #7347
  • refactor: use versioned index for index file by @discord9 in #7309
  • refactor: extract file watcher to common-config by @shuiyisong in #7357
  • refactor: remove duplication coverage and code from window sort tests by @waynexia in #7384
  • refactor: optimize heartbeat channel and etcd client keepalive settings by @WenyXu in #7390

⚡ Performance

🧪 Testing

⚙️ Miscellaneous Tasks

All Contributors

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

@MichaelScofield, @WenyXu, @ZonaHex, @daviderli614, [@discord9](ht...

Read more

Release v1.0.0-beta.2-nightly-20251215

15 Dec 02:33
b601781

Choose a tag to compare

Pre-release

What's Changed

Full Changelog: v1.0.0-beta.2-8af1ab0ff-20251209-1765256263...v1.0.0-beta.2-nightly-20251215

Release v1.0.0-beta.2-b60178160-20251212-1765553490

12 Dec 16:32
b601781

Choose a tag to compare

What's Changed

Full Changelog: v1.0.0-beta.2-8af1ab0ff-20251209-1765256263...v1.0.0-beta.2-b60178160-20251212-1765553490

Release v1.0.0-beta.2-8af1ab0ff-20251209-1765256263

09 Dec 04:58
8b26a98

Choose a tag to compare

Release v1.0.0-beta.2-8af1ab0ff-20251208-1765190404

08 Dec 11:41
7199823

Choose a tag to compare

What's Changed

Full Changelog: v1.0.0-beta.2...v1.0.0-beta.2-8af1ab0ff-20251208-1765190404

Release v1.0.0-beta.2

03 Dec 04:14
0177f24

Choose a tag to compare

v1.0.0-beta.2

Release date: December 03, 2025

Breaking changes

  • fix!: align numeric type aliases with PostgreSQL and MySQL by @killme2008 in #7270
  • feat!: improve mysql/pg compatibility by @killme2008 in #7315
  • perf(metric-engine)!: Replace mur3 with fxhash for faster TSID generation by @v0y4g3r in #7316

👍 Highlights

🚀 Key New Features

  • Region Migration:
    • Introduced batch region migration
  • JSON Handling:
    • New UDF: json_get_object.
  • Operations:
    • Supported dynamic enabling or disabling of tracing.
    • Enabled parallel table operations in COPY DATABASE.
    • Supported the ability to alter database compaction options.

⚡ Performance Improvements

  • Enhanced efficiency by parallelizing file source region and building partition sources in parallel.
  • Optimized query execution by avoiding unnecessary merge sort.
  • Implemented tracking for the query memory pool.

🐛 Notable Bug Fixes

  • Fixed a critical write stall issue that prevented recovery due to flush logic problems.
  • Resolved a deadlock in the metric engine when altering a group of tables.
  • Fixed multiple compatibility issues, including corrections for PostgreSQL extended query parameter parsing, timezone settings, and MySQL binary date type handling.

🚀 Features

🐛 Bug Fixes

  • fix: obtain system time after fetching lease values by @WenyXu in #7223
  • fix: clone the page before putting into the index cache by @evenyag in #7229
  • fix: correct signature of current_schemas function by @sunng87 in #7233
  • fix: allow compacting L1 files under append mode by @evenyag in #7239
  • fix: dynamic reload tracing layer loses trace id by @waynexia in #7257
  • fix: log not print by @killme2008 in #7272
  • fix: return sqlalchemy compatible version string in version() by @sunng87 in #7271
  • fix: postgres extended query paramater parsing and type check by @sunng87 in #7276
  • fix: unlimit trace_id query in jaeger API by @shuiyisong in #7283
  • fix: postgres show statement describe and timestamp text parsing by @sunng87 in #7286
  • fix: postgres timezone setting by default by @killme2008 in #7289
  • fix: pre-commit all files failed by @yihong0618 in #7290
  • fix: mysql binary date type and multi-lang ci tests by @killme2008 in #7291
  • fix: partition tree metric should the delta by @evenyag in #7307
  • fix: implement bulk write for time partitions and bulk memtable by @evenyag in #7293
  • fix: metric engine deadlock when altering a group of tables by @waynexia in #7308
  • fix: request limiter test case fix by @fengjiachun in #7323
  • fix: fix write stall that never recovers due to flush logic issues by @WenyXu in #7322

🚜 Refactor

  • refactor: remove export_metrics and related configuration by @WaterWhisperer in #7236
  • refactor: create JsonValue for json value by [@...
Read more

Release v1.0.0-beta.2-nightly-20251201

01 Dec 02:31
8346acb

Choose a tag to compare

Pre-release

What's Changed

New Contributors

Full Changelog: v1.0.0-beta.1-nightly-20251117...v1.0.0-beta.2-nightly-20251201

Release v1.0.0-beta.1-nightly-20251117

17 Nov 02:25
2bbc4bc

Choose a tag to compare

Pre-release

What's Changed

Full Changelog: v1.0.0-beta.1...v1.0.0-beta.1-nightly-20251117

Release v1.0.0-beta.1

11 Nov 15:29
8153068

Choose a tag to compare

Release date: November 11, 2025

🚨 Breaking changes

  • refactor(pipeline)!: change dispatch table name format by @paomian in #6901
  • feat!: improve greptime_identity pipeline behavior by @waynexia in #6932
  • refactor!: add enable_read_cache config to support disable read cache explicitly by @zyy17 in #6834
  • refactor!: remove pb_value to json conversion, keep json output consistent by @sunng87 in #7063
  • refactor!: unify the API of getting total cpu and memory by @zyy17 in #7049
  • refactor!: add a opentelemetry_traces_operations table to aggregate (service_name, span_name, span_kind) to improve query performance by @zyy17 in #7144
  • feat(metric)!: enable sparse primary key encoding by default by @WenyXu in #7195

👍 Highlights

Dashboard v0.11.7 Released

  • Metrics UI optimization: separated table and chart tabs, independent instant/range queries, support for time picker and multi-value display.
  • Timezone optimization: support for timezone validation and local storage persistence.
  • Flow management: UI for flow task CRUD operations.

Bulk Memtable

For scenarios with high cardinality primary keys, this release introduces experimental Bulk Memtable and a new data organization format (flat format). Both must be used together. Bulk Memtable offers lower memory usage when dealing with high cardinality primary keys. When primary key cardinality exceeds two million, memory usage can be reduced by more than 75%. Currently, Bulk Memtable performs better with larger write batch sizes, and we recommend setting batch sizes to 1024 rows or more when using Bulk Memtable. Additionally, the new data organization format provides better query performance in high cardinality scenarios compared to the original format.

Users can enable the new data format and Bulk Memtable by specifying sst_format as flat when creating tables.

CREATE TABLE flat_format_table(
    request_id STRING,
    content STRING,
    greptime_timestamp TIMESTAMP TIME INDEX,
PRIMARY KEY (request_id))
WITH ('sst_format' = 'flat');

Additionally, for tables using the old format, you can switch to the flat format and Bulk Memtable using an ALTER statement.

ALTER TABLE old_format_table SET 'sst_format' = 'flat';

Tables using the flat format cannot be converted back to the old format. We will gradually switch the default format to the new format in future releases.

Independent Index File Caching

This release implements independent local caching for index files on object storage, allowing index files to be cached in local disk cache as much as possible, reducing the probability of accessing object storage during index queries. By default, the database allocates 20% of disk cache space to index files. Users can adjust this ratio by setting the index_cache_percent parameter.

In previous versions, when users increased the local disk cache size, only newly generated data files could enter the local write cache, providing limited improvement for querying historical data. In this version, the database loads index files from object storage to local storage in the background after startup, reducing the time required for historical data queries.

Read-Write Permission Control Mode

This release introduces permission mode support for the static user provider, implementing read-write access control with support for read-only, write-only, and read-write permissions. This enhancement enables administrators to create users with specific access levels, improving security and data governance.

The static user provider now accepts the format username:permission_mode=password, where the optional permission_mode can be:

  • rw (read-write): Full access to read and write operations
  • ro (read-only): Restricted to read operations only
  • wo (write-only): Restricted to write operations only

Examples:

# Read-write user (default, backward compatible)
greptime_user=greptime_pwd
# Or explicitly specified
greptime_user:rw=greptime_pwd

# Read-only user
greptime_user:ro=greptime_pwd

# Write-only user
greptime_user:wo=greptime_pwd

This feature is fully backward compatible with the old format - users without an explicitly specified permission mode default to read-write access (rw).

TQL Supports Value Aliasing

TQL now supports AS aliases for clearer column names and easier SQL integration.

TQL EVAL (0, 30, '10s') http_requests_total AS requests;

New objbench Subcommand (Datanode)

This release adds the greptime datanode objbench subcommand for conducting read/write performance benchmarks on specified SST files in object storage. This tool can be used to analyze storage layer performance, troubleshoot slow queries or I/O latency issues, and supports generating flame graphs for deeper performance diagnostics.
Main Features

  • Perform read/write performance tests on individual SST files
  • Support detailed output (-v/--verbose)
  • Support generating SVG flame graphs (--pprof-file)
  • Can load datanode configuration files (--config)
# Basic test
greptime datanode objbench --config datanode.toml --source <path>.parquet

# Generate flame graph
greptime datanode objbench --config datanode.toml --source <path>.parquet --pprof-file flamegraph.svg

🚀 Features

  • feat: Update parquet writer and indexer to support the flat format by @evenyag in #6866
  • feat: unify FlushRegions instructions by @aaraujo in #6819
  • feat: implement basic write/read methods for bulk memtable by @evenyag in #6888
  • feat: Supports flat format in SeqScan and UnorderedScan by @evenyag in #6905
  • feat: put sqlness into a separated dir by @waynexia in #6911
  • feat: humanize analyze numbers by @waynexia in #6889
  • feat: file ref mgr by @discord9 in #6844
  • feat: add written_bytes_since_open column to region_statistics table by @WenyXu in #6904
  • feat: support function alias by @MichaelScofield in #6917
  • feat: add CPU, memory and node status info to cluster_info by @WenyXu in #6897
  • feat: add udtf (table function) registration by @sunng87 in #6922
  • feat(pipeline): generate create table sql from pipeline config by @shuiyisong in #6930
  • feat(mito): backfill partition expr on region open by @zhongzc in #6862
  • feat: add InformationExtension.inspect_datanode for datanode inspection by @zhongzc in #6921
  • feat: Implements compaction for bulk memtable by @evenyag in #6923
  • feat: add origin_region_id and node_id to sst entry by @zhongzc in #6937
  • feat: store partition expr per file in region manifest by @waynexia in #6849
  • feat: exiting staging mode on success case by @waynexia in #6913
  • feat: expose workload filter to selector options by @WenyXu in #6951
  • feat: support flat format for SeriesScan by @evenyag in #6938
  • feat: support flush and compact flat format files by @evenyag in #6949
  • feat: add visible to sst entry for staging mode by @zhongzc in #6964
  • feat: add an flag to enable the experimental flat format by @evenyag in #6976
  • feat: add TLS support for mysql backend by @WenyXu in #6979
  • feat: datanode side local gc worker by @discord9 in #6940
  • feat: extract standalone...
Read more