Re: [DISCUSS] KIP-994: Minor Enhancements to ListTransactions and DescribeTransactions APIs

2023-12-26 Thread Raman Verma
I have started a Vote on this KIP

https://lists.apache.org/thread/yknx3bc4mk17bz2cpfr789lh8sx2lc39


Re: [DISCUSS] KIP-994: Minor Enhancements to ListTransactions and DescribeTransactions APIs

2023-12-26 Thread Raman Verma
Thanks Jun, Justine, Jason, Kirk,

I have addressed your comments.


Re: [DISCUSS] KIP-994: Minor Enhancements to ListTransactions and DescribeTransactions APIs

2023-12-01 Thread Jun Rao
Hi, Raman,

Thanks for the KIP. A couple of comments.

10. From the discussion of KIP-951, it seems that our convention is to
always bump up the request version even for just adding tagged fields in
the response.

11. "In case a new AdminClient is sending durationFilter (greater than 0)
to an older broker, ListTransactionsRequest will fail to build at the
client side. This will require some check to be made at
ListTransactionsRequest.Builder.build(short version) method. A new
AdminClient can still generate older version of ListTransactionsRequest
when it sets durationFilter to 0." This seems weird. If a user specifies a
durationFilter but the server doesn't support it, it seems that we should
throw an exception to the user instead of silently changing durationFilter.

Jun

On Wed, Nov 29, 2023 at 5:05 PM Justine Olshan 
wrote:

> Hey Raman,
> Thanks for the KIP! I think this will be super useful.
>
> Given https://issues.apache.org/jira/browse/KAFKA-15546 -- do you think it
> would be useful to specify the duration of the completed transaction rather
> than the time since the start in the describe output?
> We would probably want to specify the transaction is completed as well to
> differentiate from the response that does not have the tagged field. This
> would more clearly resolve the ticket.
> Maybe this was the plan but it wasn't clear from the KIP.
>
> Thanks,
> Justine
>
> On Tue, Nov 28, 2023 at 12:38 PM Jason Gustafson
> 
> wrote:
>
> > Hey Raman,
> >
> > Thanks for the KIP! I think it makes sense. I agree that this becomes
> > especially useful in the context of KIP-939 because transactions can last
> > an indefinite amount of time, but it is useful even today. A large
> cluster
> > may have a very large number of ongoing transactions at any time, so
> > providing a better way to filter by time will make the tools much more
> > efficient for this common use case.
> >
> > I have just a couple small comments.
> >
> > 1. In `ListTransactionsOptions`, we use a long in the setter for the
> > duration filter. Can we use `Duration` instead?
> > 2. I think we need to expose `TransactionLastUpdateTimeMs` on
> > `TransactionDescription` as well, right?
> >
> > Thanks,
> > Jason
> >
> > On Tue, Nov 28, 2023 at 8:34 AM Kirk True  wrote:
> >
> > > Hi Raman,
> > >
> > > Thanks for the KIP!
> > >
> > > Questions/comments:
> > >
> > >  1. Is there a Jira created for this? The Jira link still points to
> > > KAFKA-1.
> > >  2. There's a minor typo in the ListTransactionsRequest documentation
> for
> > > the DurationFilter: trsanactions.
> > >  3. Is the TransactionStartTimeMs return value in the
> > > DescribeTransactionsResponse nullable?
> > >  4. The API uses the general terminology of a "duration filter" but the
> > > CLI uses the specific phrase "running longer than ms." These are both
> > > referring to the same value, right? Can the naming of these two be more
> > > consistent?
> > >  5. What happens when a user runs the updated kafka-transactions.sh
> > script
> > > (using the new argument) against an older broker that doesn't support
> the
> > > new filter? Does the user get an error, a warning, or a silent ignoring
> > of
> > > the filter?
> > >
> > > Thanks,
> > > Kirk
> > >
> > > On Wed, Nov 15, 2023, at 3:03 PM, Raman Verma wrote:
> > > > Thanks Artem,
> > > >
> > > > I have made changes to the `Public Interfaces` and `Compatibility...`
> > > > sections to incorporate your comment.
> > > >
> > > > On Mon, Nov 6, 2023 at 3:44 PM Raman Verma 
> > > wrote:
> > > >
> > > > > I would like to start a discussion on KIP-994
> > > > >
> > > > >
> > > > >
> > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-994%3A+Minor+Enhancements+to+ListTransactions+and+DescribeTransactions+APIs
> > > > >
> > > > >
> > > >
> > >
> >
>


