Skip to main content

OLake Go (v0.8.0 - v0.8.1)

June 29, 2026 – July 09, 2026

🎯 What's New​

Destinations​

  1. Single JVM per process for Iceberg writes -
    Previously, every Iceberg writer spawned its own JVM per stream/chunk, causing excessive memory usage and OOM risk on large concurrent syncs. Now a single shared JVM handles all streams, with ThreadSession based isolation preserving per-stream state and cutting memory overhead.

πŸ”§ Bug Fixes & Stability​

  1. Refactored MySQL chunking helpers for testability -
    Split the MySQL GetOrSplitChunks flow into smaller helper functions for chunk sizing, column selection, bound selection, and split strategy routing, enabling independent unit tests without changing existing chunking behavior.

  2. Placeholder for unavailable TOAST values in Postgres CDC -
    Added an olake_unavailable_value placeholder to mark unchanged TOAST columns whose values aren't available in PostgreSQL logical replication events.

  3. Fixed discover failure for schema/table names containing "." -
    Tables with a . in their schema or name (e.g. user1.test_table) broke discover, since namespace and name were joined into one string and later re-split on ., aborting discovery entirely. Fixed by carrying a types.StreamID{Namespace, Name} struct through the driver contract across all 8 drivers, avoiding the round-trip.

  4. Fixed nil pointer panic in DropStreams -
    destination.DropStreams panicked when a writer returned no shutdown callback, breaking clear-destination and any path relying on DropStreams. Fixed by guarding against a nil shutdown callback before invoking it.



πŸ’‘ Join the OLake Community!

Got questions, ideas, or just want to connect with other data engineers?
πŸ‘‰ Join our Slack Community to get real-time support, share feedback, and shape the future of OLake together. πŸš€

Your success with OLake is our priority. Don’t hesitate to contact us if you need any help or further clarification!