Skip to content
On this page

MySQL Functions & Memory Limiting Unification | Biweekly No.73

Enhanced MySQL compatibility with additional string functions. Unified memory management system across write operations. Modularized manifest...

Summary

Development period: 2025-12-15 - 2025-12-28

v1.0.0-beta.4 is out! This release brings database-level compaction options that apply dynamically to existing tables, critical bug fixes (including panic issues when sorting on time index), and the changes highlighted below. We recommend upgrading.

Here's what landed in GreptimeDB over the past two weeks:

  • More MySQL-compatible string functions
  • Unified memory limiting across write paths
  • Modular manifest storage for easier maintenance

Contributors

18 contributors merged 61 PRs in this cycle. 6 community contributors accounted for 9 PRs—welcome @frostming!

Shoutout to our most active community contributors:

Highlights of Recent PRs

db#7454 Add MySQL-compatible string functions

Adds LOCATE, ELT, and FIELD—string functions MySQL has but DataFusion doesn't. Handy for users migrating MySQL workloads. Also switches function aliasing to DataFusion's native alias system, dropping our custom implementation.

db#7280 Unify storage configuration for CLI export

The CLI export command now uses a shared ObjectStoreConfig from the common module, cleaning up duplicate config code and adding support for local filesystem, S3, OSS, GCS, and Azure Blob Storage.

db#7483 Modularize manifest storage

Breaks the monolithic ManifestObjectStore into focused components: DeltaStorage, CheckpointStorage, and StagingStorage. Gets rid of the awkward is_staging: bool parameter and makes it easier for StagingStorage to handle content types beyond delta manifests.

db#7402 Unify database compaction options with TTL behavior

Compaction options now resolve at scheduling time with table → database → default priority, matching how TTL works. Table creation no longer copies database-level settings—only explicit table-level settings are preserved.

db#7408, db#7437 Unify memory limiting

Moves MemoryManager to the common crate and consolidates three overlapping memory limiters into one. Replaces the expensive recursive size calculations in Frontend and the per-request RequestMemoryLimiter in HTTP/gRPC servers with a unified approach using 1KB granularity for fairer allocation under high concurrency.

Good First Issue

Issue#7328 Improve HTTP handler error logging

Some HTTP handlers return non-200 responses without logging the underlying error, making production debugging harder than it needs to be. The goal is to audit all handlers and add consistent error logging before returning error responses.

Keywords: HTTP handler, Error logging

Difficulty: Medium

Issue#7314 Add built-in daemon mode

On ARM64 boards or edge devices, GreptimeDB terminates when the shell session closes. Adding a --daemon flag (à la Redis's daemonize yes) would let it run detached from the terminal—useful for embedded systems without systemd where nohup is the current workaround.

Keywords: CLI, daemon, edge deployment

Difficulty: Easy

Join our community

Get the latest updates and discuss with other users.