Re: [DISCUSS] KIP-994: Minor Enhancements to ListTransactions and DescribeTransactions APIs

2023-12-01 Thread Raman Verma
Thanks Kirk,
I have made the changes you mentioned.

Regarding these questions
3. Is the TransactionStartTimeMs return value in the
DescribeTransactionsResponse nullable?
Broker can send a value less than zero but not null.

5. What happens when a user runs the updated kafka-transactions.sh script
(using the new argument) against an older broker that doesn't support the
new filter? Does the user get an error, a warning, or a silent ignoring of
the filter?
Given we are bumping the API version for ListTransactionsRequest, in this
case the client will first try to build an API with an older version
supported by the broker. We will throw an error at the client side when
building an older version API with durationFilter. If the user does not
specify durationFilter, AdminClient will be able to build the older version
request that does not need durationFilter.


Re: [DISCUSS] KIP-994: Minor Enhancements to ListTransactions and DescribeTransactions APIs

2023-12-01 Thread Raman Verma
Thanks Artem,

I have made the changes to the KIP as specified.
I think I will start a Vote on the KIP tomorrow.


Re: [DISCUSS] KIP-994: Minor Enhancements to ListTransactions and DescribeTransactions APIs

2023-11-29 Thread Justine Olshan
Hey Raman,
Thanks for the KIP! I think this will be super useful.

Given https://issues.apache.org/jira/browse/KAFKA-15546 -- do you think it
would be useful to specify the duration of the completed transaction rather
than the time since the start in the describe output?
We would probably want to specify the transaction is completed as well to
differentiate from the response that does not have the tagged field. This
would more clearly resolve the ticket.
Maybe this was the plan but it wasn't clear from the KIP.

Thanks,
Justine

On Tue, Nov 28, 2023 at 12:38 PM Jason Gustafson 
wrote:

> Hey Raman,
>
> Thanks for the KIP! I think it makes sense. I agree that this becomes
> especially useful in the context of KIP-939 because transactions can last
> an indefinite amount of time, but it is useful even today. A large cluster
> may have a very large number of ongoing transactions at any time, so
> providing a better way to filter by time will make the tools much more
> efficient for this common use case.
>
> I have just a couple small comments.
>
> 1. In `ListTransactionsOptions`, we use a long in the setter for the
> duration filter. Can we use `Duration` instead?
> 2. I think we need to expose `TransactionLastUpdateTimeMs` on
> `TransactionDescription` as well, right?
>
> Thanks,
> Jason
>
> On Tue, Nov 28, 2023 at 8:34 AM Kirk True  wrote:
>
> > Hi Raman,
> >
> > Thanks for the KIP!
> >
> > Questions/comments:
> >
> >  1. Is there a Jira created for this? The Jira link still points to
> > KAFKA-1.
> >  2. There's a minor typo in the ListTransactionsRequest documentation for
> > the DurationFilter: trsanactions.
> >  3. Is the TransactionStartTimeMs return value in the
> > DescribeTransactionsResponse nullable?
> >  4. The API uses the general terminology of a "duration filter" but the
> > CLI uses the specific phrase "running longer than ms." These are both
> > referring to the same value, right? Can the naming of these two be more
> > consistent?
> >  5. What happens when a user runs the updated kafka-transactions.sh
> script
> > (using the new argument) against an older broker that doesn't support the
> > new filter? Does the user get an error, a warning, or a silent ignoring
> of
> > the filter?
> >
> > Thanks,
> > Kirk
> >
> > On Wed, Nov 15, 2023, at 3:03 PM, Raman Verma wrote:
> > > Thanks Artem,
> > >
> > > I have made changes to the `Public Interfaces` and `Compatibility...`
> > > sections to incorporate your comment.
> > >
> > > On Mon, Nov 6, 2023 at 3:44 PM Raman Verma 
> > wrote:
> > >
> > > > I would like to start a discussion on KIP-994
> > > >
> > > >
> > > >
> >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-994%3A+Minor+Enhancements+to+ListTransactions+and+DescribeTransactions+APIs
> > > >
> > > >
> > >
> >
>


