Skip to content

Broken contract of Appenderator in KafkaIndexTask  #5729

@jihoonson

Description

@jihoonson

#4815 introduced the incremental handoff for KafkaIndexTask. In this PR, publishExecService was added, but it breaks the below contract of Appenderator.

If committer is not provided, no metadata is persisted. If it's provided, the add, clear, persist, persistAll, and push methods should all be called from the same thread to keep the metadata committed by Committer in sync.

One solution is adding synchronization blocks to KafkaIndexTask when it calls AppenderatorDriver.add(), AppenderatorDriver.persist(), and AppenderatorDriver.publish(). However, I'm not sure why publishExecService is needed because Appenderator and AppenderatorDriver are already supporting background publishing.

Metadata

Metadata

Assignees

No one assigned

    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