Skip to content

feat: support Duplication to send non-idempotent write operations #2379

@ruojieranyishen

Description

@ruojieranyishen

Feature Request

Is your feature request related to a problem? Please describe:
For some tables with duplication enabled, blocking non-idempotent writes is not strictly required in production.

Duplication does not support non-idempotent write operations (INCR, CHECK_AND_SET, CHECK_AND_MUTATE)
In mutation_batch::add_mutation_if_valid, all non-idempotent writes are skipped:

if (!task_spec::get(update.code)->rpc_request_is_write_idempotent) {
    continue;
}

In replica::need_reject_non_idempotent, non-idempotent writes are rejected:

return !spec->rpc_request_is_write_idempotent;

Describe the feature you'd like:
Support Duplication to send non-idempotent write operations (INCR, CHECK_AND_SET, CHECK_AND_MUTATE).

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions