[MTCGA]: new failures in builds [6083640] needs to be handled

2021-07-12 Thread dpavlov . tasks
Hi Igniters,

 I've detected some new issue on TeamCity to be handled. You are more than 
welcomed to help.

 If your changes can lead to this failure(s): We're grateful that you were a 
volunteer to make the contribution to this project, but things change and you 
may no longer be able to finalize your contribution.
 Could you respond to this email and indicate if you wish to continue and fix 
test failures or step down and some committer may revert you commit. 

 *New Critical Failure in master Thin client: PHP 
https://ci.ignite.apache.org/buildConfiguration/IgniteTests24Java8_ThinClientPhp?branch=%3Cdefault%3E
 Changes may lead to failure were done by 
 - taras ledkov  
https://ci.ignite.apache.org/viewModification.html?modId=930374
 -  ???  
https://ci.ignite.apache.org/viewModification.html?modId=930435

 - Here's a reminder of what contributors were agreed to do 
https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute 
 - Should you have any questions please contact dev@ignite.apache.org 

Best Regards,
Apache Ignite TeamCity Bot 
https://github.com/apache/ignite-teamcity-bot
Notification generated at 04:59:27 13-07-2021 


Re: Ignite 3.0 Ignition API, node startup, and thin client startup

2021-07-12 Thread Valentin Kulichenko
Pavel,

If Ignition is the single entry point, it needs to have access to the
server node instance, so it needs to depend on ignite-runner. Therefore,
including Ignition in ignite-client means that ignite-client depends on
ignite-runner, which we cannot have.

-Val

On Sat, Jul 10, 2021 at 4:17 AM Pavel Tupitsyn  wrote:

