Thanks!  That helps clear things up some.  So if forceFromStart is true it
will force it to start at the beginning.  If nothing is changed it will try
and start from the last committed offset, but if there is no committed
offset where will it start?  What if there is a saved offset, but we want
to force it to start at the end?  Or if we want to force a particular
offset, not the last saved one?  I'm guessing that based on public boolean
useStartOffsetTimeIfOffsetOutOfRange = true if an offset is found that is
out of the range, it will start at the start/beginning offset?

Essentially what I want to be able to specify the following conditions:
Start at the first (oldest) message on the topic: set forceFromStart = true
Start at the last (newest) message on the topic : ?
Start at the last saved offset : Don't change the config defaults
Start at an explicit offset: ? (I don't envision needing to use this, but
just in case)



On Thu, Jul 24, 2014 at 1:40 PM, Harsha <st...@harsha.io> wrote:

>  Hi Adrian,
>            If you set forceFromStart to true it calls KafkaApi.Offset to
> get the earliest time, which finds the beginning of the kafka logs and
> starts the streaming from there. By default this is set to false and it
> makes a request to Kafka to find whats the last committed offset and
> streams it from there. You can control how often kafka offset needs to be
> committed by using SpoutConfig.stateUpdateIntervalMs by default its 2000 ms.
> -Harsha
>
>
>
> On Thu, Jul 24, 2014, at 12:27 PM, Adrian Landman wrote:
>
> In nathanmarz/storm-contrib project there was a KafkaConfig that had a
> forceOffsetTime.  In our code someone had documented that calling this with
> different values would affect the offsets in the following way:
>
> -2 Will start at the beginning (earliest message) of the topic
> -1 Will start at the end (latest message) of the topic
> -3 Will start where the spout left off
> And anthing >0 will start at the specified offset.
>
> In the new project external/storm-kafka there is also a KafkaConfig and I
> see that it exposes
> public boolean forceFromStart = false;
> public long startOffsetTime = kafka.api.OffsetRequest.EarliestTime();
> public long maxOffsetBehind = 100000;
> public boolean useStartOffsetTimeIfOffsetOutOfRange = true;
>
> By default does this mean the spout will start at the beginning of the
> topic?  What does the forceFromStart do?  If we want to start from whatever
> offset the spout was last processing, is there anyway to do this?
>
>
>

Reply via email to