When changing the code, I realized that it feels weird to have
DeleteRequest and DeleteTopicsRequest. Thus I would follow the suggestion
and change it to DeleteRecordsRequest in this KIP, unless we decide to use
PurgeRequest.

On Wed, Mar 15, 2017 at 12:04 PM, Dong Lin <lindon...@gmail.com> wrote:

> Hey Jason, Ismael, Jeff,
>
> Regarding Purge vs PurgeRecords, would it be OK for me to make a followup
> patch to rename PurgeRequest to PurgeRecordsRequest (similarly for
> ProduceRequest and FetchRequest)? This is because I favor PurgeRequest over
> PurgeRecordsRequest before we rename ProduceRequest and FetchRequest.
> Also, since the patch is ready for merge other than the naming issue we
> are discussing here, I would like to make less cosmetic code change and
> have it merged soon. I can submit the patch to rename the requests right
> after the pull request is committed.
>
> Hey Jun,
>
> You mentioned that the purpose of having purge is to distinguish between
> removing while log vs removing portion of the log. The PurgeRequest
> proposed in this KIP will remove portion of the Log since it works on the
> granularity of records. This will be more explicit after we rename it to
> PurgeRecordsRequest. If we want to have request in the future to remove the
> entire log, we can name it PurgeLogRequest. Thus I think it is OK to use
> "delete" instead of "purge" in the name and still be able to distinguish
> between removing while log vs removing portion of the log.
>
> I have updated the KIP to replace "purge" with "delete" in the names of
> the Java API and requests. Are you OK with the change?
>
> Thanks,
> Dong
>
>
> On Wed, Mar 15, 2017 at 9:59 AM, Jason Gustafson <ja...@confluent.io>
> wrote:
>
>> Hey Dong,
>>
>> Sorry for the late reply. Yes, I prefer PurgeRecordsRequest instead of
>> PurgeRequest. DeleteRecords seems even better. As mentioned, I also think
>> it would be a good idea to rename FetchRequest and ProduceRequest
>> accordingly, but we need not consider that here. We could potentially
>> rename Purge to PurgeRecords if and when we rename Fetch and Produce, but
>> if that's the plan, we may as well do it from the start. Anyway, it's just
>> my preference, so don't block on my opinion if the consensus is unclear.
>>
>> -Jason
>>
>>
>>
>> On Wed, Mar 15, 2017 at 8:45 AM, Ismael Juma <ism...@juma.me.uk> wrote:
>>
>> > Hi Dong,
>> >
>> > I think your suggestion of including `Records` in the name of the new
>> > request and renaming `Fetch` and `Produce` to be `FetchRecords` and
>> > `ProduceRecords` is a good one. We can do the the renames separately.
>> It's
>> > a compatible change since the name of the API is never exchanged with
>> > clients and the request/response classes are internal (we have done such
>> > renames before as Jason pointed out offline). The number of APIs will
>> > continue to grow and it will be much clearer if we avoid implicit
>> > assumptions about the target of an API request/response.
>> >
>> > Given that, I also think that DeleteRecords makes sense since we also
>> have
>> > DeleteTopics. Both are batch APIs that delete multiple items (the space
>> is
>> > only freed later). If we use Oracle's definition of "purge", it seems
>> to be
>> > what happens to cause the space to be freed (and happens in the
>> background
>> > in Kafka):
>> >
>> > "Purging is the process of freeing up space in the database or of
>> deleting
>> > obsolete data that is not required by the system. The purge process can
>> be
>> > based on the age of the data or the type of data"
>> > https://docs.oracle.com/cd/E12057_01/doc.1014/e12050/archpur
>> g.htm#BABHDECI
>> >
>> > Regarding the AdminClient, I thought the KIP was proposing adding this
>> > method to the Java AdminClient (KIP-117). If it's the Scala one, then it
>> > doesn't even need to be in the KIP as the Scala AdminClient is internal
>> and
>> > no compatibility guarantees are offered (the methods that exist there
>> never
>> > went through a KIP for example). So, I'm OK with keeping the method
>> > signature as it is.
>> >
>> > Ismael
>> >
>> > On Fri, Mar 10, 2017 at 6:06 PM, Dong Lin <lindon...@gmail.com> wrote:
>> >
>> > > Hey Jason,
>> > >
>> > > Just to clarify, are you, together with Ismael and Jeff, suggesting
>> that
>> > > the new request should be named PurgeRecordsRequest instead of
>> > > PurgeRequest? The advantage of PurgeRecordsRequest is the name itself
>> is
>> > > more explicit about what it does. The disadvantage of
>> PurgeRecordsRequest
>> > > is that it is a bit consistent with ProduceRequest and FetchRequest,
>> > which
>> > > already assumes that if the target is not explicitly specified then
>> the
>> > > target is "Records".
>> > >
>> > > I would be in favor of PurgeRecordsRequest if we plan to change
>> > > FetchRequest
>> > > to FetchRecordsRequest and ProduceRequest to ProduceRequestsRequest.
>> > > Otherwise, I would prefer PurgeRequest since it is more consistent
>> with
>> > > existing style. Would PurgeRequest look more reasonable if we simply
>> > assume
>> > > that the operation target is "Records" if it is not explicitly
>> specified
>> > in
>> > > the name?
>> > >
>> > > Becket is also in favor of PurgeRequest for the same reason. Maybe we
>> can
>> > > start a vote for this if people can not reach consensus on this name?
>> I
>> > > won't fight for PurgeRequest if most people like PurgeRecordsRequest.
>> > >
>> > > Thanks,
>> > > Dong
>> > >
>> > >
>> > >
>> > >
>> > > On Thu, Mar 9, 2017 at 5:39 PM, Jason Gustafson <ja...@confluent.io>
>> > > wrote:
>> > >
>> > > > Re; Purge vs PurgeRecords: I think I'm with Ismael and Jeff that the
>> > > > increasing surface area of the request APIs calls for more explicit
>> > > naming.
>> > > > PurgeRecords sounds reasonable to me. Using simple verbs like
>> "fetch"
>> > and
>> > > > "produce" made sense when there were 6 or 7 APIs, but we'll soon be
>> up
>> > to
>> > > > 30. I could also imagine having other Purge* APIs in the future
>> (e.g.
>> > > > PurgeCommittedOffsets?), so it would be nice to avoid the need to
>> > rename
>> > > in
>> > > > the future, though it's probably not too big of a problem if we have
>> > to.
>> > > > (FWIW, I'd also be in favor of change FetchRequest to
>> > FetchRecordsRequest
>> > > > and ProduceRequest to ProduceRequestsRequest.)
>> > > >
>> > > > -Jason
>> > > >
>> > > > On Tue, Mar 7, 2017 at 10:11 AM, Dong Lin <lindon...@gmail.com>
>> wrote:
>> > > >
>> > > > > Hi Jun, Ismael,
>> > > > >
>> > > > > I think making the API similar to a future KIP is desirable but
>> not
>> > > > > required. Implementation is easy but discussion of the API may
>> take a
>> > > lot
>> > > > > of time given that we haven't yet reached agreement on KIP-117.
>> Thus
>> > I
>> > > > > prefer to just mark the API in Scala as unstable.
>> > > > >
>> > > > > I am OK with either delete or purge in the name.
>> > > > >
>> > > > > Thanks,
>> > > > > Dong
>> > > > >
>> > > > >
>> > > > > On Tue, Mar 7, 2017 at 9:59 AM, Jun Rao <j...@confluent.io> wrote:
>> > > > >
>> > > > > > Hi, Dong, Ismael,
>> > > > > >
>> > > > > > 1. I just meant that it would be useful to distinguish between
>> > > removing
>> > > > > the
>> > > > > > whole log vs removing a portion of the log. The exact naming is
>> > less
>> > > > > > important.
>> > > > > >
>> > > > > > 4. When we move the purgeBefore() api to the Java AdminClient,
>> it
>> > > would
>> > > > > be
>> > > > > > great if the api looks comparable to what's in KIP-117. For now,
>> > > > perhaps
>> > > > > we
>> > > > > > can mark the api in Scala as unstable so that people are aware
>> that
>> > > > it's
>> > > > > > subject to change?
>> > > > > >
>> > > > > > Thanks,
>> > > > > >
>> > > > > > Jun
>> > > > > >
>> > > > > > On Fri, Mar 3, 2017 at 11:25 AM, Dong Lin <lindon...@gmail.com>
>> > > wrote:
>> > > > > >
>> > > > > > > Hey Ismael,
>> > > > > > >
>> > > > > > > Thank for the detailed explanation. Here is my thought:
>> > > > > > >
>> > > > > > > 1. purge vs. delete
>> > > > > > >
>> > > > > > > We have originally considered purge, delete, truncate and
>> > remove. I
>> > > > > don't
>> > > > > > > have a strong preference among them and would be OK with any
>> > choice
>> > > > > here.
>> > > > > > > That is why I didn't provide specific reasoning for selecting
>> > purge
>> > > > and
>> > > > > > > instead asked you and Jun for reason to choose between
>> > > purge/delete.
>> > > > > > >
>> > > > > > > Can you be more specific where do we use "delete" in
>> > > > > AdminClient.scala? I
>> > > > > > > couldn't find any usage of "delete" there.
>> > > > > > >
>> > > > > > > "delete" seems to be the only one that is exposed in the wire
>> > > > protocol
>> > > > > > and
>> > > > > > > script to the user. For example, "delete" as an option for
>> > > > > > kafka-topics.sh.
>> > > > > > > And it is used in the name of "DeleteTopicRequest" and a field
>> > name
>> > > > in
>> > > > > > the
>> > > > > > > StopReplicaRequest. That is why I slightly prefer "delete"
>> over
>> > > > > "purge".
>> > > > > > >
>> > > > > > > But all these names have been used in the Java API that is not
>> > > > exposed
>> > > > > > > directly to the user. For example, We have Log.truncateTo(),
>> > > > > > > DelayedOperation.purgeCompleted(), and
>> MemoryNavigableLRUCache.
>> > > > > remove().
>> > > > > > > Also, we haven't yet exposed any Java API to user that uses
>> any
>> > of
>> > > > > these
>> > > > > > > choices. Thus there is no unanimous choice here and it should
>> be
>> > OK
>> > > > to
>> > > > > > > choose any of the "delete", "purge", "truncate" or "remove"
>> and
>> > at
>> > > > this
>> > > > > > > stage. I personally don't have any obvious difference among
>> them
>> > > and
>> > > > am
>> > > > > > OK
>> > > > > > > with any of them.
>> > > > > > >
>> > > > > > > 2. Message vs. Record vs. data in the Java API name.
>> > > > > > >
>> > > > > > > Both "message" and "record"  are used in the Kafka, e.g.
>> > > > MemoryRecords,
>> > > > > > > ProducerRecord, ConsumerRecords,
>> ReplicaManager.appendRecords(),
>> > > > > > > ReplicaManager.fetchMessages(). I remember there was a patch
>> > that
>> > > > > > changed
>> > > > > > > method name from using "message" to "record". Since Record is
>> > used
>> > > > more
>> > > > > > > widely, I think we should use Record instead of Message going
>> > > > forward.
>> > > > > > >
>> > > > > > > I agree that data is not used anyway and I prefer to change
>> it to
>> > > > > record,
>> > > > > > > e.g. purgeRecordBefore(). Does anyone have comment on this?
>> > > > > > >
>> > > > > > >
>> > > > > > > 3. PurgeRecordRequest vs. PurgeRequest
>> > > > > > >
>> > > > > > > As you said, PurgeRequest is consistent with FetchRequest and
>> > > > > > > ProduceRequest and it makes sense if we reserve the word
>> > > > > > > "Purge" for dealing with records/messages. I am not aware of
>> > > anything
>> > > > > > other
>> > > > > > > than "record/message" that we may want to purge in the future.
>> > Even
>> > > > if
>> > > > > > > there is, I am not sure this would be an issue. For example,
>> we
>> > can
>> > > > > just
>> > > > > > > create PurgeXXXRequest similar to DeleteTopicsRequest. If we
>> name
>> > > the
>> > > > > new
>> > > > > > > request ad PurgeRecordsRequest, it will be different from
>> > > > FetchRequest
>> > > > > > and
>> > > > > > > ProduceRequest which is probably more confusing to user. Thus
>> I
>> > > > prefer
>> > > > > to
>> > > > > > > keep the request name as PurgeRequest.
>> > > > > > >
>> > > > > > >
>> > > > > > > 4. Change method signature to encapsulate the parameters and
>> > result
>> > > > as
>> > > > > > does
>> > > > > > > in KIP-117.
>> > > > > > >
>> > > > > > > I don't think we should do it in KIP-107. First, KIP-117 is
>> still
>> > > > under
>> > > > > > > discussion while KIP-107 has been reviewed for a few rounds
>> and
>> > is
>> > > > > almost
>> > > > > > > ready for commit. Changing the API at this moment will require
>> > more
>> > > > > > > discussion and delay progress. We should try to avoid that.
>> > > Second, I
>> > > > > > think
>> > > > > > > it is OK for KIP-107 to have different API from KIP-117. The
>> > later
>> > > > KIP
>> > > > > is
>> > > > > > > free to do what it wants and the earlier KIP should not
>> depend on
>> > > the
>> > > > > > later
>> > > > > > > KIP. User will need to change API anyway when they switch from
>> > > Scala
>> > > > > > > AdminClient to Java AdminClient.
>> > > > > > >
>> > > > > > > Dong
>> > > > > > >
>> > > > > > >
>> > > > > > > On Fri, Mar 3, 2017 at 6:34 AM, Ismael Juma <
>> ism...@juma.me.uk>
>> > > > wrote:
>> > > > > > >
>> > > > > > > > First of all, sorry to arrive late on this.
>> > > > > > > >
>> > > > > > > > Jun, do you have a reference that states that "purge" means
>> to
>> > > > > remove a
>> > > > > > > > portion? If I do "define: purge" on Google, one of the
>> > > definitions
>> > > > is
>> > > > > > > > "physically remove (something) completely."
>> > > > > > > >
>> > > > > > > > In the PR, I was asking about the reasoning more than
>> > suggesting
>> > > a
>> > > > > > > change.
>> > > > > > > > But let me clarify my thoughts. There are 2 separate things
>> to
>> > > > think
>> > > > > > > about:
>> > > > > > > >
>> > > > > > > > 1. The protocol change.
>> > > > > > > >
>> > > > > > > > It's currently called Purge with no mention of what it's
>> > purging.
>> > > > > This
>> > > > > > is
>> > > > > > > > consistent with Fetch and Produce and it makes sense if we
>> > > reserve
>> > > > > the
>> > > > > > > word
>> > > > > > > > "Purge" for dealing with records/messages. Having said
>> that, I
>> > > > don't
>> > > > > > > think
>> > > > > > > > this is particularly intuitive for people who are not
>> familiar
>> > > with
>> > > > > > Kafka
>> > > > > > > > and its history. The number of APIs in the protocol keeps
>> > growing
>> > > > and
>> > > > > > it
>> > > > > > > > would be better to be explicit about what is being
>> > > purged/deleted,
>> > > > in
>> > > > > > my
>> > > > > > > > opinion. If we are explicit, then we need to decide what to
>> > call
>> > > > it,
>> > > > > > > since
>> > > > > > > > there is no precedent. A few options: PurgeRecords,
>> > > PurgeMessages,
>> > > > > > > > PurgeData, DeleteRecords, DeleteMessages, DeleteData (I
>> > > personally
>> > > > > > don't
>> > > > > > > > like the Data suffix as it's not used anywhere else).
>> > > > > > > >
>> > > > > > > > 2. The AdminClient change.
>> > > > > > > >
>> > > > > > > > Regarding the name of the method, I'd prefer to avoid the
>> > `Data`
>> > > > > suffix
>> > > > > > > > because I don't think we use that anywhere else (please
>> correct
>> > > me
>> > > > if
>> > > > > > I'm
>> > > > > > > > wrong). In the Producer, we have `send(ProduceRecord)` and
>> in
>> > the
>> > > > > > > consumer
>> > > > > > > > we have `ConsumerRecords poll(...)`. So maybe, the suffix
>> > should
>> > > be
>> > > > > > > > `Records`? Like in the protocol, we still need to decide if
>> we
>> > > want
>> > > > > to
>> > > > > > > use
>> > > > > > > > `purge` or `delete`. We seem to use `delete` for all the
>> other
>> > > > > methods
>> > > > > > in
>> > > > > > > > the AdminClient, so unless we have a reason to use a
>> different
>> > > > name,
>> > > > > it
>> > > > > > > > seems like we should be consistent.
>> > > > > > > >
>> > > > > > > > The proposed method signature is `Future<Map<TopicPartition,
>> > > > > > > > PurgeDataResult>> purgeDataBefore(Map<TopicPartition, Long>
>> > > > > > > > offsetForPartition)`. In the AdminClient KIP (KIP-117), we
>> are
>> > > > using
>> > > > > > > > classes to encapsulate the parameters and result. We should
>> > > > probably
>> > > > > do
>> > > > > > > the
>> > > > > > > > same in this KIP for consistency. Once we do that, we should
>> > also
>> > > > > > > consider
>> > > > > > > > if `Before` should be in the method name or should be in the
>> > > > > parameter
>> > > > > > > > class. Just an example to describe what I mean, one could
>> say
>> > > > > > > > `deleteRecords(DeleteRecordsParams.before(
>> > offsetsForPartition)`.
>> > > > > That
>> > > > > > > way,
>> > > > > > > > we could provide a different way of deleting by simply
>> updating
>> > > the
>> > > > > > > > parameters class.
>> > > > > > > >
>> > > > > > > > Some food for thought. :)
>> > > > > > > >
>> > > > > > > > Ismael
>> > > > > > > >
>> > > > > > > >
>> > > > > > > >
>> > > > > > > > On Thu, Mar 2, 2017 at 5:46 PM, Dong Lin <
>> lindon...@gmail.com>
>> > > > > wrote:
>> > > > > > > >
>> > > > > > > > > Hey Jun,
>> > > > > > > > >
>> > > > > > > > > Thanks for this information. I am not aware of this
>> > difference
>> > > > > > between
>> > > > > > > > the
>> > > > > > > > > purge and delete. Given this difference, I will prefer to
>> the
>> > > > > > existing
>> > > > > > > > name
>> > > > > > > > > of the purge.
>> > > > > > > > >
>> > > > > > > > > Ismael, please let me if you are strong about using
>> delete.
>> > > > > > > > >
>> > > > > > > > > Thanks,
>> > > > > > > > > Dong
>> > > > > > > > >
>> > > > > > > > >
>> > > > > > > > > On Thu, Mar 2, 2017 at 9:40 AM, Jun Rao <j...@confluent.io
>> >
>> > > > wrote:
>> > > > > > > > >
>> > > > > > > > > > Hi, Dong,
>> > > > > > > > > >
>> > > > > > > > > > It seems that delete means removing everything while
>> purge
>> > > > means
>> > > > > > > > > removing a
>> > > > > > > > > > portion. So, it seems that it's better to be able to
>> > > > distinguish
>> > > > > > the
>> > > > > > > > two?
>> > > > > > > > > >
>> > > > > > > > > > Thanks,
>> > > > > > > > > >
>> > > > > > > > > > Jun
>> > > > > > > > > >
>> > > > > > > > > > On Wed, Mar 1, 2017 at 1:57 PM, Dong Lin <
>> > > lindon...@gmail.com>
>> > > > > > > wrote:
>> > > > > > > > > >
>> > > > > > > > > > > Hi all,
>> > > > > > > > > > >
>> > > > > > > > > > > I have updated the KIP to include a script that allows
>> > user
>> > > > to
>> > > > > > > purge
>> > > > > > > > > data
>> > > > > > > > > > > by providing a map from partition to offset. I think
>> this
>> > > > > script
>> > > > > > > may
>> > > > > > > > be
>> > > > > > > > > > > convenience and useful, e.g., if user simply wants to
>> > purge
>> > > > all
>> > > > > > > data
>> > > > > > > > of
>> > > > > > > > > > > given partitions from command line. I am wondering if
>> > > anyone
>> > > > > > object
>> > > > > > > > > this
>> > > > > > > > > > > script or has suggestions on the interface.
>> > > > > > > > > > >
>> > > > > > > > > > > Besides, Ismael commented in the pull request that it
>> may
>> > > be
>> > > > > > better
>> > > > > > > > to
>> > > > > > > > > > > rename PurgeDataBefore() to DeleteDataBefore() and
>> rename
>> > > > > > > > PurgeRequest
>> > > > > > > > > to
>> > > > > > > > > > > DeleteRequest. I think it may be a good idea because
>> > > > > > > kafka-topics.sh
>> > > > > > > > > > > already use "delete" as an option. Personally I don't
>> > have
>> > > > > strong
>> > > > > > > > > > > preference between "purge" and "delete". I am
>> wondering
>> > if
>> > > > > anyone
>> > > > > > > > > object
>> > > > > > > > > > to
>> > > > > > > > > > > this change.
>> > > > > > > > > > >
>> > > > > > > > > > > Thanks,
>> > > > > > > > > > > Dong
>> > > > > > > > > > >
>> > > > > > > > > > >
>> > > > > > > > > > >
>> > > > > > > > > > > On Wed, Mar 1, 2017 at 9:46 AM, Dong Lin <
>> > > > lindon...@gmail.com>
>> > > > > > > > wrote:
>> > > > > > > > > > >
>> > > > > > > > > > > > Hi Ismael,
>> > > > > > > > > > > >
>> > > > > > > > > > > > I actually mean log_start_offset. I realized that it
>> > is a
>> > > > > > better
>> > > > > > > > name
>> > > > > > > > > > > > after I start implementation because
>> "logStartOffset"
>> > is
>> > > > > > already
>> > > > > > > > used
>> > > > > > > > > > in
>> > > > > > > > > > > > Log.scala and LogCleanerManager.scala. So I changed
>> it
>> > > from
>> > > > > > > > > > > > log_begin_offset to log_start_offset in the patch.
>> But
>> > I
>> > > > > forgot
>> > > > > > > to
>> > > > > > > > > > update
>> > > > > > > > > > > > the KIP and specify it in the mailing thread.
>> > > > > > > > > > > >
>> > > > > > > > > > > > Thanks for catching this. Let me update the KIP to
>> > > reflect
>> > > > > this
>> > > > > > > > > change.
>> > > > > > > > > > > >
>> > > > > > > > > > > > Dong
>> > > > > > > > > > > >
>> > > > > > > > > > > >
>> > > > > > > > > > > > On Wed, Mar 1, 2017 at 6:15 AM, Ismael Juma <
>> > > > > ism...@juma.me.uk
>> > > > > > >
>> > > > > > > > > wrote:
>> > > > > > > > > > > >
>> > > > > > > > > > > >> Hi Dong,
>> > > > > > > > > > > >>
>> > > > > > > > > > > >> When you say "logStartOffset", do you mean
>> > > > "log_begin_offset
>> > > > > > "?
>> > > > > > > I
>> > > > > > > > > > could
>> > > > > > > > > > > >> only find the latter in the KIP. If so, would
>> > > > > log_start_offset
>> > > > > > > be
>> > > > > > > > a
>> > > > > > > > > > > better
>> > > > > > > > > > > >> name?
>> > > > > > > > > > > >>
>> > > > > > > > > > > >> Ismael
>> > > > > > > > > > > >>
>> > > > > > > > > > > >> On Tue, Feb 28, 2017 at 4:26 AM, Dong Lin <
>> > > > > > lindon...@gmail.com>
>> > > > > > > > > > wrote:
>> > > > > > > > > > > >>
>> > > > > > > > > > > >> > Hi Jun and everyone,
>> > > > > > > > > > > >> >
>> > > > > > > > > > > >> > I would like to change the KIP in the following
>> way.
>> > > > > > > Currently,
>> > > > > > > > if
>> > > > > > > > > > any
>> > > > > > > > > > > >> > replica if offline, the purge result for a
>> partition
>> > > > will
>> > > > > > > > > > > >> > be NotEnoughReplicasException and its
>> low_watermark
>> > > will
>> > > > > be
>> > > > > > 0.
>> > > > > > > > The
>> > > > > > > > > > > >> > motivation for this approach is that we want to
>> > > > guarantee
>> > > > > > that
>> > > > > > > > the
>> > > > > > > > > > > data
>> > > > > > > > > > > >> > before purgedOffset has been deleted on all
>> replicas
>> > > of
>> > > > > this
>> > > > > > > > > > partition
>> > > > > > > > > > > >> if
>> > > > > > > > > > > >> > purge result indicates success.
>> > > > > > > > > > > >> >
>> > > > > > > > > > > >> > But this approach seems too conservative. It
>> should
>> > be
>> > > > > > > > sufficient
>> > > > > > > > > in
>> > > > > > > > > > > >> most
>> > > > > > > > > > > >> > cases to just tell user success and set
>> > low_watermark
>> > > to
>> > > > > > > minimum
>> > > > > > > > > > > >> > logStartOffset of all live replicas in the
>> > > PurgeResponse
>> > > > > if
>> > > > > > > > > > > >> logStartOffset
>> > > > > > > > > > > >> > of all live replicas have reached purgedOffset.
>> This
>> > > is
>> > > > > > > because
>> > > > > > > > > for
>> > > > > > > > > > an
>> > > > > > > > > > > >> > offline replicas to become online and be elected
>> > > leader,
>> > > > > it
>> > > > > > > > should
>> > > > > > > > > > > have
>> > > > > > > > > > > >> > received one FetchReponse from the current leader
>> > > which
>> > > > > > should
>> > > > > > > > > tell
>> > > > > > > > > > it
>> > > > > > > > > > > >> to
>> > > > > > > > > > > >> > purge beyond purgedOffset. The benefit of doing
>> this
>> > > > > change
>> > > > > > is
>> > > > > > > > > that
>> > > > > > > > > > we
>> > > > > > > > > > > >> can
>> > > > > > > > > > > >> > allow purge operation to succeed when some
>> replica
>> > is
>> > > > > > offline.
>> > > > > > > > > > > >> >
>> > > > > > > > > > > >> > Are you OK with this change? If so, I will go
>> ahead
>> > to
>> > > > > > update
>> > > > > > > > the
>> > > > > > > > > > KIP
>> > > > > > > > > > > >> and
>> > > > > > > > > > > >> > implement this behavior.
>> > > > > > > > > > > >> >
>> > > > > > > > > > > >> > Thanks,
>> > > > > > > > > > > >> > Dong
>> > > > > > > > > > > >> >
>> > > > > > > > > > > >> >
>> > > > > > > > > > > >> >
>> > > > > > > > > > > >> > On Tue, Jan 17, 2017 at 10:18 AM, Dong Lin <
>> > > > > > > lindon...@gmail.com
>> > > > > > > > >
>> > > > > > > > > > > wrote:
>> > > > > > > > > > > >> >
>> > > > > > > > > > > >> > > Hey Jun,
>> > > > > > > > > > > >> > >
>> > > > > > > > > > > >> > > Do you have time to review the KIP again or
>> vote
>> > for
>> > > > it?
>> > > > > > > > > > > >> > >
>> > > > > > > > > > > >> > > Hey Ewen,
>> > > > > > > > > > > >> > >
>> > > > > > > > > > > >> > > Can you also review the KIP again or vote for
>> it?
>> > I
>> > > > have
>> > > > > > > > > discussed
>> > > > > > > > > > > >> with
>> > > > > > > > > > > >> > > Radai and Becket regarding your concern. We
>> still
>> > > > think
>> > > > > > > > putting
>> > > > > > > > > it
>> > > > > > > > > > > in
>> > > > > > > > > > > >> > Admin
>> > > > > > > > > > > >> > > Client seems more intuitive because there is
>> > > use-case
>> > > > > > where
>> > > > > > > > > > > >> application
>> > > > > > > > > > > >> > > which manages topic or produces data may also
>> want
>> > > to
>> > > > > > purge
>> > > > > > > > > data.
>> > > > > > > > > > It
>> > > > > > > > > > > >> > seems
>> > > > > > > > > > > >> > > weird if they need to create a consumer to do
>> > this.
>> > > > > > > > > > > >> > >
>> > > > > > > > > > > >> > > Thanks,
>> > > > > > > > > > > >> > > Dong
>> > > > > > > > > > > >> > >
>> > > > > > > > > > > >> > > On Thu, Jan 12, 2017 at 9:34 AM, Mayuresh
>> Gharat <
>> > > > > > > > > > > >> > > gharatmayures...@gmail.com> wrote:
>> > > > > > > > > > > >> > >
>> > > > > > > > > > > >> > >> +1 (non-binding)
>> > > > > > > > > > > >> > >>
>> > > > > > > > > > > >> > >> Thanks,
>> > > > > > > > > > > >> > >>
>> > > > > > > > > > > >> > >> Mayuresh
>> > > > > > > > > > > >> > >>
>> > > > > > > > > > > >> > >> On Wed, Jan 11, 2017 at 1:03 PM, Dong Lin <
>> > > > > > > > lindon...@gmail.com
>> > > > > > > > > >
>> > > > > > > > > > > >> wrote:
>> > > > > > > > > > > >> > >>
>> > > > > > > > > > > >> > >> > Sorry for the duplicated email. It seems
>> that
>> > > gmail
>> > > > > > will
>> > > > > > > > put
>> > > > > > > > > > the
>> > > > > > > > > > > >> > voting
>> > > > > > > > > > > >> > >> > email in this thread if I simply replace
>> > DISCUSS
>> > > > with
>> > > > > > > VOTE
>> > > > > > > > in
>> > > > > > > > > > the
>> > > > > > > > > > > >> > >> subject.
>> > > > > > > > > > > >> > >> >
>> > > > > > > > > > > >> > >> > On Wed, Jan 11, 2017 at 12:57 PM, Dong Lin <
>> > > > > > > > > > lindon...@gmail.com>
>> > > > > > > > > > > >> > wrote:
>> > > > > > > > > > > >> > >> >
>> > > > > > > > > > > >> > >> > > Hi all,
>> > > > > > > > > > > >> > >> > >
>> > > > > > > > > > > >> > >> > > It seems that there is no further concern
>> > with
>> > > > the
>> > > > > > > > KIP-107.
>> > > > > > > > > > At
>> > > > > > > > > > > >> this
>> > > > > > > > > > > >> > >> point
>> > > > > > > > > > > >> > >> > > we would like to start the voting process.
>> > The
>> > > > KIP
>> > > > > > can
>> > > > > > > be
>> > > > > > > > > > found
>> > > > > > > > > > > >> at
>> > > > > > > > > > > >> > >> > > https://cwiki.apache.org/confl
>> > > > > > > > uence/display/KAFKA/KIP-107
>> > > > > > > > > > > >> > >> > > %3A+Add+purgeDataBefore%28%29+
>> > > > API+in+AdminClient.
>> > > > > > > > > > > >> > >> > >
>> > > > > > > > > > > >> > >> > > Thanks,
>> > > > > > > > > > > >> > >> > > Dong
>> > > > > > > > > > > >> > >> > >
>> > > > > > > > > > > >> > >> >
>> > > > > > > > > > > >> > >>
>> > > > > > > > > > > >> > >>
>> > > > > > > > > > > >> > >>
>> > > > > > > > > > > >> > >> --
>> > > > > > > > > > > >> > >> -Regards,
>> > > > > > > > > > > >> > >> Mayuresh R. Gharat
>> > > > > > > > > > > >> > >> (862) 250-7125
>> > > > > > > > > > > >> > >>
>> > > > > > > > > > > >> > >
>> > > > > > > > > > > >> > >
>> > > > > > > > > > > >> >
>> > > > > > > > > > > >>
>> > > > > > > > > > > >
>> > > > > > > > > > > >
>> > > > > > > > > > >
>> > > > > > > > > >
>> > > > > > > > >
>> > > > > > > >
>> > > > > > >
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>>
>
>

Reply via email to