> Val,
>
> My suggestion is to have Ignition class in ignite-client module.
>
> On Fri, Jul 9, 2021 at 11:01 PM Valentin Kulichenko <
> valentin.kuliche...@gmail.com> wrote:
>
> > Pavel,
> >
> > Ivan actually brings a good point. While the client is in a separate
> > module, Ignition (if we make it static) will have to depend on both
> > ignite-client and ignite-runner, and we will have to ship it along with
> the
> > client. This indeed creates an uber-jar, so we can't really have a single
> > entry point, unfortunately.
> >
> > I'm not sure what is the best way to proceed here. Let's think it over
> and
> > see if there are any suggestions.
> >
> > -Val
> >
> > On Fri, Jul 9, 2021 at 6:31 AM Pavel Tupitsyn 
> > wrote:
> >
> > > > why thin client should be in core module
> > >
> > > It will be in a separate module (ignite-client).
> > > I was talking about "core library" as a primary set of modules that we
> > > ship.
> > > Integrations with 3rd party libraries and frameworks can be shipped as
> > > extensions.
> > >
> > > Anyway, let's postpone the discussion of Rx and Kotlin.
> > > The main goal right now is to implement the most basic Java thin
> client.
> > > CompletableFuture is the primary way to deliver async APIs in Ignite
> 3.0,
> > > other things can be added later.
> > >
> > > On Fri, Jul 9, 2021 at 3:37 PM Ivan Daschinsky 
> > > wrote:
> > >
> > > > > I don't think we need an explicit reactive API in the core library.
> > > >
> > > > Have you ever thought about why thin client should be in core module?
> > Why
> > > > we do the same thing as we did in ignite 2.x? In the days of cloud
> > native
> > > > we still think about large uber-jar with everything?
> > > >
> > > > > Same story with Kotlin, it works with CompletableFuture.
> > > > Users don't want to code by theyselves, they want to use ready and
> > > complete
> > > > clients. Please, don't underestimate kotlin, kotlin coroutines and
> > > reactive
> > > > streams. They are all the first class citizens in spring 5 for 3
> years
> > > >
> > > > пт, 9 июл. 2021 г., 14:43 Pavel Tupitsyn :
> > > >
> > > > > > You forget about reactive api
> > > > >
> > > > > I don't think we need an explicit reactive API in the core library.
> > > > > Observable.fromFuture bridges async to Rx easily:
> > > > >
> > > > > Observable.fromFuture(client.putAsync(k, v)).flatMap(...)
> > > > >
> > > > > Same story with Kotlin, it works with CompletableFuture.
> > > > >
> > > > > On Fri, Jul 9, 2021 at 1:31 PM Ivan Daschinsky <
> ivanda...@gmail.com>
> > > > > wrote:
> > > > >
> > > > > > You forget about reactive api :)
> > > > > >
> > > > > > And whats a problem with discocerability?
> > > > > >
> > > > > > var syncApi = client.sync();
> > > > > > syncApi.put(k, v);
> > > > > >
> > > > > > var rxApi = client.reactive();
> > > > > > rxApi.put(k,v).flatMap(res -> );
> > > > > >
> > > > > > And sync, async and reactive is not enough, it is good idea to
> > > support
> > > > > > kotlin coroutines also :)
> > > > > >
> > > > > > пт, 9 июл. 2021 г., 13:26 Pavel Tupitsyn :
> > > > > >
> > > > > > > Ivan D.,
> > > > > > >
> > > > > > > > container of properties
> > > > > > >
> > > > > > > What is a container of properties?
> > > > > > > As a user, I want a simple way to start a client and perform
> > > > > operations.
> > > > > > >
> > > > > > > I don't want anything confusing and complicated like Netty
> > > Bootstrap.
> > > > > > There
> > > > > > > might be a reason for Netty to be this way - it is a low-level
> > > > library.
> > > > > > But
> > > > > > > Ignite is not.
> > > > > > >
> > > > > > >
> > > > > > > > separate facades for sync, async
> > > > > > >
> > > > > > > Strongly disagree with this idea. It hurts API discoverability.
> > > > > > > As a user, in my IDE I type "igniteTable.get" and see a list of
> > > > > > suggestions
> > > > > > > like get, getAsync, getAndPut, getAndPutAsync.
> > > > > > > I don't want to have a separate interface and a separate
> variable
> > > to
> > > > > deal
> > > > > > > with sync and async methods.
> > > > > > >
> > > > > > > Not sure what's the problem with documentation - can you
> > elaborate
> > > > > > please?
> > > > > > >
> > > > > > > On Fri, Jul 9, 2021 at 12:51 PM Ivan Daschinsky <
> > > ivanda...@gmail.com
> > > > >
> > > > > > > wrote:
> > > > > > >
> > > > > > > > Pavel, actually I suggests to separate container of
> > > > properties(client
> > > > > > in
> > > > > > > > lettuce) and actual connection or connections (stateful
> > > connection
> > > > in
> > > > > > > > lettuce). Actual connection initialization could be sync or
> > > async,
> > > > it
> > > > > > > > doesn't matter. It can 

Re: TC bot problems

2021-07-12 Thread Dmitry Pavlov
That's really strange thing. I can't see anything at TC bot code that migth 
stop from loading history of runs. But locally I see the same picture.

Folks, who could have an access to TC bot config. Could you please double check 
what is set in the branches.json? If we set up baseBranchForTc as ignite 2.10 
we can avoid usage of PR page and we can use tracked branch page for 
comparison. 

{
  "id": "ignite-2.11",
  "chains": [
{
  "serverId": "apache",
  "suiteId": "IgniteTests24Java8_RunAllNightly",
  "branchForRest": "ignite-2.11",
  "baseBranchForTc": "ignite-2.10", // <-- HERE --
  "triggerBuild": true,
  "triggerBuildQuietPeriod": 30 
}
  ] 
}

