Conversation
default to the library The latest libtidesdb release adds TDB_ERR_BUSY at -14, defined as the case where the engine gave up after its internal backpressure stall budget ran out without freeing memtable or L0 capacity. It is transient in exactly the same way as TDB_ERR_MEMORY_LIMIT, so the plugin now folds it into the same three paths. The rc map sends it to HA_ERR_LOCK_WAIT_TIMEOUT alongside the existing memory limit branch, tdb_with_backpressure_wait keeps retrying inside the configured backpressure timeout instead of bubbling the error up immediately, and the hton_commit unexpected error log filter excludes it so a busy commit no longer spams the error log. Without this change every write heavy workload would surface ER_GET_ERRNO 1030 on the first stall budget exhaustion even though the engine was healthy and just needed a moment to drain. tidesdb_default_l0_queue_stall_threshold shipped at 20 while the underlying TDB_DEFAULT_L0_QUEUE_STALL_THRESHOLD is 10, so a freshly created table queued twice as many immutable memtables before backpressure kicked in compared with the same table created through bare libtidesdb. The THDVAR default now matches the library and the README and reference doc say so explicitly. tidesdb_defaults_alignment is re-recorded against the new value so any future drift has to update the recorded result and be acknowledged.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
default to the library
The latest libtidesdb release adds TDB_ERR_BUSY at -14,
defined as the
case where the engine gave up after its internal
backpressure stall
budget ran out without freeing memtable or L0 capacity.
It is transient
in exactly the same way as TDB_ERR_MEMORY_LIMIT, so the
plugin now
folds it into the same three paths. The rc map sends it
to
HA_ERR_LOCK_WAIT_TIMEOUT alongside the existing memory limit branch,
tdb_with_backpressure_wait keeps retrying inside the configured
backpressure timeout instead of bubbling the error up immediately, and
the hton_commit unexpected error log filter excludes it
so a busy
commit no longer spams the error log. Without this change every write
heavy workload would surface ER_GET_ERRNO 1030 on the first stall
budget exhaustion even though the engine was healthy and just needed a
moment to drain.
tidesdb_default_l0_queue_stall_threshold shipped at 20 while the
underlying TDB_DEFAULT_L0_QUEUE_STALL_THRESHOLD is 10, so a freshly
created table queued twice as many immutable memtables before
backpressure kicked in compared with the same table created through
bare libtidesdb. The THDVAR default now matches the library