Re: [DISCUSS] KIP-994: Minor Enhancements to ListTransactions and DescribeTransactions APIs

2023-11-28 Thread Jason Gustafson
Hey Raman,

Thanks for the KIP! I think it makes sense. I agree that this becomes
especially useful in the context of KIP-939 because transactions can last
an indefinite amount of time, but it is useful even today. A large cluster
may have a very large number of ongoing transactions at any time, so
providing a better way to filter by time will make the tools much more
efficient for this common use case.

I have just a couple small comments.

1. In `ListTransactionsOptions`, we use a long in the setter for the
duration filter. Can we use `Duration` instead?
2. I think we need to expose `TransactionLastUpdateTimeMs` on
`TransactionDescription` as well, right?

Thanks,
Jason

On Tue, Nov 28, 2023 at 8:34 AM Kirk True  wrote:

> Hi Raman,
>
> Thanks for the KIP!
>
> Questions/comments:
>
>  1. Is there a Jira created for this? The Jira link still points to
> KAFKA-1.
>  2. There's a minor typo in the ListTransactionsRequest documentation for
> the DurationFilter: trsanactions.
>  3. Is the TransactionStartTimeMs return value in the
> DescribeTransactionsResponse nullable?
>  4. The API uses the general terminology of a "duration filter" but the
> CLI uses the specific phrase "running longer than ms." These are both
> referring to the same value, right? Can the naming of these two be more
> consistent?
>  5. What happens when a user runs the updated kafka-transactions.sh script
> (using the new argument) against an older broker that doesn't support the
> new filter? Does the user get an error, a warning, or a silent ignoring of
> the filter?
>
> Thanks,
> Kirk
>
> On Wed, Nov 15, 2023, at 3:03 PM, Raman Verma wrote:
> > Thanks Artem,
> >
> > I have made changes to the `Public Interfaces` and `Compatibility...`
> > sections to incorporate your comment.
> >
> > On Mon, Nov 6, 2023 at 3:44 PM Raman Verma 
> wrote:
> >
> > > I would like to start a discussion on KIP-994
> > >
> > >
> > >
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-994%3A+Minor+Enhancements+to+ListTransactions+and+DescribeTransactions+APIs
> > >
> > >
> >
>


Re: [DISCUSS] KIP-994: Minor Enhancements to ListTransactions and DescribeTransactions APIs

2023-11-28 Thread Kirk True
Hi Raman,

Thanks for the KIP!

Questions/comments:

 1. Is there a Jira created for this? The Jira link still points to KAFKA-1.
 2. There's a minor typo in the ListTransactionsRequest documentation for the 
DurationFilter: trsanactions.
 3. Is the TransactionStartTimeMs return value in the 
DescribeTransactionsResponse nullable?
 4. The API uses the general terminology of a "duration filter" but the CLI 
uses the specific phrase "running longer than ms." These are both referring to 
the same value, right? Can the naming of these two be more consistent?
 5. What happens when a user runs the updated kafka-transactions.sh script 
(using the new argument) against an older broker that doesn't support the new 
filter? Does the user get an error, a warning, or a silent ignoring of the 
filter?

Thanks,
Kirk

On Wed, Nov 15, 2023, at 3:03 PM, Raman Verma wrote:
> Thanks Artem,
> 
> I have made changes to the `Public Interfaces` and `Compatibility...`
> sections to incorporate your comment.
> 
> On Mon, Nov 6, 2023 at 3:44 PM Raman Verma  wrote:
> 
> > I would like to start a discussion on KIP-994
> >
> >
> > https://cwiki.apache.org/confluence/display/KAFKA/KIP-994%3A+Minor+Enhancements+to+ListTransactions+and+DescribeTransactions+APIs
> >
> >
> 


Re: [DISCUSS] KIP-994: Minor Enhancements to ListTransactions and DescribeTransactions APIs

2023-11-20 Thread Raman Verma
Thanks Artem,

I have made changes to the `Public Interfaces` and `Compatibility...`
sections to incorporate your comment.

On Mon, Nov 6, 2023 at 3:44 PM Raman Verma  wrote:

> I would like to start a discussion on KIP-994
>
>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-994%3A+Minor+Enhancements+to+ListTransactions+and+DescribeTransactions+APIs
>
>


Re: [DISCUSS] KIP-994: Minor Enhancements to ListTransactions and DescribeTransactions APIs

2023-11-16 Thread Artem Livshits
Hi Raman,

I see that you've updated the KIP.  The content looks good to me.

A couple nits on the format:
- can you highlight which fields are new in the message?
- can you add your original proposal of using a tagged field in
ListTransactionsRequest to the list of rejected alternatives?

-Artem

On Tue, Nov 7, 2023 at 11:04 PM Andrew Schofield <
andrew_schofield_j...@outlook.com> wrote:

> Hi Artem,
> I think you make a very good point. This also looks to me like it deserves
> a version bump for the request.
>
> Andrew
>
> > On 8 Nov 2023, at 04:12, Artem Livshits 
> wrote:
> >
> > Hi Raman,
> >
> > Thank you for the KIP.  I think using the tagged field
> > in DescribeTransactionsResponse should be good -- if either the client or
> > the server don't support it, it's not printed, which is reasonable
> behavior.
> >
> > For the ListTransactionsRequest, though, I think using the tagged field
> > could lead to a subtle compatibility issue if a new client is used with
> old
> > server: the client could specify the DurationFilter, but the old server
> > would ignore it and list all transactions instead, which could be
> > misleading or potentially even dangerous if the results are used in a
> > script for some automation.  I think a more desirable behavior would be
> to
> > fail if the server doesn't support the new filter, which we should be
> able
> > to achieve if we bump version of the ListTransactionsRequest and add
> > DurationFilter as a regular field.
> >
> > -Artem
> >
> > On Tue, Nov 7, 2023 at 2:20 AM Raman Verma 
> wrote:
> >
> >> I would like to start a discussion on KIP-994
> >>
> >>
> >>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-994%3A+Minor+Enhancements+to+ListTransactions+and+DescribeTransactions+APIs
> >>
>
>


Re: [DISCUSS] KIP-994: Minor Enhancements to ListTransactions and DescribeTransactions APIs

2023-11-07 Thread Andrew Schofield
Hi Artem,
I think you make a very good point. This also looks to me like it deserves a 
version bump for the request.

Andrew

> On 8 Nov 2023, at 04:12, Artem Livshits  
> wrote:
>
> Hi Raman,
>
> Thank you for the KIP.  I think using the tagged field
> in DescribeTransactionsResponse should be good -- if either the client or
> the server don't support it, it's not printed, which is reasonable behavior.
>
> For the ListTransactionsRequest, though, I think using the tagged field
> could lead to a subtle compatibility issue if a new client is used with old
> server: the client could specify the DurationFilter, but the old server
> would ignore it and list all transactions instead, which could be
> misleading or potentially even dangerous if the results are used in a
> script for some automation.  I think a more desirable behavior would be to
> fail if the server doesn't support the new filter, which we should be able
> to achieve if we bump version of the ListTransactionsRequest and add
> DurationFilter as a regular field.
>
> -Artem
>
> On Tue, Nov 7, 2023 at 2:20 AM Raman Verma  wrote:
>
>> I would like to start a discussion on KIP-994
>>
>>
>> https://cwiki.apache.org/confluence/display/KAFKA/KIP-994%3A+Minor+Enhancements+to+ListTransactions+and+DescribeTransactions+APIs
>>



Re: [DISCUSS] KIP-994: Minor Enhancements to ListTransactions and DescribeTransactions APIs

2023-11-07 Thread Artem Livshits
Hi Raman,

Thank you for the KIP.  I think using the tagged field
in DescribeTransactionsResponse should be good -- if either the client or
the server don't support it, it's not printed, which is reasonable behavior.

For the ListTransactionsRequest, though, I think using the tagged field
could lead to a subtle compatibility issue if a new client is used with old
server: the client could specify the DurationFilter, but the old server
would ignore it and list all transactions instead, which could be
misleading or potentially even dangerous if the results are used in a
script for some automation.  I think a more desirable behavior would be to
fail if the server doesn't support the new filter, which we should be able
to achieve if we bump version of the ListTransactionsRequest and add
DurationFilter as a regular field.

-Artem

On Tue, Nov 7, 2023 at 2:20 AM Raman Verma  wrote:

> I would like to start a discussion on KIP-994
>
>
> https://cwiki.apache.org/confluence/display/KAFKA/KIP-994%3A+Minor+Enhancements+to+ListTransactions+and+DescribeTransactions+APIs
>