On 2021/07/12 09:39:38, Alexey Gidaspov  wrote: 
> Hi, Dmitriy!
> 
> Ok, I got it. But drop down list is only one part of the problem. Another 
> part - absence of data relating to 2.10 release.
> 
> On 2021/07/12 09:37:03, Dmitry Pavlov  wrote: 
> > Hi Alexey,
> > 
> > Base branches dropdown menu is being built using pre-configured list of 
> > branches.
> > 
> > So it works as expected.
> > 
> > Sincerely,
> > Dmitriy Pavlov
> > 
> > On 2021/07/09 14:16:27, Alexey Gidaspov  wrote: 
> > > Hi, all!
> > > 
> > > I'm trying to compare release 2.11 against 2.10. I'm using [1] and I 
> > > can't see any data related to the  release of 2.10. And when I'm trying 
> > > to specify base branch  using dropdown menu, I can't select ignite-2.10 
> > > branch. What am I doing wrong?
> > > 
> > > [1] 
> > > https://mtcga.gridgain.com/pr.html?serverId=apache=IgniteTests24Java8_RunAllNightly=ignite-2.11=Latest=ignite-2.10
> > > 
> > 
> 


Re: Ignite 3.0 Tuple API: how to check if value is null?

2021-07-12 Thread Alexei Scherbakov
tuple.isNull(colName) to test for emptiness also seems useful.

пн, 12 июл. 2021 г. в 18:20, Alexei Scherbakov :

> +1 to make some improvements here.
>
> Using Optional doesn't make sense to me because it always involves boxing
> (and we already have tuple.value(colName)).
>
> I suggest to add methods similar to:
>
> tuple.doubleValue("field", double dfltValue)
>
> which returns default value if the field is null.
>
>
> ср, 7 июл. 2021 г. в 08:34, Ivan Daschinsky :
>
>> Function basically returns two values. if value is null, it returns smth
>> like false, NaN, otherwise ,smth like true, 4.5. Syntax is a bit weird as
>> for me, but it is better than nothing.
>>
>>
>> In golang it looks like this:
>>
>> if isValid, val:= getVal; isValid {
>> 
>> }
>>
>>
>>
>> ср, 7 июл. 2021 г., 00:28 Valentin Kulichenko <
>> valentin.kuliche...@gmail.com
>> >:
>>
>> > So what happens if the value is NULL? Exception?
>> >
>> > -Val
>> >
>> > On Tue, Jul 6, 2021 at 1:52 PM Ivan Daschinsky 
>> > wrote:
>> >
>> > > > Out of curiosity, what would this code do if the value is NULL?
>> What is
>> > > the
>> > > type of the 'weight' variable?
>> > >
>> > > float of course.
>> > > https://www.c-sharpcorner.com/article/out-parameter-in-c-sharp-7/
>> > >
>> > >
>> > > вт, 6 июл. 2021 г., 22:30 Valentin Kulichenko <
>> > > valentin.kuliche...@gmail.com
>> > > >:
>> > >
>> > > > Pavel,
>> > > >
>> > > > Optionals are available in Java and we can use them. This is still
>> > boxing
>> > > > though, and I don't know what the performance impact would be. In
>> > > addition,
>> > > > optional API is redundant for non-nullable fields. Perhaps, we can
>> > > provide
>> > > > both options (e.g. having intValue() and intValueOptional()
>> methods).
>> > > >
>> > > > Out of curiosity, what would this code do if the value is NULL?
>> What is
>> > > the
>> > > > type of the 'weight' variable?
>> > > >
>> > > > if (tuple.TryGetFloatValue("weight", out var weight))
>> > > > doSomething(weight)
>> > > >
>> > > > -Val
>> > > >
>> > > > On Tue, Jul 6, 2021 at 2:13 AM Ivan Daschinsky > >
>> > > > wrote:
>> > > >
>> > > > > Ah, I see, you meant Optionals family. Yep, it is worth to think
>> > about.
>> > > > >
>> > > > > вт, 6 июл. 2021 г., 10:06 Pavel Tupitsyn :
>> > > > >
>> > > > > > Ivan,
>> > > > > >
>> > > > > > Nothing wrong except for performance concerns.
>> > > > > > The following code looks up the column by name twice:
>> > > > > >
>> > > > > > if (!tuple.isNull("weight"))
>> > > > > >doSomething(tuple.floatValue("weight"))
>> > > > > >
>> > > > > > Whereas in other languages you could do it in one shot:
>> > > > > >
>> > > > > > if (tuple.TryGetFloatValue("weight", out var weight))
>> > > > > > doSomething(weight)
>> > > > > >
>> > > > > > or Option weight = tuple.floatValue("weight") and so on.
>> > > > > >
>> > > > > > On Tue, Jul 6, 2021 at 9:58 AM Ivan Daschinsky <
>> > ivanda...@gmail.com>
>> > > > > > wrote:
>> > > > > >
>> > > > > > > Sorry, but what is wrong with simple method isNull()
>> > > > > > >
>> > > > > > > вт, 6 июл. 2021 г., 09:55 Pavel Tupitsyn <
>> ptupit...@apache.org>:
>> > > > > > >
>> > > > > > > > Val,
>> > > > > > > >
>> > > > > > > > > I don't think there is a significantly better way
>> > > > > > > > > of doing this in Java.
>> > > > > > > >
>> > > > > > > > Yep looks like there is no way to return two values without
>> > > boxing.
>> > > > > > > > No ref, no out, no value types.
>> > > > > > > >
>> > > > > > > > > Schema already provides this information, doesn't it?
>> > > > > > > >
>> > > > > > > > It does, though we don't have an agreement on how to expose
>> > this
>> > > on
>> > > > > > > public
>> > > > > > > > API yet,
>> > > > > > > > or do we?
>> > > > > > > >
>> > > > > > > > On Tue, Jul 6, 2021 at 12:44 AM Valentin Kulichenko <
>> > > > > > > > valentin.kuliche...@gmail.com> wrote:
>> > > > > > > >
>> > > > > > > > > Pavel,
>> > > > > > > > >
>> > > > > > > > > That's a good point, but I don't think there is a
>> > significantly
>> > > > > > better
>> > > > > > > > way
>> > > > > > > > > of doing this in Java.
>> > > > > > > > >
>> > > > > > > > > There should be a way to check if a field is nullable or
>> not
>> > > > > though.
>> > > > > > > > Schema
>> > > > > > > > > already provides this information, doesn't it?
>> > > > > > > > >
>> > > > > > > > > -Val
>> > > > > > > > >
>> > > > > > > > > On Mon, Jul 5, 2021 at 11:03 AM Pavel Tupitsyn <
>> > > > > ptupit...@apache.org
>> > > > > > >
>> > > > > > > > > wrote:
>> > > > > > > > >
>> > > > > > > > > > Igniters,
>> > > > > > > > > >
>> > > > > > > > > > Looks like Tuple API has no efficient way to tell if a
>> > value
>> > > > for
>> > > > > a
>> > > > > > > > > nullable
>> > > > > > > > > > column of primitive type is null.
>> > > > > > > > > >
>> > > > > > > > > > - Tuple#intValue() will return 0 when the actual value
>> is
>> > > null
>> > > > =>
>> > > > > > not
>> > > > > > > > > clear
>> > > > > > > > > > if 0 is 0 or 

