Skip to content
On this page
Biweekly
2026-02-23

Prometheus 3.x, Arrow-PG & BulkMemtable Optimization | Greptime Biweekly Report - No. 76 & 77

Prometheus 3.x, Arrow-PG & BulkMemtable Optimization | Greptime Biweekly Report - No. 76 & 77
Postgres encoding upgraded to Arrow. BulkMemtable lazy encoding cuts L0 SSTs by 38%. Prometheus 3.x selector and lookback behavior now supported. Partition staging flow fixed for safer repartitioning.

Summary

Development period: 2026-01-26 - 2026-02-22

This is a combined report covering the past four weeks. Here are the highlights:

  • Postgres protocol encoding upgraded to arrow-pg with proper unsigned integer handling
  • BulkMemtable lazy encoding reduces L0 SST files by ~38% in TSBS workloads
  • Write operations now validate partition rule versions before staging
  • Prometheus 3.x selector and lookback behavior supported
  • Metadata-only table updates no longer restart memtables unnecessarily

We encourage users on older versions to upgrade for these fixes and improvements.

Our biggest announcements this period are v1.0 RC1 and the GreptimeDB 2026 Roadmap — if you want to know what's ahead for GreptimeDB in 2026, the roadmap is a must-read!

We've also redesigned the Greptime website with a cleaner look. Check it out at greptime.com.

Contributors

Over the past four weeks, contributors merged a total of 58 PRs. Among them, 3 individual contributors contributed 3 PRs. Welcome to our new contributor: @YZL0v3ZZ!

Thanks to our individual contributors:

Highlights of Recent PRs

db#7648 db#7634 Vector index improvements (experimental)

Vector index metadata switched to Protocol Buffers format for better serialization and cross-version compatibility, and sqlness integration tests were added. This feature is still under active development.

db#7591 feat: use arrow-pg for postgres data encoding

PostgreSQL client connections now support IntervalStyle configuration and handle unsigned integers more accurately by mapping them to wider PostgreSQL types (uint32 maps to int8, uint64 maps to numeric) to prevent overflow issues.

db#7617 feat: BulkMemtable compact parts without encoding into Parquet

BulkMemtable now uses lazy encoding to reduce compaction overhead, batching data in memory before converting to Parquet format based on configurable row and byte thresholds. This optimization reduces L0 SST file count by approximately 38% in TSBS workloads, lowering storage amplification and improving write performance.

db#7628 feat: partition rule version validation for writes and staging

GreptimeDB now validates partition rule versions during write operations to prevent data corruption when partition schemas change. Writers using outdated partition information will be rejected, ensuring data lands in the correct partitions even during schema transitions.

db#7688 feat: adapt prometheus 3.x selector and lookback behavior

PromQL queries now follow Prometheus 3.x selector behavior with start-exclusive instant selectors, and lookback handling is fixed for end bounds and matrix selectors to return correct results.

db#7695 fix(mito2): introduce PartitionExprChange in staging flow and keep memtables on metadata-only updates

Partition expression changes during region repartitioning no longer rebuild memtables, avoiding unnecessary memory operations and potential data loss. The system now distinguishes between metadata-only partition updates and column schema changes, ensuring safer and more efficient repartitioning workflows.

db#7626 refactor: remove the RawTableMeta and RawTableInfo to make codes more concise

Code refactoring removes RawTableMeta and RawTableInfo internal structures, reducing code complexity without changing user-facing functionality or breaking existing queries and operations.

Good First Issue

Issue#7314 Feature Request: Add built-in daemon mode to keep GreptimeDB running independently of shell sessions

Add a --daemon CLI flag to allow GreptimeDB to run as a background process independent of shell sessions, with proper stdout/stderr redirection and PID management.

Keywords: CLI, Daemon, Process Management

Difficulty: Medium

Issue#7544 Allow ALTER TABLE to modify the skip_wal option dynamically

Add support for dynamically changing the skip_wal table option through ALTER TABLE statements, allowing users to enable or disable WAL at runtime.

Keywords: SQL parser, Storage, WAL

Difficulty: Medium

Stay in the loop

Join our community