Re: Propose including GEODE-7178 in 1.10

2019-09-12 Thread Anthony Baker
My understanding is that this portion of the protocol is determined by 
instanceof checks, not the ordinal version.  The messages from the java client 
went through a different code path than messages from the native client.  So 
java clients using ordinal 45 still work (that’s why our backwards 
compatibility tests don’t fail).

Anthony


> On Sep 12, 2019, at 2:34 PM, Dan Smith  wrote:
> 
> +1 for getting this in 1.10.
> 
> I am curious though - is the native client behaving like an older versions
> of the java client, or is this totally unique behavior for the native
> client? Is there some integration test that we are missing here?
> 
> -Dan
> 
> On Thu, Sep 12, 2019 at 11:52 AM Michael Oleske  wrote:
> 
>> Here is the Pull Request for the cherry pick as requested
>> https://github.com/apache/geode/pull/4049
>> 
>> -michael
>> 
>> On Thu, Sep 12, 2019 at 10:28 AM Dick Cavender 
>> wrote:
>> 
>>> Hi Michael, thank you for bringing your concern and fixing this issue.
>>> 
>>> Geode's release process dictates a time-based schedule <
>>> https://cwiki.apache.org/confluence/display/GEODE/Release+Schedule> to
>> cut
>>> release branches.  The “critical fixes” rule does allow critical fixes to
>>> be brought to the release branch by proposal on the dev list, as you have
>>> done here.
>>> 
>>> If there is consensus from the Geode community that your proposed change
>>> satisfies the “critical fixes” rule, I will be happy to bring it to the
>>> 1.10.0 release branch.
>>> 
>>> Due to the complexity of this change, could please open a PR against
>>> release/1.10.0 containing the exact changes you want to merge?
>>> 
>>> Regards
>>> 
>>> -Dick
>>> 
>>> 
>>> On Thu, Sep 12, 2019 at 10:23 AM Anthony Baker 
>> wrote:
>>> 
 +1 yes please!
 