Re: Ignite 3.0 Tuple API: how to check if value is null?

2021-07-12 Thread Alexei Scherbakov
+1 to make some improvements here.

Using Optional doesn't make sense to me because it always involves boxing
(and we already have tuple.value(colName)).

I suggest to add methods similar to:

tuple.doubleValue("field", double dfltValue)

which returns default value if the field is null.


ср, 7 июл. 2021 г. в 08:34, Ivan Daschinsky :

> Function basically returns two values. if value is null, it returns smth
> like false, NaN, otherwise ,smth like true, 4.5. Syntax is a bit weird as
> for me, but it is better than nothing.
>
>
> In golang it looks like this:
>
> if isValid, val:= getVal; isValid {
> 
> }
>
>
>
> ср, 7 июл. 2021 г., 00:28 Valentin Kulichenko <
> valentin.kuliche...@gmail.com
> >:
>
> > So what happens if the value is NULL? Exception?
> >
> > -Val
> >
> > On Tue, Jul 6, 2021 at 1:52 PM Ivan Daschinsky 
> > wrote:
> >
> > > > Out of curiosity, what would this code do if the value is NULL? What
> is
> > > the
> > > type of the 'weight' variable?
> > >
> > > float of course.
> > > https://www.c-sharpcorner.com/article/out-parameter-in-c-sharp-7/
> > >
> > >
> > > вт, 6 июл. 2021 г., 22:30 Valentin Kulichenko <
> > > valentin.kuliche...@gmail.com
> > > >:
> > >
> > > > Pavel,
> > > >
> > > > Optionals are available in Java and we can use them. This is still
> > boxing
> > > > though, and I don't know what the performance impact would be. In
> > > addition,
> > > > optional API is redundant for non-nullable fields. Perhaps, we can
> > > provide
> > > > both options (e.g. having intValue() and intValueOptional() methods).
> > > >
> > > > Out of curiosity, what would this code do if the value is NULL? What
> is
> > > the
> > > > type of the 'weight' variable?
> > > >
> > > > if (tuple.TryGetFloatValue("weight", out var weight))
> > > > doSomething(weight)
> > > >
> > > > -Val
> > > >
> > > > On Tue, Jul 6, 2021 at 2:13 AM Ivan Daschinsky 
> > > > wrote:
> > > >
> > > > > Ah, I see, you meant Optionals family. Yep, it is worth to think
> > about.
> > > > >
> > > > > вт, 6 июл. 2021 г., 10:06 Pavel Tupitsyn :
> > > > >
> > > > > > Ivan,
> > > > > >
> > > > > > Nothing wrong except for performance concerns.
> > > > > > The following code looks up the column by name twice:
> > > > > >
> > > > > > if (!tuple.isNull("weight"))
> > > > > >doSomething(tuple.floatValue("weight"))
> > > > > >
> > > > > > Whereas in other languages you could do it in one shot:
> > > > > >
> > > > > > if (tuple.TryGetFloatValue("weight", out var weight))
> > > > > > doSomething(weight)
> > > > > >
> > > > > > or Option weight = tuple.floatValue("weight") and so on.
> > > > > >
> > > > > > On Tue, Jul 6, 2021 at 9:58 AM Ivan Daschinsky <
> > ivanda...@gmail.com>
> > > > > > wrote:
> > > > > >
> > > > > > > Sorry, but what is wrong with simple method isNull()
> > > > > > >
> > > > > > > вт, 6 июл. 2021 г., 09:55 Pavel Tupitsyn  >:
> > > > > > >
> > > > > > > > Val,
> > > > > > > >
> > > > > > > > > I don't think there is a significantly better way
> > > > > > > > > of doing this in Java.
> > > > > > > >
> > > > > > > > Yep looks like there is no way to return two values without
> > > boxing.
> > > > > > > > No ref, no out, no value types.
> > > > > > > >
> > > > > > > > > Schema already provides this information, doesn't it?
> > > > > > > >
> > > > > > > > It does, though we don't have an agreement on how to expose
> > this
> > > on
> > > > > > > public
> > > > > > > > API yet,
> > > > > > > > or do we?
> > > > > > > >
> > > > > > > > On Tue, Jul 6, 2021 at 12:44 AM Valentin Kulichenko <
> > > > > > > > valentin.kuliche...@gmail.com> wrote:
> > > > > > > >
> > > > > > > > > Pavel,
> > > > > > > > >
> > > > > > > > > That's a good point, but I don't think there is a
> > significantly
> > > > > > better
> > > > > > > > way
> > > > > > > > > of doing this in Java.
> > > > > > > > >
> > > > > > > > > There should be a way to check if a field is nullable or
> not
> > > > > though.
> > > > > > > > Schema
> > > > > > > > > already provides this information, doesn't it?
> > > > > > > > >
> > > > > > > > > -Val
> > > > > > > > >
> > > > > > > > > On Mon, Jul 5, 2021 at 11:03 AM Pavel Tupitsyn <
> > > > > ptupit...@apache.org
> > > > > > >
> > > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > > Igniters,
> > > > > > > > > >
> > > > > > > > > > Looks like Tuple API has no efficient way to tell if a
> > value
> > > > for
> > > > > a
> > > > > > > > > nullable
> > > > > > > > > > column of primitive type is null.
> > > > > > > > > >
> > > > > > > > > > - Tuple#intValue() will return 0 when the actual value is
> > > null
> > > > =>
> > > > > > not
> > > > > > > > > clear
> > > > > > > > > > if 0 is 0 or null.
> > > > > > > > > > - Tuple#value() works, but is more expensive due to
> boxing
> > > and
> > > > > type
> > > > > > > > > lookup.
> > > > > > > > > >
> > > > > > > > > > Any ideas on how to improve this?
> > > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >

Review IGNITE-12749

2021-07-12 Thread Yaroslav Molochkov
Hi!

Can someone please review my PR in IGNITE-12749
 ticket?


Re: [ANNOUNCE] Apache Ignite 3.0.0-alpha2 is released!

2021-07-12 Thread Kseniya Romanova
Hi Igniters! Please join the community gathering on July 20 to learn more
about  Alpha 2 and share your experience with it:
https://www.meetup.com/Apache-Ignite-Virtual-Meetup/events/279417063/

ср, 30 июн. 2021 г. в 22:42, Valentin Kulichenko <
valentin.kuliche...@gmail.com>:

> Igniters,
>
> I'm happy to announce that Ignite 3 project reached a significant
> milestone, as we release the 2nd alpha version of the product.
>
> On top of the functionality that was previously released, Alpha 2 adds
> the following major features:
> - Replication infrastructure based on Raft.
> - New in-memory atomic storage with the basic insert-read functionality.
> - New schema management engine and API.
>
> There is an ability to create a cluster, and use the new Table to API to
> write and read the data. Basic code examples are available here:
> https://github.com/apache/ignite-3/tree/3.0.0-alpha2/examples
>
> The best way to try the release out is to go through the Getting Started
> Guide: https://ignite.apache.org/docs/3.0.0-alpha
>
> If there are any questions, issues, or thoughts, please do not hesitate to
> reply to this email. Ignite Community is welcoming any feedback and will
> consider it in future development.
>
> -Val
>


