You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@samza.apache.org by "Shanthoosh Venkataraman (JIRA)" <ji...@apache.org> on 2019/03/17 20:32:00 UTC
[jira] [Updated] (SAMZA-2129) Move the offset comparison check to
choose the lowest offset to SystemConsumers.
[ https://issues.apache.org/jira/browse/SAMZA-2129?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Shanthoosh Venkataraman updated SAMZA-2129:
-------------------------------------------
Description:
Moves the offset comparison check to SystemConsumers
* Currently the offset comparator check to find a lowest for a `SystemStreamPartition` is duplicated in some implementations of SystemConsumer API.
* Some `SystemConsumer` implementations do not perform this offset comparator check
in the implementation of register method.
* Moving this one level up from `SystemConsumer.register(SystemStreamPartition, offset)` API implementation to `SystemConsumers.register(SystemStreamPartition, offset)` API implementation removes unnecessary duplication and ensures functional correctness.
There should be no functional breakages introduced by moving the offset-comparator check to `SystemConsumers` layer. Here's why. Metadata and I/O topics currently use SystemConsumer API to read data.
* Checkpoint topic: This is a stream with one partition and is log-compacted. Samza-container reads from the beginning of this stream. There's no offset comparisons required for this topic.
* ChangeLog topic: To read change-log topic-partition, SamzaContainer uses `StorageManagerUtil.getStartingOffset` to read from the change-log topic and the offset comparator check to choose the lowest offset is currently performed within it.
* Coordinator topic: This is a stream with one partition and is log-compacted. SamzaContainer/ApplicationMaster is currently reads from the beginning of this stream to get the entire state.
* I/O topics: `SamzaContainer` currently reads data from input and output topics through `SystemConsumers` API. Moving this offset comparator check should not affect the existing functionality.
was:
* Moves the offset comparison check to SystemConsumers
* Currently the offset comparator check to find a lowest for a `SystemStreamPartition` is duplicated in some implementations of SystemConsumer API.
* Some `SystemConsumer` implementations do not perform this offset comparator check
in the implementation of register method.
* Moving this one level up from `SystemConsumer.register(SystemStreamPartition, offset)` API implementation to `SystemConsumers.register(SystemStreamPartition, offset)` API implementation removes unnecessary duplication and ensures functional correctness.
There should be no functional breakages introduced by moving the offset-comparator check to `SystemConsumers` layer. Here's why. Metadata and I/O topics currently use SystemConsumer API to read data.
* Checkpoint topic: This is a stream with one partition and is log-compacted. Samza-container reads from the beginning of this stream. There's no offset comparisons required for this topic.
* ChangeLog topic: To read change-log topic-partition, SamzaContainer uses `StorageManagerUtil.getStartingOffset` to read from the change-log topic and the offset comparator check to choose the lowest offset is currently performed within it.
* Coordinator topic: This is a stream with one partition and is log-compacted. SamzaContainer/ApplicationMaster is currently reads from the beginning of this stream to get the entire state.
* I/O topics: `SamzaContainer` currently reads data from input and output topics through `SystemConsumers` API. Moving this offset comparator check should not affect the existing functionality.
> Move the offset comparison check to choose the lowest offset to SystemConsumers.
> --------------------------------------------------------------------------------
>
> Key: SAMZA-2129
> URL: https://issues.apache.org/jira/browse/SAMZA-2129
> Project: Samza
> Issue Type: Improvement
> Reporter: Shanthoosh Venkataraman
> Assignee: Shanthoosh Venkataraman
> Priority: Major
>
> Moves the offset comparison check to SystemConsumers
> * Currently the offset comparator check to find a lowest for a `SystemStreamPartition` is duplicated in some implementations of SystemConsumer API.
> * Some `SystemConsumer` implementations do not perform this offset comparator check
> in the implementation of register method.
> * Moving this one level up from `SystemConsumer.register(SystemStreamPartition, offset)` API implementation to `SystemConsumers.register(SystemStreamPartition, offset)` API implementation removes unnecessary duplication and ensures functional correctness.
> There should be no functional breakages introduced by moving the offset-comparator check to `SystemConsumers` layer. Here's why. Metadata and I/O topics currently use SystemConsumer API to read data.
> * Checkpoint topic: This is a stream with one partition and is log-compacted. Samza-container reads from the beginning of this stream. There's no offset comparisons required for this topic.
> * ChangeLog topic: To read change-log topic-partition, SamzaContainer uses `StorageManagerUtil.getStartingOffset` to read from the change-log topic and the offset comparator check to choose the lowest offset is currently performed within it.
> * Coordinator topic: This is a stream with one partition and is log-compacted. SamzaContainer/ApplicationMaster is currently reads from the beginning of this stream to get the entire state.
> * I/O topics: `SamzaContainer` currently reads data from input and output topics through `SystemConsumers` API. Moving this offset comparator check should not affect the existing functionality.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)