Skip to content

Count the answers that were refused and the changes that would not apply - #508

Open
bjmeetsfo wants to merge 2 commits into
mainfrom
oss/count-the-refusals-and-the-applies-that-failed
Open

Count the answers that were refused and the changes that would not apply#508
bjmeetsfo wants to merge 2 commits into
mainfrom
oss/count-the-refusals-and-the-applies-that-failed

Conversation

@bjmeetsfo

Copy link
Copy Markdown
Collaborator

Two things the metaserver does can fail without anything saying so.

A topology query can be answered with an error: the table is gone, or
frozen, or was never there. The request counter counts that as a query like
any other, so a client looping against a name that does not exist looks
exactly like one being served.

A recorded mutation can fail to apply. That is the more serious of the two.
Applying is how replay rebuilds the state from the log, so a mutation that
will not apply means the recorded history and the state it should have
produced have parted company -- and the metaserver carries on without
mentioning it. That is the kind of thing that is only ever noticed later,
from the wrong end.

temporalstore_meta_topology_query_failed_total and
temporalstore_meta_mutation_apply_failed_total.

Counted around the whole answer and the whole apply, so every refusal
reaches them however the call returns.

Test: a query for a table that is not there, and dropping a table that was
never created, each move their counter once; an answer that succeeds moves
neither. Removing the apply counter fails it.

Two things the metaserver does can fail without anything saying so.

A topology query can be answered with an error: the table is gone, or
frozen, or was never there. The request counter counts that as a query like
any other, so a client looping against a name that does not exist looks
exactly like one being served.

A recorded mutation can fail to apply. That is the more serious of the two.
Applying is how replay rebuilds the state from the log, so a mutation that
will not apply means the recorded history and the state it should have
produced have parted company -- and the metaserver carries on without
mentioning it. That is the kind of thing that is only ever noticed later,
from the wrong end.

temporalstore_meta_topology_query_failed_total and
temporalstore_meta_mutation_apply_failed_total.

Counted around the whole answer and the whole apply, so every refusal
reaches them however the call returns.

Test: a query for a table that is not there, and dropping a table that was
never created, each move their counter once; an answer that succeeds moves
neither. Removing the apply counter fails it.
@bjmeetsfo
bjmeetsfo requested a review from superhaiou as a code owner August 31, 2026 05:24
# Conflicts:
#	crates/temporalstore-rust/src/meta.rs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants