OLake Go (v0.8.0 - v0.8.1)
June 29, 2026 β July 09, 2026
π― What's Newβ
Destinationsβ
- 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, withThreadSessionbased isolation preserving per-stream state and cutting memory overhead.
π§ Bug Fixes & Stabilityβ
-
Refactored MySQL chunking helpers for testability -
Split the MySQLGetOrSplitChunksflow into smaller helper functions for chunk sizing, column selection, bound selection, and split strategy routing, enabling independent unit tests without changing existing chunking behavior. -
Placeholder for unavailable TOAST values in Postgres CDC -
Added anolake_unavailable_valueplaceholder to mark unchanged TOAST columns whose values aren't available in PostgreSQL logical replication events. -
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 atypes.StreamID{Namespace, Name}struct through the driver contract across all 8 drivers, avoiding the round-trip. -
Fixed nil pointer panic in
DropStreams-
destination.DropStreamspanicked when a writer returned no shutdown callback, breaking clear-destination and any path relying onDropStreams. Fixed by guarding against a nil shutdown callback before invoking it.