> On Sep 12, 2019, at 10:11 AM, Michael Oleske 
>>> wrote:
> 
> Hi Geode Devs!
> 
> I'd like to propose including the fix for GEODE-7178.  This resolves
>> an
> issue that Ivan (https://markmail.org/message/dwwac42xmpo4xb2e) ran
 into in
> 1.10 RC1.
> 
> SHA: 91176d61df64bf1390cdba7b1cdc2b40cdfaba3a
> Link to GitHub:
> 
 
>>> 
>> https://github.com/apache/geode/commit/91176d61df64bf1390cdba7b1cdc2b40cdfaba3a
> 
> Thanks!
> -michael
 
 
>>> 
>> 



Re: Propose including GEODE-7178 in 1.10

2019-09-12 Thread Michael Oleske
The native client does behave as an old Java client (ordinal 45).  I have
written a story (https://issues.apache.org/jira/browse/GEODE-7190) to have
Native Client updated.

-michael

On Thu, Sep 12, 2019 at 2:35 PM Dan Smith  wrote:

> +1 for getting this in 1.10.
>
> I am curious though - is the native client behaving like an older versions
> of the java client, or is this totally unique behavior for the native
> client? Is there some integration test that we are missing here?
>
> -Dan
>
> On Thu, Sep 12, 2019 at 11:52 AM Michael Oleske 
> wrote:
>
> > Here is the Pull Request for the cherry pick as requested
> > https://github.com/apache/geode/pull/4049
> >
> > -michael
> >
> > On Thu, Sep 12, 2019 at 10:28 AM Dick Cavender 
> > wrote:
> >
> > > Hi Michael, thank you for bringing your concern and fixing this issue.
> > >
> > > Geode's release process dictates a time-based schedule <
> > > https://cwiki.apache.org/confluence/display/GEODE/Release+Schedule> to
> > cut
> > > release branches.  The “critical fixes” rule does allow critical fixes
> to
> > > be brought to the release branch by proposal on the dev list, as you
> have
> > > done here.
> > >
> > > If there is consensus from the Geode community that your proposed
> change
> > > satisfies the “critical fixes” rule, I will be happy to bring it to the
> > > 1.10.0 release branch.
> > >
> > > Due to the complexity of this change, could please open a PR against
> > > release/1.10.0 containing the exact changes you want to merge?
> > >
> > > Regards
> > >
> > > -Dick
> > >
> > >
> > > On Thu, Sep 12, 2019 at 10:23 AM Anthony Baker 
> > wrote:
> > >
> > > > +1 yes please!
> > > >
> > > > > On Sep 12, 2019, at 10:11 AM, Michael Oleske 
> > > wrote:
> > > > >
> > > > > Hi Geode Devs!
> > > > >
> > > > > I'd like to propose including the fix for GEODE-7178.  This
> resolves
> > an
> > > > > issue that Ivan (https://markmail.org/message/dwwac42xmpo4xb2e)
> ran
> > > > into in
> > > > > 1.10 RC1.
> > > > >
> > > > > SHA: 91176d61df64bf1390cdba7b1cdc2b40cdfaba3a
> > > > > Link to GitHub:
> > > > >
> > > >
> > >
> >
> https://github.com/apache/geode/commit/91176d61df64bf1390cdba7b1cdc2b40cdfaba3a
> > > > >
> > > > > Thanks!
> > > > > -michael
> > > >
> > > >
> > >
> >
>


Re: Propose including GEODE-7178 in 1.10

2019-09-12 Thread Dan Smith
+1 for getting this in 1.10.

I am curious though - is the native client behaving like an older versions
of the java client, or is this totally unique behavior for the native
client? Is there some integration test that we are missing here?

-Dan

On Thu, Sep 12, 2019 at 11:52 AM Michael Oleske  wrote:

> Here is the Pull Request for the cherry pick as requested
> https://github.com/apache/geode/pull/4049
>
> -michael
>
> On Thu, Sep 12, 2019 at 10:28 AM Dick Cavender 
> wrote:
>
> > Hi Michael, thank you for bringing your concern and fixing this issue.
> >
> > Geode's release process dictates a time-based schedule <
> > https://cwiki.apache.org/confluence/display/GEODE/Release+Schedule> to
> cut
> > release branches.  The “critical fixes” rule does allow critical fixes to
> > be brought to the release branch by proposal on the dev list, as you have
> > done here.
> >
> > If there is consensus from the Geode community that your proposed change
> > satisfies the “critical fixes” rule, I will be happy to bring it to the
> > 1.10.0 release branch.
> >
> > Due to the complexity of this change, could please open a PR against
> > release/1.10.0 containing the exact changes you want to merge?
> >
> > Regards
> >
> > -Dick
> >
> >
> > On Thu, Sep 12, 2019 at 10:23 AM Anthony Baker 
> wrote:
> >
> > > +1 yes please!
> > >
> > > > On Sep 12, 2019, at 10:11 AM, Michael Oleske 
> > wrote:
> > > >
> > > > Hi Geode Devs!
> > > >
> > > > I'd like to propose including the fix for GEODE-7178.  This resolves
> an
> > > > issue that Ivan (https://markmail.org/message/dwwac42xmpo4xb2e) ran
> > > into in
> > > > 1.10 RC1.
> > > >
> > > > SHA: 91176d61df64bf1390cdba7b1cdc2b40cdfaba3a
> > > > Link to GitHub:
> > > >
> > >
> >
> https://github.com/apache/geode/commit/91176d61df64bf1390cdba7b1cdc2b40cdfaba3a
> > > >
> > > > Thanks!
> > > > -michael
> > >
> > >
> >
>


Re: Propose including GEODE-7178 in 1.10

2019-09-12 Thread Michael Oleske
Here is the Pull Request for the cherry pick as requested
https://github.com/apache/geode/pull/4049

-michael

On Thu, Sep 12, 2019 at 10:28 AM Dick Cavender  wrote:

> Hi Michael, thank you for bringing your concern and fixing this issue.
>
> Geode's release process dictates a time-based schedule <
> https://cwiki.apache.org/confluence/display/GEODE/Release+Schedule> to cut
> release branches.  The “critical fixes” rule does allow critical fixes to
> be brought to the release branch by proposal on the dev list, as you have
> done here.
>
> If there is consensus from the Geode community that your proposed change
> satisfies the “critical fixes” rule, I will be happy to bring it to the
> 1.10.0 release branch.
>
> Due to the complexity of this change, could please open a PR against
> release/1.10.0 containing the exact changes you want to merge?
>
> Regards
>
> -Dick
>
>
> On Thu, Sep 12, 2019 at 10:23 AM Anthony Baker  wrote:
>
> > +1 yes please!
> >
> > > On Sep 12, 2019, at 10:11 AM, Michael Oleske 
> wrote:
> > >
> > > Hi Geode Devs!
> > >
> > > I'd like to propose including the fix for GEODE-7178.  This resolves an
> > > issue that Ivan (https://markmail.org/message/dwwac42xmpo4xb2e) ran
> > into in
> > > 1.10 RC1.
> > >
> > > SHA: 91176d61df64bf1390cdba7b1cdc2b40cdfaba3a
> > > Link to GitHub:
> > >
> >
> https://github.com/apache/geode/commit/91176d61df64bf1390cdba7b1cdc2b40cdfaba3a
> > >
> > > Thanks!
> > > -michael
> >
> >
>


Re: Propose including GEODE-7178 in 1.10

2019-09-12 Thread Dick Cavender
Hi Michael, thank you for bringing your concern and fixing this issue.

Geode's release process dictates a time-based schedule <
https://cwiki.apache.org/confluence/display/GEODE/Release+Schedule> to cut
release branches.  The “critical fixes” rule does allow critical fixes to
be brought to the release branch by proposal on the dev list, as you have
done here.

If there is consensus from the Geode community that your proposed change
satisfies the “critical fixes” rule, I will be happy to bring it to the
1.10.0 release branch.

Due to the complexity of this change, could please open a PR against
release/1.10.0 containing the exact changes you want to merge?

Regards

-Dick


On Thu, Sep 12, 2019 at 10:23 AM Anthony Baker  wrote:

> +1 yes please!
>
> > On Sep 12, 2019, at 10:11 AM, Michael Oleske  wrote:
> >
> > Hi Geode Devs!
> >
> > I'd like to propose including the fix for GEODE-7178.  This resolves an
> > issue that Ivan (https://markmail.org/message/dwwac42xmpo4xb2e) ran
> into in
> > 1.10 RC1.
> >
> > SHA: 91176d61df64bf1390cdba7b1cdc2b40cdfaba3a
> > Link to GitHub:
> >
> https://github.com/apache/geode/commit/91176d61df64bf1390cdba7b1cdc2b40cdfaba3a
> >
> > Thanks!
> > -michael
>
>


Re: Propose including GEODE-7178 in 1.10

2019-09-12 Thread Anthony Baker
+1 yes please!

> On Sep 12, 2019, at 10:11 AM, Michael Oleske  wrote:
> 
> Hi Geode Devs!
> 
> I'd like to propose including the fix for GEODE-7178.  This resolves an
> issue that Ivan (https://markmail.org/message/dwwac42xmpo4xb2e) ran into in
> 1.10 RC1.
> 
> SHA: 91176d61df64bf1390cdba7b1cdc2b40cdfaba3a
> Link to GitHub:
> https://github.com/apache/geode/commit/91176d61df64bf1390cdba7b1cdc2b40cdfaba3a
> 
> Thanks!
> -michael



Propose including GEODE-7178 in 1.10

2019-09-12 Thread Michael Oleske
Hi Geode Devs!

I'd like to propose including the fix for GEODE-7178.  This resolves an
issue that Ivan (https://markmail.org/message/dwwac42xmpo4xb2e) ran into in
1.10 RC1.

SHA: 91176d61df64bf1390cdba7b1cdc2b40cdfaba3a
Link to GitHub:
https://github.com/apache/geode/commit/91176d61df64bf1390cdba7b1cdc2b40cdfaba3a

Thanks!
-michael


Re: [DISCUSS] Improvements on client function execution API

2019-09-12 Thread Jacob Barrett
+1

I echo Dan’s comments as well. 

Thanks for tackling this.

-jake


> On Sep 11, 2019, at 2:36 PM, Dan Smith  wrote:
> 
> +1 - Ok, I think I've come around to option (a). We can go head and add a
> new execute(timeout, TimeUnit) method to the java API that is blocking. We
> can leave the existing execute() method alone, except for documenting what
> it is doing.
> 
> I would like implement execute(timeout,  TimeUnit) on the server side as
> well. Since this Execution class is shared between both client and server
> APIs, it would be unfortunate to have a method on Execution that simply
> doesn't work on the server side.
> 
> -Dan
> 
> 
>> On Thu, Sep 5, 2019 at 9:25 AM Alberto Gomez  wrote:
>> 
>> Hi all,
>> 
>> First of all, thanks a lot Dan and Jacob for your feedback.
>> 
>> As we are getting close to the deadline I am adding here some conclusions
>> and a refined proposal in order to get some more feedback and if possible
>> some voting on the two alternatives proposed (or any other in between if
>> you feel any of them is lacking something).
>> 
>> I also add some draft code to try to clarify a bit the more complex of the
>> alternatives.
>> 
>> 
>> Proposal summary (needs a decision on which option to implement):
>> 
>> ---
>> 
>> In order to make the API more coherent two alternatives are proposed:
>> 
>> a) Remove the timeout from the ResultCollector::getResult() / document
>> that the timeout has no effect, taking into account that
>> Execution::execute() is always blocking.
>> Additionally we could add the timeout parameter to the
>> Execution::execute() method of the Java API in order to align it with the
>> native client APIs. This timeout would not be the read timeout on the
>> socket but a timeout for the execution of the operation.
>> 
>> b) Change the implementation of the Execution::execute() method without
>> timeout to be non-blocking on both the Java and native APIs. This change
>> has backward compatibility implications, would probably bring some
>> performance decrease and could pose some difficulties in the implementation
>> on the C++ side (in the  handling of timed out operations that hold
>> resources).
>> 
>> 
>> The first option (a) is less risky and does not have impacts regarding
>> backward compatibility and performance.
>> 
>> The second one (b) is the preferred alternative in terms of the expected
>> behavior from the users of the API. This option is more complex to
>> implement and as mentioned above has performance and backward compatibility
>> issues not easy to be solved.
>> 
>> Following is a draft version of the implementation of b) on the Java
>> client:
>> 
>> https://github.com/Nordix/geode/commit/507a795e34c6083c129bda7e976b9223d1a893da
>> 
>> Following is a draft version of the implementation of b) on the C++ native
>> client:
>> 
>> https://github.com/apache/geode-native/commit/a03a56f229bb8d75ee71044cf6196df07f43150d
>> 
>> Note that the above implementation of b) in the C++ client implies that
>> the Execution object returned by the FunctionService cannot be destroyed
>> until the thread executing the function asynchronously has finished. If the
>> function times out, the Execution object must be kept until the thread
>> finishes.
>> 
>> 
>> Other considerations
>> -
>> 
>> * Currently, in the function execution Java client there is not a
>> possibility to set a timeout for the execution of functions. The closest to
>> this is the read timeout that may be set globally for function executions
>> but this is not really a timeout for operations.
>> 
>> * Even if the API for function execution is the same on clients and
>> servers, the implementation is different between them. On the clients, the
>> execute() methods are blocking while on the servers it is non-blocking and
>> the invoker of the function blocks on the getResult() method of the
>> ResultCollector returned by the execute() method.
>> Even if having both blocking and non-blocking implementation of execute()
>> in both clients and servers sounds desirable from the point of view of
>> orthogonality, this  could bring complications in terms of backward
>> compatibility. Besides, a need for a blocking version of function execution
>> has not been found.
>> 
>> -Alberto G.
>> 
>> On 29/8/19 16:48, Alberto Gomez wrote:
>> 
>> Sorry, some corrections on my comments after revisiting the native
>> client code.
>> 
>> When I said that the timeout used in the execution() method (by means of
>> a system property) was to set a read timeout on the socket, I was only
>> talking about the Java client. In the case of the native clients, the
>> timeout set in the execute() method is not translated into a socket
>> timeout but it is the time to wait for the operation to complete, i.e.,
>> to get all the results back.
>> 
>> Things being so, I would change my proposal to:
>> 
>> - Change the