Re: TC bot problems

2021-07-12 Thread Alexey Gidaspov
Hi, Dmitriy!

Ok, I got it. But drop down list is only one part of the problem. Another part 
- absence of data relating to 2.10 release.

On 2021/07/12 09:37:03, Dmitry Pavlov  wrote: 
> Hi Alexey,
> 
> Base branches dropdown menu is being built using pre-configured list of 
> branches.
> 
> So it works as expected.
> 
> Sincerely,
> Dmitriy Pavlov
> 
> On 2021/07/09 14:16:27, Alexey Gidaspov  wrote: 
> > Hi, all!
> > 
> > I'm trying to compare release 2.11 against 2.10. I'm using [1] and I can't 
> > see any data related to the  release of 2.10. And when I'm trying to 
> > specify base branch  using dropdown menu, I can't select ignite-2.10 
> > branch. What am I doing wrong?
> > 
> > [1] 
> > https://mtcga.gridgain.com/pr.html?serverId=apache=IgniteTests24Java8_RunAllNightly=ignite-2.11=Latest=ignite-2.10
> > 
> 


Re: TC bot problems

2021-07-12 Thread Dmitry Pavlov
Hi Alexey,

Base branches dropdown menu is being built using pre-configured list of 
branches.

So it works as expected.

Sincerely,
Dmitriy Pavlov

On 2021/07/09 14:16:27, Alexey Gidaspov  wrote: 
> Hi, all!
> 
> I'm trying to compare release 2.11 against 2.10. I'm using [1] and I can't 
> see any data related to the  release of 2.10. And when I'm trying to specify 
> base branch  using dropdown menu, I can't select ignite-2.10 branch. What am 
> I doing wrong?
> 
> [1] 
> https://mtcga.gridgain.com/pr.html?serverId=apache=IgniteTests24Java8_RunAllNightly=ignite-2.11=Latest=ignite-2.10
>