Re: Apache Ignite 2.7. Last Mile

2018-11-23 Thread Nikolay Izhikov
Hello, Igniters.

Changes regarding to GridToStringBuilder reverted in ignite-2.7 branch:

* IGNITE-8493
* IGNITE-9209
* IGNITE-602

We have 1 ticket for 2.7:

IGNITE-10393: DataStreamer failed with NPE for MVCC caches

which is unassigned.

Who can fix it?

В Вт, 20/11/2018 в 12:38 +0300, Dmitrii Ryabov пишет:
> Yes, revert both.
> 
> вт, 20 нояб. 2018 г., 11:52 Vladimir Ozerov voze...@gridgain.com:
> 
> > +1 for reverting both.
> > 
> > On Tue, Nov 20, 2018 at 9:43 AM Nikolay Izhikov 
> > wrote:
> > 
> > > Hello, Dmitrii.
> > > 
> > > I see 2 tickets for this improvement:
> > > 
> > > IGNITE-602 - [Test] GridToStringBuilder is vulnerable for
> > > StackOverflowError caused by infinite recursion [1]
> > > IGNITE-9209 - GridDistributedTxMapping.toString() returns broken string
> > 
> > [2]
> > > 
> > > Should we revert both commits?
> > > 
> > > [1] https://github.com/apache/ignite/commit/d67c5bf
> > > [2] https://github.com/apache/ignite/commit/9bb9c04
> > > 
> > > 
> > > В Пн, 19/11/2018 в 13:36 +0300, Dmitrii Ryabov пишет:
> > > > I agree to revert and make fix for 2.8. So, we will have more time to
> > > 
> > > test
> > > > it.
> > > > 
> > > > пн, 19 нояб. 2018 г., 10:53 Vladimir Ozerov voze...@gridgain.com:
> > > > 
> > > > > +1 for revert.
> > > > > 
> > > > > On Sun, Nov 18, 2018 at 11:31 PM Dmitriy Pavlov 
> > > > > wrote:
> > > > > 
> > > > > > I personally don't mind.
> > > > > > 
> > > > > > But I would like Dmitry Ryabov and Alexey Goncharuck share their
> > > > > 
> > > > > opinions.
> > > > > > 
> > > > > > вс, 18 нояб. 2018 г., 20:43 Nikolay Izhikov :
> > > > > > 
> > > > > > > Yes, I think so.
> > > > > > > 
> > > > > > > вс, 18 нояб. 2018 г., 20:34 Denis Magda dma...@apache.org:
> > > > > > > 
> > > > > > > > Sounds good to me. Are we starting the vote then?
> > > > > > > > 
> > > > > > > > Denis
> > > > > > > > 
> > > > > > > > 
> > > > > > > > 
> > > > > > > > On Sun, Nov 18, 2018 at 8:25 AM Nikolay Izhikov <
> > > 
> > > nizhi...@apache.org
> > > > > > > > wrote:
> > > > > > > > 
> > > > > > > > > Hello, Igniters.
> > > > > > > > > 
> > > > > > > > > This issue is the only ticket that blocks 2.7 release.
> > > > > > > > > 
> > > > > > > > > I looked at IGNITE-602 PR and GridToStringBuilder.
> > > > > > > > > The code looks complicated for me.
> > > > > > > > > And it's not obvious for me how to fix this issue in a short
> > > 
> > > period
> > > > > > 
> > > > > > of
> > > > > > > > > time.
> > > > > > > > > Especially, code deals with recursion and other things that
> > 
> > can
> > > > > 
> > > > > lead
> > > > > > to
> > > > > > > > > very dangerous errors.
> > > > > > > > > 
> > > > > > > > > Let's revert this patch and fix it in calmly.
> > > > > > > > > Also, we need additional tests for it.
> > > > > > > > > 
> > > > > > > > > В Пт, 16/11/2018 в 17:57 +0300, Dmitrii Ryabov пишет:
> > > > > > > > > > Ok, I'll check the issue.
> > > > > > > > > > пт, 16 нояб. 2018 г. в 17:52, Alexey Goncharuk <
> > > > > > > > > 
> > > > > > > > > alexey.goncha...@gmail.com>:
> > > > > > > > > > > 
> > > > > > > > > > > Igniters,
> > > > > > > > > > > 
> > > > > > > > > > > I've just found that S.toString() implementation is
> > 
> > broken
> > > in
> > > > > > > > > 
> > > > > > > > > ignite-2.7 and master [1]. It leads to a message
> > > > > > > > > > > Wrapper [p=Parent [a=0]Child [b=0, super=]]
> > > > > > > > > > > being formed instead of
> > > > > > > > > > > Wrapper [p=Child [b=0, super=Parent [a=0]]]
> > > > > > > > > > > for classes with inheritance that use
> > > > > 
> > > > > S.toString(SomeClass.class,
> > > > > > > > > this, super.toString()) embedded to some other object.
> > > > > > > > > > > 
> > > > > > > > > > > Dmitrii Ryabov, I've reverted two commits related to
> > > 
> > > IGNITE-602
> > > > > > 
> > > > > > and
> > > > > > > > > IGNITE-9209 tickets locally and it fixes the issue. Can you
> > > 
> > > take a
> > > > > > 
> > > > > > look
> > > > > > > > at
> > > > > > > > > the issue?
> > > > > > > > > > > 
> > > > > > > > > > > I think this regression essentially makes our logs
> > > 
> > > unreadable
> > > > > 
> > > > > in
> > > > > > > some
> > > > > > > > > cases and I would like to get it fixed in ignite-2.7 or
> > 
> > revert
> > > both
> > > > > > > > 
> > > > > > > > commits
> > > > > > > > > from the release.
> > > > > > > > > > > 
> > > > > > > > > > > [1] https://issues.apache.org/jira/browse/IGNITE-10301
> > > > > > > > > > > 
> > > > > > > > > > > пт, 9 нояб. 2018 г. в 09:22, Nikolay Izhikov <
> > > > > > 
> > > > > > nizhi...@apache.org
> > > > > > > > :
> > > > > > > > > > > > 
> > > > > > > > > > > > Hello, Igniters.
> > > > > > > > > > > > 
> > > > > > > > > > > > We still have 5 tickets for 2.7:
> > > > > > > > > > > > 
> > > > > > > > > > > > IGNITE-10052Andrew Mashenkov Restart node during TX
> > > > > 
> > > > > causes
> > > > > > > > > vacuum error.
> > > > > > > > > > > > IGNITE-10170Unassigned   .NET:
> > > > > > 
> > > > > > 

[GitHub] ignite pull request #5492: ignite-2.7 revert GridToStringBuilder changes

2018-11-23 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/ignite/pull/5492


---


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

2018-11-23 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 test failure in master 
CacheContinuousQueryAsyncFailoverMvccTxSelfTest.testFailoverStartStopBackup 
https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=318679578210209893=%3Cdefault%3E=testDetails
 Changes may lead to failure were done by 
 - alexey.goncharuk 
https://ci.ignite.apache.org/viewModification.html?modId=840333
 - gvvinblade 
https://ci.ignite.apache.org/viewModification.html?modId=840312
 - oignatenko 
https://ci.ignite.apache.org/viewModification.html?modId=840298
 - vpyatkov 
https://ci.ignite.apache.org/viewModification.html?modId=840250
 - ivandasch 
https://ci.ignite.apache.org/viewModification.html?modId=840342
 - alexey.goncharuk 
https://ci.ignite.apache.org/viewModification.html?modId=840227

 - 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 07:38:22 24-11-2018 


[jira] [Created] (IGNITE-10398) CacheMetrics always return 0 for local cache

2018-11-23 Thread Evgenii Zhuravlev (JIRA)
Evgenii Zhuravlev created IGNITE-10398:
--

 Summary: CacheMetrics always return 0 for local cache
 Key: IGNITE-10398
 URL: https://issues.apache.org/jira/browse/IGNITE-10398
 Project: Ignite
  Issue Type: Bug
Reporter: Evgenii Zhuravlev


However, it shows the right offHeapEntriesCnt.
Short code snippet:

{code:java}

IgniteConfiguration igniteConfig = new IgniteConfiguration();
CacheConfiguration cacheConfig = new CacheConfiguration("testCache");
cacheConfig.setStatisticsEnabled(true);
igniteConfig.setCacheConfiguration(cacheConfig);
cacheConfig.setCacheMode(CacheMode.LOCAL);

try (Ignite ignite = Ignition.start(igniteConfig)) {
IgniteCache cache = ignite.getOrCreateCache(cacheConfig.getName());
cache.put("key", "val");
cache.put("key2", "val2");
cache.remove("key2");

System.out.println(cache.localMetrics());
}
{code}




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[GitHub] dspavlov opened a new pull request #82: Ignite 9542 remove unused code

2018-11-23 Thread GitBox
dspavlov opened a new pull request #82: Ignite 9542 remove unused code
URL: https://github.com/apache/ignite-teamcity-bot/pull/82
 
 
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


Re: Thin clients all in one

2018-11-23 Thread Dmitry Melnichuk

Stepan,

Sorry, I forgot to update from upstream prior to start working on this 
issue, and thus brought a regression. My bad. Just merged with the 
latest master. Please, check it out again.


Dmitry

On 11/24/18 1:37 AM, Stepan Pilschikov wrote:

Dmitry,

Iv checked and its actually work
But a specially in this branch i found another bug
Please look at my last comment:
https://issues.apache.org/jira/browse/IGNITE-10358?focusedCommentId=16697285=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16697285

пт, 23 нояб. 2018 г. в 01:21, Dmitry Melnichuk <
dmitry.melnic...@nobitlost.com>:


Stepan,

Thank you for your great job in evaluating Python thin client, as well
as other thin clients.

There was indeed a bug in Python client regarding the handling of type
hints in Collection type. I created a fix and did a PR under
IGNITE-10358 task, but the same PR is also fixes the problem in
IGNITE-10230 task.

As of handling the type mapping in gists you provided, I left comments
on both tasks.

Dmitry

On 11/21/18 6:37 PM, Stepan Pilschikov wrote:

Dmitry, Alexey

Thank you for help, this answers help me a lot with understanding how
clients are work

Not so long time ago i met problem which is have expected behavior, but

its

may broke some workflows in future for some users

Its all about not specified data types in collections and map's
All description and examples in
https://issues.apache.org/jira/browse/IGNITE-10358

Dmitry, can you have a quick look at it and maybe in future somehow fix

it?


пт, 26 окт. 2018 г. в 19:05, Dmitry Melnichuk <
dmitry.melnic...@nobitlost.com>:


Stepan!

TL/DR: what you got with Python client in your gist is an intended
behavior.

Explanation: As per docs, Object array contains of type ID (which is
defaults to -1) and an array of objects.




https://apacheignite.readme.io/docs/binary-client-protocol-data-format#section-object-array


Your gist might be fixed accordingly:

```
from pyignite import Client
from pyignite.datatypes import *

OBJECT_ARRAY_TYPE_ID = -1
OBJECT_ARRAY_CONTENTS = [1, 2]

client = Client()
client.connect('127.0.0.1', 10800)
cache = client.get_or_create_cache("PY_OBJECT_ARRAY")
cache.put(
   1,
   (OBJECT_ARRAY_TYPE_ID, OBJECT_ARRAY_CONTENTS),
   key_hint=IntObject,
   value_hint=ObjectArrayObject,
)

# Python  output: print(cache.get(1))
# (-1, [1, 2])
```

The situation is similar with Map and Collection, they have types. Types
and type IDs are mostly useless in Python, but I left them for
interoperability reasons. If you think I should kick them out, just let
me know.

The usage of these 3 data types is documented and tested. You can refer
to the table in “Data types” section:




https://apache-ignite-binary-protocol-client.readthedocs.io/en/latest/datatypes/parsers.html


The tests are here:




https://github.com/apache/ignite/blob/master/modules/platforms/python/tests/test_datatypes.py#L116-L124


On 10/26/18 11:57 PM, Stepan Pilschikov wrote:

Hi, everyone

Create new thread to centralize cross compatibility and others common
problems between thin clients

Tying to use Object array to exchange different data between JS, PHP

and

Python thin clients

JS and PHP simply can't put any type of arrays
Python can put data, but if you take it, data would be completely
different, maybe during this put process data is changed

Code and output:
PHP -

https://gist.github.com/pilshchikov/e887d31d4f2f36923470fead14c7801a

JS -

https://gist.github.com/pilshchikov/ba49067fd8924ebdf4414ec63838b86d

Python -
https://gist.github.com/pilshchikov/f4bbf76e31547e2dca7d4cc5d55bd24f

I'm tried different data types (string, double, float, complex objects,
just random objects, char, byte, Date), still

How, from my perspective, it should works:
put array of any type and then get this array.
Example: put [1,2,3] -> get [1,2,3] or put [new Date(), new Date()] ->
get [[Date object], [Date object]] (like in java thin client)

Looks like bug in all clients, what you think?

I wanted to try Collections, but i think this type have same problem













[GitHub] ignite pull request #5471: IGNITE-10216: disable sort annotations in inspect...

2018-11-23 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/ignite/pull/5471


---


[GitHub] ignite pull request #5492: ignite-2.7 revert GridToStringBuilder changes

2018-11-23 Thread nizhikov
GitHub user nizhikov opened a pull request:

https://github.com/apache/ignite/pull/5492

ignite-2.7 revert GridToStringBuilder changes

Revert of 
- IGNITE-8493
- IGNITE-9209
- IGNITE-602

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/nizhikov/ignite ignite-2.7-revert-toString

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/5492.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #5492


commit e6b42abb81c22bd119a9233023be6be66b2aad09
Author: Nikolay Izhikov 
Date:   2018-11-23T19:51:08Z

Revert "IGNITE-8493 GridToStringBuilder arrayToString refactoring. - Fixes 
#4501."

This reverts commit dd8c933fd44e4ad9b315daccce8e2327606867b0.

commit 5f968d2413c0c914da0ebcb5c051023429b3e518
Author: Nikolay Izhikov 
Date:   2018-11-23T19:51:45Z

Revert "IGNITE-9209 fix for GridDistributedTxMapping.toString() returns 
broken string. - Fixes #4519."

This reverts commit 9bb9c043513c3cc6c6b70c6c3395e5bb76fad75e.

commit 307ac58d1aa1f0145c16affe6de96314b1c8ecef
Author: Nikolay Izhikov 
Date:   2018-11-23T19:52:12Z

Revert "IGNITE-602 Fixed possible StackOverflowError in GridToStringBuilder 
when circular references are present - Fixes #1558."

This reverts commit d67c5bf4c22338695a116e0fbf0a58a4d581af5d.




---


[GitHub] ignite pull request #5455: Ignite 2.7 with tde fixes

2018-11-23 Thread nizhikov
Github user nizhikov closed the pull request at:

https://github.com/apache/ignite/pull/5455


---


[GitHub] ignite pull request #5488: IGNITE-10392 : Use lastAffChangedTopVer if DiscoC...

2018-11-23 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/ignite/pull/5488


---


[GitHub] ignite pull request #5426: IGNITE-9996: Final fix

2018-11-23 Thread nizhikov
Github user nizhikov closed the pull request at:

https://github.com/apache/ignite/pull/5426


---


[GitHub] ignite pull request #5491: IGNITE-10397 Fix for 2.5

2018-11-23 Thread Jokser
GitHub user Jokser opened a pull request:

https://github.com/apache/ignite/pull/5491

IGNITE-10397 Fix for 2.5



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gridgain/apache-ignite ignite-10397-2.5

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/5491.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #5491


commit 702c31859251738b187e8db2a8155264f39b8b52
Author: Ivan Daschinskiy 
Date:   2018-07-23T12:29:08Z

IGNITE-8820 Fix rollback logic when tx is initiated from client. - Fixes 
#4399.

Signed-off-by: Alexey Goncharuk 

(cherry picked from commit 5794eb0)

commit 32777e77797f4cf3260d42d4ca408336247d4e55
Author: Dmitriy Govorukhin 
Date:   2018-07-23T15:01:37Z

IGNITE-9049 Fixed write of SWITCH_SEGMENT_RECORD at the end of a segment 
file - Fixes #4401.

Signed-off-by: Alexey Goncharuk 

(cherry picked from commit 713a428)

commit bbf8f83afe3b07e807912d9bab78873edf698d4d
Author: Andrey V. Mashenkov 
Date:   2018-07-24T14:38:34Z

IGNITE-8892 Fixed CacheQueryFuture usage in DataStructures processor - 
Fixes #4415.

Signed-off-by: Alexey Goncharuk 

(cherry picked from commit 281a400)

commit e0404913088b5cd97cd79de1b62e6aaa4c00b5d2
Author: Andrey V. Mashenkov 
Date:   2018-07-24T15:24:57Z

Merge remote-tracking branch 'origin/ignite-2.5.1-master' into 
ignite-2.5.1-master

commit 86c52700a007368a351ac3595a8e38bb02923080
Author: Sergey Chugunov 
Date:   2018-07-25T13:26:12Z

IGNITE-9040 StopNodeFailureHandler is not able to stop node correctly on 
node segmentation

Signed-off-by: Andrey Gura 

(cherry-picked from commit#469aaba59c0539507972f4725642b2f2f81c08a0)

commit e1c3cc9d30baeaff4e653751775ab39a347b753b
Author: Pavel Kovalenko 
Date:   2018-07-24T14:48:57Z

IGNITE-8791 Fixed missed update counter in WAL data record for backup 
transaction - Fixes #4264.

Signed-off-by: Alexey Goncharuk 

(cherry picked from commit 13e2a31)

commit 2ea5b376d895fe41cc882c4383b5d3d2793ba684
Author: devozerov 
Date:   2018-07-31T09:53:51Z

IGNITE-9114: SQL: fail query after some timeout if it cannot be mapped to 
topology. This closes #4453.

commit 5b230b7015148e483136c229c9e6081bb9c68023
Author: Denis Mekhanikov 
Date:   2018-04-20T15:41:06Z

IGNITE-8134 Subscribe to system cache events on nodes outside BLT

Signed-off-by: Andrey Gura 
(cherry picked from commit c82277e)

commit 2528435ec946c479f6bf4eb7eaeabf092a0536a3
Author: devozerov 
Date:   2018-07-31T14:15:49Z

IGNITE-9114: SQL: use query time in retry timeout calculation. This closes 
#4460.

commit 98d0ccc729e647a4ad8876e2d29423904e6fa6ca
Author: devozerov 
Date:   2018-07-31T14:18:49Z

Merge remote-tracking branch 'upstream/ignite-2.5.1-master' into 
ignite-2.5.1-master

commit c78a7f215699f65983edfcc0c9014d9e3108f381
Author: Anton Kalashnikov 
Date:   2018-08-01T09:23:03Z

IGNITE-8757 idle_verify utility doesn't show both update counter and hash 
conflicts

(cherry picked from commit 9131e4d)

commit 66369583096b04d71c3f82e1ebfd1922ae6b0b6a
Author: Anton Kalashnikov 
Date:   2018-07-31T13:13:27Z

IGNITE-8973 Calculate partition hash and print into standard output

Signed-off-by: Andrey Gura 

(cherry picked from commit 8309cef)

commit e92788d392d4c60f76c4fd0f38c52669f4e3e772
Author: Evgeny Stanilovskiy 
Date:   2018-08-01T11:05:58Z

IGNITE-8939 Catch and proper propagate transaction string reprsentation - 
Fixes #4454.

Signed-off-by: Dmitriy Pavlov 
(cherry picked from commit 458480c5b0520aa8e28935361a37ab49e1e65ff6)

commit 60155cb55ca35790da7f80ae167dd7fb3f3793fd
Author: Andrey V. Mashenkov 
Date:   2018-08-01T10:23:32Z

IGNITE-9154: Fixed conflict version passed to events for ATOMIC cache. This 
closes #4463.

(cherry picked from commit 3ea3a56)

commit 15d72fc022f64939fee336438256460024ca59c0
Author: Andrey V. Mashenkov 
Date:   2018-08-01T12:58:22Z

Merge remote-tracking branch 'origin/ignite-2.5.1-master' into 
ignite-2.5.1-master

commit 158f36de551e860176ac7f3bcf92e9751039a35c
Author: ilantukh 
Date:   2018-08-01T13:31:15Z

IGNITE-8900 SqlFieldsQuery provides incorrect result when item size exceeds 
page size.

(cherry picked from commit f1ecbbc)

commit ef331f3ba58da49746f34546f1972cf65c083b3d
Author: Maxim Muzafarov 
Date:   2018-08-01T15:39:54Z

IGNITE-7165 Re-balancing is cancelled if client node joins

Signed-off-by: Anton Vinogradov 
(cherry picked from commit 137dd06aaee9cc84104e6b4bf48306b050341e3a)

commit cfe95a1b1762501dd9ac48a1a24228ac0bc3b5c3
Author: Pavel Kovalenko 
Date:   2018-08-02T12:51:17Z

IGNITE-9111 Do not wait for deactivation.

Signed-off-by: agura 

   

[jira] [Created] (IGNITE-10397) SQL Schema may be lost after cluster activation and simple query run

2018-11-23 Thread Pavel Kovalenko (JIRA)
Pavel Kovalenko created IGNITE-10397:


 Summary: SQL Schema may be lost after cluster activation and 
simple query run
 Key: IGNITE-10397
 URL: https://issues.apache.org/jira/browse/IGNITE-10397
 Project: Ignite
  Issue Type: Bug
Affects Versions: 2.8
Reporter: Pavel Kovalenko
Assignee: Pavel Kovalenko
 Fix For: 2.8


Scenario:

1) Start 3 grids in a multithread mode with auto-activation.
2) Start the client.
3) Run a simple query like this
{noformat}
cache(DEFAULT_CACHE_NAME + 0).query(new SqlQuery<>(Integer.class, 
"1=1")).getAll();
{noformat}

Exception with the message that schema not found will be thrown:

{noformat}
[2018-11-23 
19:56:57,284][ERROR][query-#223%distributed.CacheMessageStatsIndexingTest2%][GridMapQueryExecutor]
 Failed to execute local query.
class org.apache.ignite.internal.processors.query.IgniteSQLException: Failed to 
set schema for DB connection for thread [schema=default0]
at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.connectionForThread(IgniteH2Indexing.java:549)
at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.connectionForSchema(IgniteH2Indexing.java:392)
at 
org.apache.ignite.internal.processors.query.h2.twostep.GridMapQueryExecutor.onQueryRequest0(GridMapQueryExecutor.java:767)
at 
org.apache.ignite.internal.processors.query.h2.twostep.GridMapQueryExecutor.onQueryRequest(GridMapQueryExecutor.java:637)
at 
org.apache.ignite.internal.processors.query.h2.twostep.GridMapQueryExecutor.onMessage(GridMapQueryExecutor.java:224)
at 
org.apache.ignite.internal.processors.query.h2.twostep.GridMapQueryExecutor$2.onMessage(GridMapQueryExecutor.java:184)
at 
org.apache.ignite.internal.managers.communication.GridIoManager$ArrayListener.onMessage(GridIoManager.java:2333)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1556)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1184)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:125)
at 
org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1091)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.h2.jdbc.JdbcSQLException: Schema "default0" not found; SQL 
statement:
SET SCHEMA "default0" [90079-195]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
at org.h2.message.DbException.get(DbException.java:179)
at org.h2.message.DbException.get(DbException.java:155)
at org.h2.engine.Database.getSchema(Database.java:1755)
at org.h2.command.dml.Set.update(Set.java:408)
at org.h2.command.CommandContainer.update(CommandContainer.java:101)
at org.h2.command.Command.executeUpdate(Command.java:260)
at org.h2.jdbc.JdbcStatement.executeUpdateInternal(JdbcStatement.java:137)
at org.h2.jdbc.JdbcStatement.executeUpdate(JdbcStatement.java:122)
at 
org.apache.ignite.internal.processors.query.h2.IgniteH2Indexing.connectionForThread(IgniteH2Indexing.java:541)
... 13 more
{noformat}




--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[GitHub] ignite pull request #5475: IGNITE-10339 Skip index partition file integrity ...

2018-11-23 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/ignite/pull/5475


---


[jira] [Created] (IGNITE-10396) IgniteCache Key class with HashMap field doesn't recognized in some cases

2018-11-23 Thread PetrovMikhail (JIRA)
PetrovMikhail created IGNITE-10396:
--

 Summary: IgniteCache Key class with HashMap field doesn't 
recognized in some cases
 Key: IGNITE-10396
 URL: https://issues.apache.org/jira/browse/IGNITE-10396
 Project: Ignite
  Issue Type: Bug
 Environment: [^IgniteCacheRemoveTest.java]
Reporter: PetrovMikhail
 Attachments: IgniteCacheRemoveTest.java

IgniteCache#containsKey or IgniteCache#remove methods return false when in 
their parameters passed instance of key class produced via cache iterator. Even 
in so situation when IgniteCache.Entry with such key is existing.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[GitHub] ignite pull request #5483: IGNITE-10381 Fixed U.doInParallel early terminati...

2018-11-23 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/ignite/pull/5483


---


Re: Thin clients all in one

2018-11-23 Thread Stepan Pilschikov
Dmitry,

Iv checked and its actually work
But a specially in this branch i found another bug
Please look at my last comment:
https://issues.apache.org/jira/browse/IGNITE-10358?focusedCommentId=16697285=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16697285

пт, 23 нояб. 2018 г. в 01:21, Dmitry Melnichuk <
dmitry.melnic...@nobitlost.com>:

> Stepan,
>
> Thank you for your great job in evaluating Python thin client, as well
> as other thin clients.
>
> There was indeed a bug in Python client regarding the handling of type
> hints in Collection type. I created a fix and did a PR under
> IGNITE-10358 task, but the same PR is also fixes the problem in
> IGNITE-10230 task.
>
> As of handling the type mapping in gists you provided, I left comments
> on both tasks.
>
> Dmitry
>
> On 11/21/18 6:37 PM, Stepan Pilschikov wrote:
> > Dmitry, Alexey
> >
> > Thank you for help, this answers help me a lot with understanding how
> > clients are work
> >
> > Not so long time ago i met problem which is have expected behavior, but
> its
> > may broke some workflows in future for some users
> >
> > Its all about not specified data types in collections and map's
> > All description and examples in
> > https://issues.apache.org/jira/browse/IGNITE-10358
> >
> > Dmitry, can you have a quick look at it and maybe in future somehow fix
> it?
> >
> > пт, 26 окт. 2018 г. в 19:05, Dmitry Melnichuk <
> > dmitry.melnic...@nobitlost.com>:
> >
> >> Stepan!
> >>
> >> TL/DR: what you got with Python client in your gist is an intended
> >> behavior.
> >>
> >> Explanation: As per docs, Object array contains of type ID (which is
> >> defaults to -1) and an array of objects.
> >>
> >>
> >>
> https://apacheignite.readme.io/docs/binary-client-protocol-data-format#section-object-array
> >>
> >> Your gist might be fixed accordingly:
> >>
> >> ```
> >> from pyignite import Client
> >> from pyignite.datatypes import *
> >>
> >> OBJECT_ARRAY_TYPE_ID = -1
> >> OBJECT_ARRAY_CONTENTS = [1, 2]
> >>
> >> client = Client()
> >> client.connect('127.0.0.1', 10800)
> >> cache = client.get_or_create_cache("PY_OBJECT_ARRAY")
> >> cache.put(
> >>   1,
> >>   (OBJECT_ARRAY_TYPE_ID, OBJECT_ARRAY_CONTENTS),
> >>   key_hint=IntObject,
> >>   value_hint=ObjectArrayObject,
> >> )
> >>
> >> # Python  output: print(cache.get(1))
> >> # (-1, [1, 2])
> >> ```
> >>
> >> The situation is similar with Map and Collection, they have types. Types
> >> and type IDs are mostly useless in Python, but I left them for
> >> interoperability reasons. If you think I should kick them out, just let
> >> me know.
> >>
> >> The usage of these 3 data types is documented and tested. You can refer
> >> to the table in “Data types” section:
> >>
> >>
> >>
> https://apache-ignite-binary-protocol-client.readthedocs.io/en/latest/datatypes/parsers.html
> >>
> >> The tests are here:
> >>
> >>
> >>
> https://github.com/apache/ignite/blob/master/modules/platforms/python/tests/test_datatypes.py#L116-L124
> >>
> >> On 10/26/18 11:57 PM, Stepan Pilschikov wrote:
> >>> Hi, everyone
> >>>
> >>> Create new thread to centralize cross compatibility and others common
> >>> problems between thin clients
> >>>
> >>> Tying to use Object array to exchange different data between JS, PHP
> and
> >>> Python thin clients
> >>>
> >>> JS and PHP simply can't put any type of arrays
> >>> Python can put data, but if you take it, data would be completely
> >>> different, maybe during this put process data is changed
> >>>
> >>> Code and output:
> >>> PHP -
> >> https://gist.github.com/pilshchikov/e887d31d4f2f36923470fead14c7801a
> >>> JS -
> >> https://gist.github.com/pilshchikov/ba49067fd8924ebdf4414ec63838b86d
> >>> Python -
> >>> https://gist.github.com/pilshchikov/f4bbf76e31547e2dca7d4cc5d55bd24f
> >>>
> >>> I'm tried different data types (string, double, float, complex objects,
> >>> just random objects, char, byte, Date), still
> >>>
> >>> How, from my perspective, it should works:
> >>> put array of any type and then get this array.
> >>> Example: put [1,2,3] -> get [1,2,3] or put [new Date(), new Date()] ->
> >>> get [[Date object], [Date object]] (like in java thin client)
> >>>
> >>> Looks like bug in all clients, what you think?
> >>>
> >>> I wanted to try Collections, but i think this type have same problem
> >>
> >
>
>


[GitHub] ignite pull request #5490: IGNITE-8718: Updated C++ doxygen comments about B...

2018-11-23 Thread isapego
GitHub user isapego opened a pull request:

https://github.com/apache/ignite/pull/5490

IGNITE-8718: Updated C++ doxygen comments about BinaryWriter/BinaryReader



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gridgain/apache-ignite ignite-8718

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/5490.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #5490


commit a8d8637bb342a6e4e254d755fbcd11d90a02ba97
Author: Igor Sapego 
Date:   2018-11-23T14:31:13Z

IGNITE-8718: Fixed comments for BinaryWriter

commit 79729136d648bd7c65a68cf67e9017c20bb32b7f
Author: Igor Sapego 
Date:   2018-11-23T15:02:26Z

IGNITE-8718: Added comments for BinaryReader and BinaryRawReader




---


[GitHub] ignite pull request #4785: IGNITE-9550 Get operation returns null for a lost...

2018-11-23 Thread ibessonov
Github user ibessonov closed the pull request at:

https://github.com/apache/ignite/pull/4785


---


[jira] [Created] (IGNITE-10395) Add to control.sh --cache --tx overall info:

2018-11-23 Thread ARomantsov (JIRA)
ARomantsov created IGNITE-10395:
---

 Summary: Add to control.sh --cache --tx overall info:
 Key: IGNITE-10395
 URL: https://issues.apache.org/jira/browse/IGNITE-10395
 Project: Ignite
  Issue Type: Bug
Reporter: ARomantsov






--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


Re: How to deprecate unused Ignite's system property properly? (IGNITE-7441 Drop IGNITE_SERVICES_COMPATIBILITY_MODE system property)

2018-11-23 Thread Vyacheslav Daradur
Denis, thank you for the reply.

I prepared PR [1] for the task [2].

Tests look good to me (the same failures in comparison with master branch).

Could you review the PR please (it should not take a lot of time)?

[1] https://github.com/apache/ignite/pull/5482
[2] https://issues.apache.org/jira/browse/IGNITE-7441
On Thu, Nov 22, 2018 at 5:58 PM Denis Mekhanikov  wrote:
>
> Vyacheslav,
>
> You are right. This property is not used anywhere, so you can safely remove
> it.
> I don't think, there is any need in deprecation. You can just go ahead and
> drop it,
> since it doesn't have any effect.
>
> Denis
>
> чт, 22 нояб. 2018 г. в 15:47, Vyacheslav Daradur :
>
> > Hi, Igniters!
> >
> > Here is Jira issue [1] to drop one of Ignite's system property
> > "IGNITE_SERVICES_COMPATIBILITY_MODE" because it is not used.
> >
> > I looked through git history and related Jira issues, the common
> > conclusions:
> > - the property was introduced in Ignite 1.7 within the task [2] to use
> > LazyServiceConfiguration with premarshaled services instance;
> > - Ignite 2.* was released which is incompatible with 1.*;
> > - since Ignite 2.3 the property is completely ignored after introduced
> > batch deployment mode [3];
> >
> > Looks like we can just remove the property without introducing any
> > compatibility issues.
> > Also, related node attribute 'ATTR_SERVICES_COMPATIBILITY_MODE' can be
> > safely removed.
> >
> > So, my question is: can I just remove following properties or I should
> > deprecate them and remove all usages?
> > IgniteSystemProperties#IGNITE_SERVICES_COMPATIBILITY_MODE
> > IgniteNodeAttributes#ATTR_SERVICES_COMPATIBILITY_MODE
> >
> > [1] https://issues.apache.org/jira/browse/IGNITE-7441
> > [2] https://issues.apache.org/jira/browse/IGNITE-3056
> > [3] https://issues.apache.org/jira/browse/IGNITE-5145
> >
> > --
> > Best Regards, Vyacheslav D.
> >



-- 
Best Regards, Vyacheslav D.


[jira] [Created] (IGNITE-10393) DataStreamer failed with NPE for MVCC caches

2018-11-23 Thread Sergey Kozlov (JIRA)
Sergey Kozlov created IGNITE-10393:
--

 Summary: DataStreamer failed with NPE for MVCC caches
 Key: IGNITE-10393
 URL: https://issues.apache.org/jira/browse/IGNITE-10393
 Project: Ignite
  Issue Type: Bug
Affects Versions: 2.7
Reporter: Sergey Kozlov
 Fix For: 2.7


1. Start node with configured MVCC cache and PDS
2. Try to load data into cache by data streamer running on client node

{noformat}
OUT >>> datastreamer into cache 'cache_121', key=java.lang.Long, 
value=org.apache.ignite.testtools.model.AllTypes, range=21..51
[14:55:16] (err) Failed to execute compound future reducer: GridCompoundFuture 
[rdc=null, initFlag=1, lsnrCalls=0, done=false, cancelled=false, err=null, 
futs=TransformCollectionView [true, false, false, true]][14:55:16] (err) Failed 
to execute compound future reducer: GridCompoundFuture [rdc=null, initFlag=1, 
lsnrCalls=0, done=false, cancelled=false, err=null, 
futs=TransformCollectionView [true, true, false, true]][14:55:16] (err) Failed 
to execute compound future reducer: GridCompoundFuture [rdc=null, initFlag=1, 
lsnrCalls=0, done=false, cancelled=false, err=null, 
futs=TransformCollectionView [true, false, false, true]]class 
org.apache.ignite.IgniteCheckedException: DataStreamer request failed 
[node=5fae5c99-716e-441a-99d5-194de6ba61a6]
at 
org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl$Buffer.onResponse(DataStreamerImpl.java:2055)
at 
org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl$3.onMessage(DataStreamerImpl.java:356)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1569)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1197)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:127)
at 
org.apache.ignite.internal.managers.communication.GridIoManager$9.run(GridIoManager.java:1093)
at 
org.apache.ignite.internal.util.StripedExecutor$Stripe.body(StripedExecutor.java:505)
at 
org.apache.ignite.internal.util.worker.GridWorker.run(GridWorker.java:120)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalStateException: Failed to write record: 
MvccDataRecord [super=DataRecord [writeEntries=SingletonList [MvccDataEntry 
[mvccVer=null]], super=TimeStampRecord [timestamp=1542974116042]]]
at 
org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager$FileWriteHandle.fillBuffer(FileWriteAheadLogManager.java:2634)
at 
org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager$FileWriteHandle.addRecord(FileWriteAheadLogManager.java:2563)
at 
org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager$FileWriteHandle.access$1600(FileWriteAheadLogManager.java:2451)
at 
org.apache.ignite.internal.processors.cache.persistence.wal.FileWriteAheadLogManager.log(FileWriteAheadLogManager.java:823)
at 
org.apache.ignite.internal.processors.cache.GridCacheMapEntry.initialValue(GridCacheMapEntry.java:3414)
at 
org.apache.ignite.internal.processors.cache.GridCacheEntryEx.initialValue(GridCacheEntryEx.java:766)
at 
org.apache.ignite.internal.processors.datastreamer.DataStreamerImpl$IsolatedUpdater.receive(DataStreamerImpl.java:2265)
at 
org.apache.ignite.internal.processors.datastreamer.DataStreamerUpdateJob.call(DataStreamerUpdateJob.java:140)
at 
org.apache.ignite.internal.processors.datastreamer.DataStreamProcessor.localUpdate(DataStreamProcessor.java:400)
at 
org.apache.ignite.internal.processors.datastreamer.DataStreamProcessor.processRequest(DataStreamProcessor.java:305)
at 
org.apache.ignite.internal.processors.datastreamer.DataStreamProcessor.access$000(DataStreamProcessor.java:60)
at 
org.apache.ignite.internal.processors.datastreamer.DataStreamProcessor$1.onMessage(DataStreamProcessor.java:90)
... 7 more
Caused by: java.lang.NullPointerException
at 
org.apache.ignite.internal.processors.cache.persistence.wal.serializer.TxRecordSerializer.putMvccVersion(TxRecordSerializer.java:66)
at 
org.apache.ignite.internal.processors.cache.persistence.wal.serializer.RecordDataV2Serializer.putMvccDataEntry(RecordDataV2Serializer.java:298)
at 
org.apache.ignite.internal.processors.cache.persistence.wal.serializer.RecordDataV2Serializer.putPlainDataEntry(RecordDataV2Serializer.java:286)
at 
org.apache.ignite.internal.processors.cache.persistence.wal.serializer.RecordDataV2Serializer.writePlainRecord(RecordDataV2Serializer.java:246)
at 
org.apache.ignite.internal.processors.cache.persistence.wal.serializer.RecordDataV1Serializer.writeRecord(RecordDataV1Serializer.java:222)
   

[jira] [Created] (IGNITE-10394) Try to activate cluster after deactivate. All node exit by handler

2018-11-23 Thread ARomantsov (JIRA)
ARomantsov created IGNITE-10394:
---

 Summary: Try to activate cluster after deactivate. All node exit 
by handler
 Key: IGNITE-10394
 URL: https://issues.apache.org/jira/browse/IGNITE-10394
 Project: Ignite
  Issue Type: Bug
  Components: data structures
Affects Versions: 2.7
Reporter: ARomantsov


AE: ignite-sys-cache
..processors.cache.CacheRegistry.update(CacheRegistry.java:188)



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[GitHub] SomeFire commented on a change in pull request #78: IGNITE-10203 Support for alternative configurations for PR testing

2018-11-23 Thread GitBox
SomeFire commented on a change in pull request #78: IGNITE-10203 Support for 
alternative configurations for PR testing
URL: https://github.com/apache/ignite-teamcity-bot/pull/78#discussion_r235949008
 
 

 ##
 File path: 
ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/ParametersCompacted.java
 ##
 @@ -0,0 +1,134 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.ci.teamcity.ignited.buildtype;
+
+import com.google.common.base.MoreObjects;
+import com.google.common.base.Strings;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import org.apache.ignite.ci.tcmodel.conf.bt.Parameters;
+import org.apache.ignite.ci.tcmodel.conf.bt.Property;
+import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
+import org.apache.ignite.internal.util.GridIntList;
+
+public class ParametersCompacted {
+private GridIntList keys;
+private GridIntList values;
+
+/**
+ * Default constructor.
+ */
+public ParametersCompacted() {
+}
+
+/**
+ * @param compactor Compactor.
+ * @param ref Reference.
+ */
+public ParametersCompacted(IStringCompactor compactor, List ref) 
{
+final int size = ref.size();
+keys = new GridIntList(size);
+values = new GridIntList(size);
+for (Property next : ref) {
+final String name = next.name();
+if (Strings.isNullOrEmpty(name))
+continue;
+
+final String value = next.getValue();
+if (Strings.isNullOrEmpty(value))
+continue;
+final int val = compactor.getStringId(value);
+final int stringId = compactor.getStringId(name);
+
+keys.add(stringId);
+values.add(val);
+}
+}
+
+public Parameters toParameters(IStringCompactor compactor) {
+List properties = null;
+
+if (keys.size() > 0) {
+properties = new ArrayList<>();
+
+final int size = keys.size();
+for (int i = 0; i < size; i++) {
+if (i >= values.size())
 
 Review comment:
   Move check inside `for` statement.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] SomeFire commented on a change in pull request #78: IGNITE-10203 Support for alternative configurations for PR testing

2018-11-23 Thread GitBox
SomeFire commented on a change in pull request #78: IGNITE-10203 Support for 
alternative configurations for PR testing
URL: https://github.com/apache/ignite-teamcity-bot/pull/78#discussion_r235949213
 
 

 ##
 File path: 
ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/buildtype/ParametersCompacted.java
 ##
 @@ -0,0 +1,134 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.ci.teamcity.ignited.buildtype;
+
+import com.google.common.base.MoreObjects;
+import com.google.common.base.Strings;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
+import org.apache.ignite.ci.tcmodel.conf.bt.Parameters;
+import org.apache.ignite.ci.tcmodel.conf.bt.Property;
+import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
+import org.apache.ignite.internal.util.GridIntList;
+
+public class ParametersCompacted {
+private GridIntList keys;
+private GridIntList values;
+
+/**
+ * Default constructor.
+ */
+public ParametersCompacted() {
+}
+
+/**
+ * @param compactor Compactor.
+ * @param ref Reference.
+ */
+public ParametersCompacted(IStringCompactor compactor, List ref) 
{
+final int size = ref.size();
+keys = new GridIntList(size);
+values = new GridIntList(size);
+for (Property next : ref) {
+final String name = next.name();
+if (Strings.isNullOrEmpty(name))
+continue;
+
+final String value = next.getValue();
+if (Strings.isNullOrEmpty(value))
+continue;
+final int val = compactor.getStringId(value);
+final int stringId = compactor.getStringId(name);
+
+keys.add(stringId);
+values.add(val);
+}
+}
+
+public Parameters toParameters(IStringCompactor compactor) {
+List properties = null;
+
+if (keys.size() > 0) {
+properties = new ArrayList<>();
+
+final int size = keys.size();
+for (int i = 0; i < size; i++) {
+if (i >= values.size())
 
 Review comment:
   And empty line before `for`.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] SomeFire commented on a change in pull request #78: IGNITE-10203 Support for alternative configurations for PR testing

2018-11-23 Thread GitBox
SomeFire commented on a change in pull request #78: IGNITE-10203 Support for 
alternative configurations for PR testing
URL: https://github.com/apache/ignite-teamcity-bot/pull/78#discussion_r235948717
 
 

 ##
 File path: 
ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/TeamcityIgnitedImpl.java
 ##
 @@ -308,6 +330,120 @@ else if (midValStartDate.before(key))
 return chains;
 }
 
+/**
+ * Actualize saved list of composite suites for project.
+ *
+ * @param projectId Project id.
+ */
+private void actualizeSavedCompositeBuildTypesIds(String projectId) {
+if (projectId.equals(DEFAULT_PROJECT_ID)) {
+compositeBuildTypesIdsForDefaultProject =
+
fatBuildTypeDao.compositeBuildTypesIdsSortedByBuildNumberCounter(srvIdMaskHigh, 
projectId);
+}
+}
+
+/** {@inheritDoc} */
+@Override public List 
getCompositeBuildTypesIdsSortedByBuildNumberCounter(String projectId) {
+ensureActualizeBuildTypeRefsRequested();
+ensureActualizeBuildTypesRequested();
+
+return projectId.equals(DEFAULT_PROJECT_ID) ? 
compositeBuildTypesIdsForDefaultProject :
+
fatBuildTypeDao.compositeBuildTypesIdsSortedByBuildNumberCounter(srvIdMaskHigh, 
projectId);
+}
+
+/** {@inheritDoc} */
+@Override public List 
getAllBuildTypesCompacted(String projectId) {
+ensureActualizeBuildTypeRefsRequested();
+
+return buildTypeRefDao.buildTypesCompacted(srvIdMaskHigh, projectId);
+}
+
+/**
+ * Ensure actualize BuildTypeRefs requested. Add this task to scheduler.
+ */
+private void ensureActualizeBuildTypeRefsRequested() {
+scheduler.sheduleNamed(taskName("actualizeAllBuildTypeRefs"),
+this::reindexBuildTypeRefs, 4, TimeUnit.HOURS);
+}
+
+/**
+ *Ensure actualize BuildTypes requested. Add this task to scheduler.
+ */
+private void ensureActualizeBuildTypesRequested() {
+scheduler.sheduleNamed(taskName("actualizeAllBuildTypes"),
+this::reindexBuildTypes, 24, TimeUnit.HOURS);
+}
+
+/**
+ * Re-index all references to "IgniteTests24Java8" suites.
+ */
+private void reindexBuildTypeRefs() {
+runActualizeBuildTypeRefs(DEFAULT_PROJECT_ID);
+}
+
+/**
+ * Re-index all "IgniteTests24Java8" suites.
+ */
+private void reindexBuildTypes() {
+runActualizeBuildTypes(DEFAULT_PROJECT_ID);
+}
+
+/**
+ * Re-index all project suites.
+ *
+ * @param projectId Project id.
+ * @return Statistics with the number of updated and requested buildTypes.
+ */
+@SuppressWarnings({"WeakerAccess", "UnusedReturnValue"})
+@MonitoredTask(name = "Reindex BuildTypes (projectId)", nameExtArgsIndexes 
= {0})
+@AutoProfiling
+protected String runActualizeBuildTypes(String projectId) {
+List buildTypeIds = 
buildTypeRefDao.buildTypeIds(srvIdMaskHigh, projectId);
+
+int updated = 0;
+
+for (String buildTypeId : buildTypeIds) {
+
+BuildType buildType = conn.getBuildType(buildTypeId);
+
+FatBuildTypeCompacted existingBuildType = 
fatBuildTypeDao.getFatBuildType(srvIdMaskHigh, buildTypeId);
+
+if (fatBuildTypeDao.saveBuildType(srvIdMaskHigh, buildType, 
existingBuildType) != null)
+updated++;
+}
+
+if (updated != 0)
+actualizeSavedCompositeBuildTypesIds(projectId);
+
+return "BuildTypes updated " + updated + " from " + 
buildTypeIds.size() + " requested";
+}
+
+/**
+ * Re-index all references to project suites.
+ *
+ * @param projectId Project id.
+ * @return Statistics with the number of updated and requested 
buildTypeRefs.
+ */
+@SuppressWarnings({"WeakerAccess", "UnusedReturnValue"})
+@MonitoredTask(name = "Reindex BuildTypeRefs (projectId)", 
nameExtArgsIndexes = {0})
+@AutoProfiling
+protected String runActualizeBuildTypeRefs(String projectId) {
+List tcData = conn.getBuildTypes(projectId);
+
+Set buildsUpdated = buildTypeRefDao.saveChunk(srvIdMaskHigh, 
tcData);
+
+Set removedBuildTypes = 
buildTypeRefDao.markMissingBuildsAsRemoved(srvIdMaskHigh,
+
tcData.stream().map(BuildTypeRef::getId).collect(Collectors.toList()), 
projectId);
+
+if (!(buildsUpdated.isEmpty() && removedBuildTypes.isEmpty())) {
 
 Review comment:
   Remove braces.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] SomeFire commented on a change in pull request #78: IGNITE-10203 Support for alternative configurations for PR testing

2018-11-23 Thread GitBox
SomeFire commented on a change in pull request #78: IGNITE-10203 Support for 
alternative configurations for PR testing
URL: https://github.com/apache/ignite-teamcity-bot/pull/78#discussion_r235915862
 
 

 ##
 File path: 
ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/ITeamcity.java
 ##
 @@ -57,7 +54,12 @@
 @Deprecated
 long DEFAULT_BUILDS_COUNT = 1000;
 
-CompletableFuture> getProjectSuites(String projectId);
+/** {@inheritDoc} */
+@Override default List getBuildTypes(String projectId) {
+return FutureUtil.getResult(getProjectSuites(projectId));
+}
+
+CompletableFuture> getProjectSuites(String projectId);
 
 Review comment:
   Missed javadocs.


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


[GitHub] ignite pull request #5434: IGNITE-10335 move ML examples datasets files to r...

2018-11-23 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/ignite/pull/5434


---


[GitHub] ignite pull request #5489: Ignite 2.4.13.b1

2018-11-23 Thread antkr
GitHub user antkr opened a pull request:

https://github.com/apache/ignite/pull/5489

Ignite 2.4.13.b1



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gridgain/apache-ignite ignite-2.4.13.b1

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/5489.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #5489


commit 247a9ef5a68de198106a866b277f1bee596c3633
Author: devozerov 
Date:   2018-04-02T10:16:00Z

Merge branch 'ignite-2.4.4' into ignite-2.4-master

commit 3949df02128e3003c409e0169ad0c80948ba134c
Author: Aleksey Plekhanov 
Date:   2018-02-13T13:43:49Z

IGNITE-5265 Eviction Rate memory metric to be implemented

Signed-off-by: Anton Vinogradov 

commit 7bc6c1ad3bacaf5e354d2710931eb398c346c06c
Author: Tim Onyschak 
Date:   2018-03-31T12:58:25Z

IGNITE-7090 Semaphore Stuck when no acquirers to assign permit - Fixes 
#3443.

Signed-off-by: dspavlov 

(cherry picked from commit 3fc5d57)

commit c854ad86f4c64260171085c8c7cce97ba1ad2530
Author: Pavel Kovalenko 
Date:   2018-02-22T09:02:31Z

IGNITE-7749 Fixed testDiscoCacheReuseOnNodeJoin test. - Fixes #3540.

Signed-off-by: Alexey Goncharuk 

commit b2e94b36bddebbf7b3ff40631e099939d16926d2
Author: Alexey Goncharuk 
Date:   2018-02-13T15:53:23Z

IGNITE-7692 Corrected test to not fail when SQL is executed on backup

commit 852425d4170ed1871c79f5ac26bfb3d03cc36a6f
Author: Алексей Стельмак 
Date:   2018-04-06T15:28:22Z

IGNITE-8049 Limit the number of operation cycles in B+Tree - Fixes #3769.

Signed-off-by: dpavlov 
(cherry picked from commit e491f10)

commit 42f529f0a04ce22786bb4a23032a64f93e214233
Author: Alexey Kuznetsov 
Date:   2018-04-09T02:25:50Z

IGNITE-8159 control.sh: Fixed NPE on adding nodes on empty baseline and not 
active cluster.

(cherry picked from commit 834869c)

commit b5f180838246f895d36846ea707790c1ff7fe70a
Author: Stanislav Lukyanov 
Date:   2018-04-09T11:33:13Z

IGNITE-7904: Changed IgniteUtils::cast not to trim exception chains. This 
closes #3683.

(cherry picked from commit 3a4f23b)

commit 1ce8e1a8fd48469073592e2fb77e2881a168a219
Author: Roman Guseinov 
Date:   2018-04-09T11:45:44Z

IGNITE-7944: Disconnected client node tries to send JOB_CANCEL message. 
Applied fix:
- Skip sending message if client disconnected;
- Throw IgniteCheckedException if a client node is disconnected and 
communication client is null.
This closes #3737.

(cherry picked from commit d70477b)

commit 840e193b3e604e8b0d90be5fac16cf11d8c832e6
Author: Ilya Lantukh 
Date:   2018-04-06T10:49:10Z

ignite-8087 : Backported ignite-8018.

(cherry picked from commit 175edf3)

commit 94e857c94ce5e7998fc39e38deee69f389ddbc5b
Author: Alexey Goncharuk 
Date:   2018-04-10T17:33:47Z

IGNITE-6430 Complete failing test early

commit 770f7469d4b86ce9af61e9e43c7262d86ee05b54
Author: Eduard Shangareev 
Date:   2018-04-06T16:22:07Z

IGNITE-8114 Add fail recovery mechanism to tracking pages

commit 549d6e3de86a22697577f77a2ebab3d0dca7338d
Author: Alexey Kukushkin 
Date:   2018-04-11T13:29:07Z

IGNITE-8221: Security for thin clients.

commit 94c0f56ef78e6c61f0e753c8aa0185c611630d45
Author: devozerov 
Date:   2018-04-11T13:44:33Z

IGNITE-8148: JDBC thin: semicolon as delimiter for properties. This closes 
#3794.

commit d99a50ccd6923aa48da78955207fe747b287ea81
Author: mcherkasov 
Date:   2018-04-11T00:23:29Z

IGNITE-8153 Nodes fail to connect each other when SSL is enabled - Fixes 
#3773.

Signed-off-by: Valentin Kulichenko 

commit 03285e953d005a18fb88a35d21701100f58f7a29
Author: devozerov 
Date:   2018-04-12T07:37:36Z

IGNITE-8042: .NET thin client: authentication support. This closes #3790.

commit 8e740164e8a0102a94f408d72b41f73df675cfb1
Author: Ilya Kasnacheev 
Date:   2018-04-05T09:55:36Z

IGNITE-7712: SQL: system property to force lazy query execution.

Cherry-picked from 064c816c177d31f18af2954175ca3ad0f3eee957

commit df405d439d461d3576cd3b22d53716cd324b3ef7
Author: Alexander Paschenko 
Date:   2018-04-11T14:03:16Z

IGNITE-8204: SQL: fixed hangs when lazy flag is enabled.

Cherry-picked from 747e6c5.

commit 8af36584a81f6411a08b66935b843a5c1ba3169c
Author: devozerov 
Date:   2018-04-12T12:02:57Z

IGNITE-8135: SQL: authentication for CREATE TABLE and DROP TABLE commands. 
This closes #3801.

commit 1c31e07bb7510b908b540169a6ded7a909e23fda
Author: devozerov 
Date:   2018-04-12T12:13:51Z

IGNITE-8230: SQL: Fixed backup number propagation in CREATE TABLE command. 
This closes #3803.

commit 131b9b974c01d1b5c05f98e2fe3947f0672c94ec
Author: tledkov-gridgain 
Date:   2018-04-16T08:28:39Z

IGNITE-8129: MTCGA: setup default SSL context in 

[GitHub] ignite pull request #5488: IGNITE-10392 : Use lasdAffChangedTopVer if DiscoC...

2018-11-23 Thread ilantukh
GitHub user ilantukh opened a pull request:

https://github.com/apache/ignite/pull/5488

IGNITE-10392 : Use lasdAffChangedTopVer if DiscoCache for the requested 
topVer isn't ready.



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gridgain/apache-ignite ignite-10392

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/5488.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #5488


commit 22b39db36b820b4410be0e3b4f21d1b29ce760af
Author: Ilya Lantukh 
Date:   2018-11-23T13:36:44Z

IGNITE-10392 : Use lasdAffChangedTopVer if DiscoCache for the requested 
topVer isn't ready.




---


[GitHub] ignite pull request #5487: IGNITE-10385 replace empty fields with zero-lengt...

2018-11-23 Thread antkr
GitHub user antkr opened a pull request:

https://github.com/apache/ignite/pull/5487

IGNITE-10385 replace empty fields with zero-length arrays.

TC run.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gridgain/apache-ignite ignite-10385

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/5487.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #5487


commit 949dc3daf9e980b357ccb6e1ebc8cf7eb0f5e391
Author: antkr 
Date:   2018-11-23T13:34:21Z

IGNITE-10385 replace empty fields with zero-length arrays.




---


[jira] [Created] (IGNITE-10392) Client broken cluster where try to connect. Server nodes drop by handler

2018-11-23 Thread Ilya Lantukh (JIRA)
Ilya Lantukh created IGNITE-10392:
-

 Summary: Client broken cluster where try to connect. Server nodes 
drop by handler
 Key: IGNITE-10392
 URL: https://issues.apache.org/jira/browse/IGNITE-10392
 Project: Ignite
  Issue Type: Bug
Reporter: Ilya Lantukh
Assignee: Ilya Lantukh


{noformat}
org.apache.ignite.IgniteException: Failed to resolve nodes topology 
[cacheGrp=N/A, topVer=AffinityTopologyVersion [topVer=133, minorTopVer=0], 
history=[AffinityTopologyVersion [topVer=35, minorTopVer=0], 
AffinityTopologyVersion [topVer=36, minorTopVer=0], AffinityTopologyVersion 
[topVer=37, minorTopVer=0], AffinityTopologyVersion [topVer=38, minorTopVer=0], 
AffinityTopologyVersion [topVer=39, minorTopVer=0], AffinityTopologyVersion 
[topVer=40, minorTopVer=0], AffinityTopologyVersion [topVer=41, minorTopVer=0], 
AffinityTopologyVersion [topVer=42, minorTopVer=0], AffinityTopologyVersion 
[topVer=43, minorTopVer=0], AffinityTopologyVersion [topVer=44, minorTopVer=0], 
AffinityTopologyVersion [topVer=45, minorTopVer=0], AffinityTopologyVersion 
[topVer=46, minorTopVer=0], AffinityTopologyVersion [topVer=47, minorTopVer=0], 
AffinityTopologyVersion [topVer=48, minorTopVer=0], AffinityTopologyVersion 
[topVer=49, minorTopVer=0], AffinityTopologyVersion [topVer=50, minorTopVer=0], 
AffinityTopologyVersion [topVer=51, minorTopVer=0], AffinityTopologyVersion 
[topVer=52, minorTopVer=0], AffinityTopologyVersion [topVer=53, minorTopVer=0], 
AffinityTopologyVersion [topVer=54, minorTopVer=0], AffinityTopologyVersion 
[topVer=55, minorTopVer=0], AffinityTopologyVersion [topVer=56, minorTopVer=0], 
AffinityTopologyVersion [topVer=57, minorTopVer=0], AffinityTopologyVersion 
[topVer=58, minorTopVer=0], AffinityTopologyVersion [topVer=59, minorTopVer=0], 
AffinityTopologyVersion [topVer=60, minorTopVer=0], AffinityTopologyVersion 
[topVer=61, minorTopVer=0], AffinityTopologyVersion [topVer=62, minorTopVer=0], 
AffinityTopologyVersion [topVer=63, minorTopVer=0], AffinityTopologyVersion 
[topVer=64, minorTopVer=0], AffinityTopologyVersion [topVer=65, minorTopVer=0], 
AffinityTopologyVersion [topVer=66, minorTopVer=0], AffinityTopologyVersion 
[topVer=67, minorTopVer=0], AffinityTopologyVersion [topVer=68, minorTopVer=0], 
AffinityTopologyVersion [topVer=69, minorTopVer=0], AffinityTopologyVersion 
[topVer=70, minorTopVer=0], AffinityTopologyVersion [topVer=71, minorTopVer=0], 
AffinityTopologyVersion [topVer=72, minorTopVer=0], AffinityTopologyVersion 
[topVer=73, minorTopVer=0], AffinityTopologyVersion [topVer=74, minorTopVer=0], 
AffinityTopologyVersion [topVer=75, minorTopVer=0], AffinityTopologyVersion 
[topVer=76, minorTopVer=0], AffinityTopologyVersion [topVer=77, minorTopVer=0], 
AffinityTopologyVersion [topVer=78, minorTopVer=0], AffinityTopologyVersion 
[topVer=79, minorTopVer=0], AffinityTopologyVersion [topVer=80, minorTopVer=0], 
AffinityTopologyVersion [topVer=81, minorTopVer=0], AffinityTopologyVersion 
[topVer=82, minorTopVer=0], AffinityTopologyVersion [topVer=83, minorTopVer=0], 
AffinityTopologyVersion [topVer=84, minorTopVer=0], AffinityTopologyVersion 
[topVer=85, minorTopVer=0], AffinityTopologyVersion [topVer=86, minorTopVer=0], 
AffinityTopologyVersion [topVer=87, minorTopVer=0], AffinityTopologyVersion 
[topVer=88, minorTopVer=0], AffinityTopologyVersion [topVer=89, minorTopVer=0], 
AffinityTopologyVersion [topVer=90, minorTopVer=0], AffinityTopologyVersion 
[topVer=91, minorTopVer=0], AffinityTopologyVersion [topVer=92, minorTopVer=0], 
AffinityTopologyVersion [topVer=93, minorTopVer=0], AffinityTopologyVersion 
[topVer=94, minorTopVer=0], AffinityTopologyVersion [topVer=95, minorTopVer=0], 
AffinityTopologyVersion [topVer=96, minorTopVer=0], AffinityTopologyVersion 
[topVer=97, minorTopVer=0], AffinityTopologyVersion [topVer=98, minorTopVer=0], 
AffinityTopologyVersion [topVer=99, minorTopVer=0], AffinityTopologyVersion 
[topVer=100, minorTopVer=0], AffinityTopologyVersion [topVer=101, 
minorTopVer=0], AffinityTopologyVersion [topVer=102, minorTopVer=0], 
AffinityTopologyVersion [topVer=103, minorTopVer=0], AffinityTopologyVersion 
[topVer=104, minorTopVer=0], AffinityTopologyVersion [topVer=105, 
minorTopVer=0], AffinityTopologyVersion [topVer=106, minorTopVer=0], 
AffinityTopologyVersion [topVer=107, minorTopVer=0], AffinityTopologyVersion 
[topVer=108, minorTopVer=0], AffinityTopologyVersion [topVer=109, 
minorTopVer=0], AffinityTopologyVersion [topVer=110, minorTopVer=0], 
AffinityTopologyVersion [topVer=111, minorTopVer=0], AffinityTopologyVersion 
[topVer=112, minorTopVer=0], AffinityTopologyVersion [topVer=113, 
minorTopVer=0], AffinityTopologyVersion [topVer=114, minorTopVer=0], 
AffinityTopologyVersion [topVer=115, minorTopVer=0], AffinityTopologyVersion 
[topVer=116, minorTopVer=0], AffinityTopologyVersion [topVer=117, 
minorTopVer=0], AffinityTopologyVersion [topVer=118, 

Re: [DISCUSSION] Design document. Rebalance caches by transferring partition files

2018-11-23 Thread Ilya Kasnacheev
Hello!

This proposal will also happily break my compression-with-dictionary patch
since it relies currently on only having local dictionaries.

However, when you have compressed data, maybe speed boost is even greater
with your approach.

Regards,
-- 
Ilya Kasnacheev


пт, 23 нояб. 2018 г. в 13:08, Maxim Muzafarov :

> Igniters,
>
>
> I'd like to take the next step of increasing the Apache Ignite with
> enabled persistence rebalance speed. Currently, the rebalancing
> procedure doesn't utilize the network and storage device throughout to
> its full extent even with enough meaningful values of
> rebalanceThreadPoolSize property. As part of the previous discussion
> `How to make rebalance faster` [1] and IEP-16 [2] Ilya proposed an
> idea [3] of transferring cache partition files over the network.
> From my point, the case to which this type of rebalancing procedure
> can bring the most benefit – is adding a completely new node or set of
> new nodes to the cluster. Such a scenario implies fully relocation of
> cache partition files to the new node. To roughly estimate the
> superiority of partition file transmitting over the network the native
> Linux scp\rsync commands can be used. My test environment showed the
> result of the new approach as 270 MB/s vs the current 40 MB/s
> single-threaded rebalance speed.
>
>
> I've prepared the design document IEP-28 [4] and accumulated all the
> process details of a new rebalance approach on that page. Below you
> can find the most significant details of the new rebalance procedure
> and components of the Apache Ignite which are proposed to change.
>
> Any feedback is very appreciated.
>
>
> *PROCESS OVERVIEW*
>
> The whole process is described in terms of rebalancing single cache
> group and partition files would be rebalanced one-by-one:
>
> 1. The demander node sends the GridDhtPartitionDemandMessage to the
> supplier node;
> 2. When the supplier node receives GridDhtPartitionDemandMessage and
> starts the new checkpoint process;
> 3. The supplier node creates empty the temporary cache partition file
> with .tmp postfix in the same cache persistence directory;
> 4. The supplier node splits the whole cache partition file into
> virtual chunks of predefined size (multiply to the PageMemory size);
> 4.1. If the concurrent checkpoint thread determines the appropriate
> cache partition file chunk and tries to flush dirty page to the cache
> partition file
> 4.1.1. If rebalance chunk already transferred
> 4.1.1.1. Flush the dirty page to the file;
> 4.1.2. If rebalance chunk not transferred
> 4.1.2.1. Write this chunk to the temporary cache partition file;
> 4.1.2.2. Flush the dirty page to the file;
> 4.2. The node starts sending to the demander node each cache partition
> file chunk one by one using FileChannel#transferTo
> 4.2.1. If the current chunk was modified by checkpoint thread – read
> it from the temporary cache partition file;
> 4.2.2. If the current chunk is not touched – read it from the original
> cache partition file;
> 5. The demander node starts to listen to new pipe incoming connections
> from the supplier node on TcpCommunicationSpi;
> 6. The demander node creates the temporary cache partition file with
> .tmp postfix in the same cache persistence directory;
> 7. The demander node receives each cache partition file chunk one by one
> 7.1. The node checks CRC for each PageMemory in the downloaded chunk;
> 7.2. The node flushes the downloaded chunk at the appropriate cache
> partition file position;
> 8. When the demander node receives the whole cache partition file
> 8.1. The node initializes received .tmp file as its appropriate cache
> partition file;
> 8.2. Thread-per-partition begins to apply for data entries from the
> beginning of WAL-temporary storage;
> 8.3. All async operations corresponding to this partition file still
> write to the end of temporary WAL;
> 8.4. At the moment of WAL-temporary storage is ready to be empty
> 8.4.1. Start the first checkpoint;
> 8.4.2. Wait for the first checkpoint ends and own the cache partition;
> 8.4.3. All operations now are switched to the partition file instead
> of writing to the temporary WAL;
> 8.4.4. Schedule the temporary WAL storage deletion;
> 9. The supplier node deletes the temporary cache partition file;
>
>
> *COMPONENTS TO CHANGE*
>
> CommunicationSpi
>
> To benefit from zero copy we must delegate the file transferring to
> FileChannel#transferTo(long, long,
> java.nio.channels.WritableByteChannel) because the fast path of
> transferTo method is only executed if the destination buffer inherits
> from an internal JDK class.
>
> Preloader
>
> A new implementation of cache entries preloader assume to be done. The
> new implementation must send and receive cache partition files over
> the CommunicationSpi channels by chunks of data with validation
> received items. The new layer over the cache partition file must
> support direct using of FileChannel#transferTo method over the
> CommunicationSpi 

[GitHub] asfgit closed pull request #81: IGNITE-10372 Optimize master trends page step 3: Tests migrated to new concept

2018-11-23 Thread GitBox
asfgit closed pull request #81:  IGNITE-10372 Optimize master trends page step 
3: Tests migrated to new concept
URL: https://github.com/apache/ignite-teamcity-bot/pull/81
 
 
   


This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


With regards,
Apache Git Services


Re: Improve lazy mode SQL query execution (IGNITE-9171)

2018-11-23 Thread Vladimir Ozerov
I would say that we have multiple conditions which may require re-try from
user side - MVCC write conflict, lock timeout, node crash. Now concurrent
DDL operation will be added to the list. I would think about proper retry
exception semantics in a separate task.

On Thu, Nov 22, 2018 at 5:37 PM Taras Ledkov  wrote:

> Hi,
>
> Lets discuss changes of Ignite public interface relates to retry SQL
> queries.
>
> Should we add new public exception (.e.g: `QueryRetryException`) for
> cache SQL API
> and special vendor error code to SQLException for JDBC?
>
> 21.11.2018 16:32, Vladimir Ozerov пишет:
> > Hi Taras,
> >
> > Unfortunately, this will not be easy to implement. We already have
> > AffinityTopologyVersion which is updated on certain schema change
> > operations, such as CREATE/DROP TABLE. Moreover, it is already passed in
> > query request messages (GridH2QueryRequest.topVer). Unfortunately, it is
> > not updated for other DDL scenarios, such as ALTER TABLE. We can
> introduce
> > our own global counter. We can try to integrate with
> AffinityTopologyVersion.
> > Both solutions will require tight integration with PME mechanism to
> > function properly. But good news is that this is not a new problem.
> > Currently it is already possible for two map requests to be executed on
> > different schemas:
> >
> > client_1: SEND_QUERY
> > client_2: SEND_ALTER
> > node_1  :EXEC_QUERY EXEC_ALTER
> > node_2  :   EXEC_ALTER EXEC_QUERY
> >
> > So I would say that nothing changes for us even after proposed changes,
> and
> > way may leave this problem aside for now.
> >
> > Makes sense?
> >
> > On Wed, Nov 21, 2018 at 4:15 PM Taras Ledkov 
> wrote:
> >
> >> Vladimir,
> >>
> >> The query protocol will be changed in both solution.
> >>
> >> The tables versions must be added to the 'GridQueryNextPageResponse'
> >> message
> >> and must be compared on the reduce node too. Because the DLL / DML race
> >> may be happens on different nodes.
> >>
> >> 21.11.2018 15:24, Vladimir Ozerov пишет:
> >>> Taras,
> >>>
> >>> Thank you for analysis. I'd like to add that there is another solution
> -
> >>> PME :-) In this case DDL will be blocked until current SELECTs and
> >> updates
> >>> are finished, and do not allow new operations to be executed. This
> >> approach
> >>> solves all issues - it avoids deadlocks between query threads and DDL
> >>> threads when they are reordered on different nodes, it avoids
> starvation
> >> of
> >>> DDL operations, and it doesn't cancel any queries. But there is serious
> >>> drawback - performance. The drawback is that it is more complex to
> >>> implement (query protocol changes might be required), it blocks the
> >> cluster
> >>> even when it is needed, and it may destabilize PME mechanism, which is
> >>> already on his last legs.
> >>>
> >>> For this reason killing queries which interleave with DDL looks like a
> >>> balanced solution for now - it is reasonably simple, allows us to we
> >> avoid
> >>> OOME in many cases, and do not introduce any additional complexity for
> >>> users, as they are already prepared for re-tries.
> >>>
> >>> But I would like to stress one thing - we will need integration with
> PME
> >> at
> >>> some point in time anyway. Some DDL operations are blocking in their
> >> nature
> >>> (e.g. DROP COLUMN). Other DDL operations may be non-blocking, but
> >> blocking
> >>> implementation may give them serious performance benefits (e.g. CREATE
> >>> INDEX).
> >>>
> >>> So I propose to go with your solution for now, and start thinking about
> >> SQL
> >>> -> PME integration in the background.
> >>>
> >>> Vladimir.
> >>>
> >>> On Wed, Nov 21, 2018 at 2:23 PM Taras Ledkov 
> >> wrote:
>  Hi community,
> 
>  We will enhance lazy mode for SQL query execution.
> 
>  Lazy mode overview:
>  Lazy mode is related to H2 lazy mode when the all query results are
> not
>  copied to the RAM in some cases.
>  The mode it is applicable for SELECTs that doesn't not require
>  materialize all results in memory, e.g.  simple scan plans, IDX
> lookup,
>  merge join etc.
>  And not applicable for SORT by not indexed fields, aggregates, nested
>  loops joins etc.
> 
>  When mode is applicable it produces result with iterator-like behavior
>  on server side and not consume RAM.
>  So the huge result set may be selected without OOME.
> 
>  The current implementation.
>  The current implementation is start separate thread for each query
> with
>  'lazy=true'.
>  This is caused by the our implementation of 'GridH2Table'. In details:
>  the table's locks.
>  The table must be locked while result set  is completed.
> 
>  When lazy is disabled a complete result is generated on the first step
>  of a query execution (then tables unlock)
>  and result is stored on the node and sent to other node (or client)
> page
>  by page.
> 
>  When lazy is enabled 

Re: [IMPORTANT] Future of Binary Objects

2018-11-23 Thread Vladimir Ozerov
Ok, let's agree on the fact that we would like to make schema change rules
less restrictive. But how less - is separate topic. Use case which annoys
me the most is DROP/ADD COLUMN commands.

On Thu, Nov 22, 2018 at 12:25 PM Sergi Vladykin 
wrote:

> If we are developing a product for users, we already guessing what is right
> and what is wrong for them. So let's avoid these sophistic statements.
>
> In the end it is always our responsibility to provide a balanced set of
> trade-offs between
> usability, performance and safety.
>
> Let me repeat, I'm not against any possible type conversions, but I'm
> strongly against binary incompatible ones.
> If we always store List.of(1) as 1 and make them binary interchangeable,
> I'm OK with that.
>
> And still for good practices I'd suggest to look at what Protobuf allows
> and what not:
> https://developers.google.com/protocol-buffers/docs/proto3#updating
>
> Sergi
>
> чт, 22 нояб. 2018 г. в 11:04, Vladimir Ozerov :
>
> > Sergi,
> >
> > I think we should not guess for users what is right or wrong for them. It
> > is up to user to decide what is valid. For example, consider a user who
> > operates on a list of Integers, and to optimize memory consumption he
> > decide to save in the same field either List, or plain Integer
> in
> > case only single element exists. Another example - a kind of data lake or
> > data cleansing application, which may receive the same field in different
> > forms. E.g. age in the form of Integer or String. Does it work for user
> or
> > not? We do not know. Will he need to migrate the whole data set? We do
> not
> > know either.
> >
> > The only place in the product where we case is SQL. But in this case
> > instead of adding checks on binary level, we should validate data on
> cache
> > level. In fact, Ignite already works this way. E.g. nullability checks
> are
> > performed on cache level rather than binary. All we need is to move all
> > checks to cache level from binary level.
> >
> >
> > On Thu, Nov 22, 2018 at 9:41 AM Sergi Vladykin  >
> > wrote:
> >
> > > It may be OK to extend compatible field types (like from Int to Long).
> > >
> > > In Protobuf for example this is allowed just because there is no
> > difference
> > > between Int and Long in binary format: they all are equally varlen
> > encoded
> > > and Longs just will occupy up to 9 bytes, while Ints up to 5.
> > >
> > > But for every other case, where binary representation is type
> dependent,
> > I
> > > would be against. This will either require to migrate the whole dataset
> > to
> > > a new model (which is always risky, since you may need to rollback to
> > > previous version of your code) or it will require type
> checks/conversions
> > > for each field access, which is a hard to reason complication and
> > possible
> > > performance penalty.
> > >
> > > Sergi
> > >
> > >
> > >
> > > чт, 22 нояб. 2018 г. в 09:23, Vladimir Ozerov :
> > >
> > > > Denis,
> > > >
> > > > Several examples:
> > > > 1) DEFAULT values - in SQL you may avoid storing default value in the
> > > table
> > > > and store it in metadata instead. Not applicable for BinaryObject
> > because
> > > > the same binary object may be saved to two SQL tables with different
> > > > defaults
> > > > 2) DATE and other temporal types - in SQL you want to store it in
> > special
> > > > format to be able to extract date parts quickly (typically - 11
> bytes).
> > > But
> > > > in Java and some other languages the best format is plain long. this
> is
> > > why
> > > > we use it BinaryObject
> > > > 3) String charset - in SQL you may choose different charsets for
> > > different
> > > > tables. E.g. UTF-8 for one, ASCII for another. In BinaryObject we
> store
> > > > everything in UTF-8, and this is fine for most cases, well ... except
> > of
> > > > SQL :-)
> > > >
> > > > The key thing here is that you cannot define a format which will be
> > good
> > > > for both SQL, and native API. They are very different. This is why I
> > > > propose to define additional interface on cache level defining how to
> > > store
> > > > values, which will be very different from binary objects.
> > > >
> > > > Vladimir.
> > > >
> > > > On Thu, Nov 22, 2018 at 3:32 AM Denis Magda 
> wrote:
> > > >
> > > > > Vladimir,
> > > > >
> > > > > Could you educate me a little bit, why the current format is bad
> for
> > > SQL
> > > > > and why another one is more suitable?
> > > > >
> > > > > Also, if we introduce the new format then why would we keep the
> > binary
> > > > one?
> > > > > Is the new format just a next version of the binary one.
> > > > >
> > > > > 2.3) Remove restrictions on changing field type
> > > > > > I do not know why we did that in the first place. This
> restriction
> > > > > prevents
> > > > > > type evolution and confuses users.
> > > > >
> > > > >
> > > > > That is a hot requirement shared by those who use Ignite SQL in
> > > > production.
> > > > > +1.
> > > > >
> > > > > --
> > > > > Denis
> > > > >
> > > > > On 

Re: Rename "cache group" to "tablespace"?

2018-11-23 Thread Vladimir Ozerov
Hi Ivan,

I do not have answers to some of your questions, as haven't designed
tablespaces for Ignite so far. This is common term used by many vendors
(Oracle, MySQL, MongoDB to name a few). Essentially, "tablespace" is how
data of certain objects are organized into files. Multiple tablespaces for
separate objects provides performance and management benefits. For example,
different sets of objects might be written to different disks on local
machine to improve throughput. Or writes to a single object (e.g. cache)
may be parallelized in the same way.

But in this topic I would prefer to avoid digging much into details. My
goal for now is to understand whether we can create a single concept which
will be applicable to both existing and future storage formats.

Vladimir.

On Fri, Nov 23, 2018 at 10:41 AM Павлухин Иван  wrote:

> Hi Vladimir,
>
> How do you see a default tablespace configuration in the "bright"
> future? Is it going to be a single file for an Ignite instance? In
> what cases will be there benefits to explicitly configure additional
> tablespaces?
> By the way was the name "tablespace" hand-crafted or it was it
> borrowed somewhere?
> Also if it is TABLEspace should it be aligned with renaming
> IgniteCache to IgniteTable discussed in [1]?
>
> [1]
> http://apache-ignite-developers.2346864.n4.nabble.com/Applicability-of-term-cache-to-Apache-Ignite-td36541.html
> вт, 20 нояб. 2018 г. в 10:57, Dmitriy Setrakyan :
> >
> > I really like the idea.
> >
> > On Mon, Nov 19, 2018, 23:45 Vladimir Ozerov  >
> > > Igniters,
> > >
> > > We had several discussion about cache groups [1]. Our current
> consensus is
> > > that this is not that good design decision - bad scan performance, no
> API.
> > > A kind of shortcut to solve memory consumption problems. For this
> reason we
> > > try to avoid exposing "cache group" to API when possible. Also we
> > > understand that current file-per-partition approach is not ideal
> either -
> > > when there are too many partitions we have to fsync a lot of files.
> And as
> > > an idea for "bright future" we consider tablespaces - one or several
> files
> > > where all database objects are stored in dedicated "segments", which
> are
> > > allocated in smaller units called "extents".
> > >
> > > I was thinking on how to "legalize" cache groups on API on the one hand
> > > (product needs them currently), and to let real tablespaces to appear
> in
> > > future. Idea is simple - treat cache group as special kind of
> tablespace.
> > > We may say that current storage organization is one type of
> tablespace, and
> > > proposed "file-segment-extent" storage organization is another type of
> > > tablespace.
> > >
> > > With this in mind we can configure tablespaces in IgniteConfiguration,
> then
> > > assign each cache a tablespace. As advanced tasks we may allow dynamic
> > > table space create/alter/drop, I'll show SQL examples below.
> > >
> > > // Interface
> > > interface Tablespace {
> > > String name();
> > > }
> > >
> > > // Current non-shared tablespace (aka "physical cache")
> > > class FilePerPartitionTablespace implements Tablespace {
> > > // ...
> > > }
> > >
> > > // Shared tablespace (aka "cache group") - note that now we have a
> legal
> > > place for cache group configuration:
> > > class FilePerPartitionSharedTablespace implements Tablespace {
> > > CacheMode cacheMode;
> > > CacheAtomicityMode cacheAtomicityMode;
> > > AffinityFunction affinityFunction;
> > > // + Other parameters from
> > > ClusterCachesInfo.validateCacheGroupConfiguration
> > > // + Some parameters from "DataRegionConfiguration" (e.g. paths)
> > > }
> > >
> > > // Future "real" tablespace
> > > class SegmentedTablespace implements Tablespace {
> > > // Whatever is needed.
> > > }
> > >
> > > // Cache configuration
> > > class CacheConfiguration {
> > > ...
> > > String tablespace;
> > >...
> > > }
> > >
> > > // Managing tablespaces from SQL:
> > > CREATE TABLESPACE my_tbs ENGINE=FILE_PER_PARTITION_SHARED
> > > CACHE_MODE=PARTITIONED BACKUPS=1
> > > ALTER TABLESPACE my_tbs ENCRYPTED=1
> > > CREATE TABLE my_table (...) TABLESPACE my_tbs
> > >
> > > What do you think?
> > >
> > > Vladimir.
> > >
> > > [1]
> > >
> > >
> http://apache-ignite-developers.2346864.n4.nabble.com/Remove-cache-groups-in-AI-3-0-td29184.html
> > >
>
>
>
> --
> Best regards,
> Ivan Pavlukhin
>


[GitHub] ignite pull request #5476: IGNITE-10323 Contol utility --deactivate on non-a...

2018-11-23 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/ignite/pull/5476


---


Re: [DISCUSSION] Design document. Rebalance caches by transferring partition files

2018-11-23 Thread Vladimir Ozerov
Maxim,

Do we have any analysis on where time is really spent during current
rebalance implementation? Proposed change may work very well. But it is
rather complex, doesn't help in-memory mode, and will not work for other
storage formats which we may potentially have in future (e.g. tablespace
approach). Another thing to consider is MVCC - under load partitions may
have a lot of entries which are not visible to anyone and is about to be
removed, so there is no need to transfer them at all.

Did we investigate any universal and less intrusive approaches to rebalance
speedup before that? For example:
- batched data block reads on supplier
- iteration over partition rather than cache data tree on supplier
- batched data save on demander
- delayed free list and index re-build in demander

Vladimir.

On Fri, Nov 23, 2018 at 1:08 PM Maxim Muzafarov  wrote:

> Igniters,
>
>
> I'd like to take the next step of increasing the Apache Ignite with
> enabled persistence rebalance speed. Currently, the rebalancing
> procedure doesn't utilize the network and storage device throughout to
> its full extent even with enough meaningful values of
> rebalanceThreadPoolSize property. As part of the previous discussion
> `How to make rebalance faster` [1] and IEP-16 [2] Ilya proposed an
> idea [3] of transferring cache partition files over the network.
> From my point, the case to which this type of rebalancing procedure
> can bring the most benefit – is adding a completely new node or set of
> new nodes to the cluster. Such a scenario implies fully relocation of
> cache partition files to the new node. To roughly estimate the
> superiority of partition file transmitting over the network the native
> Linux scp\rsync commands can be used. My test environment showed the
> result of the new approach as 270 MB/s vs the current 40 MB/s
> single-threaded rebalance speed.
>
>
> I've prepared the design document IEP-28 [4] and accumulated all the
> process details of a new rebalance approach on that page. Below you
> can find the most significant details of the new rebalance procedure
> and components of the Apache Ignite which are proposed to change.
>
> Any feedback is very appreciated.
>
>
> *PROCESS OVERVIEW*
>
> The whole process is described in terms of rebalancing single cache
> group and partition files would be rebalanced one-by-one:
>
> 1. The demander node sends the GridDhtPartitionDemandMessage to the
> supplier node;
> 2. When the supplier node receives GridDhtPartitionDemandMessage and
> starts the new checkpoint process;
> 3. The supplier node creates empty the temporary cache partition file
> with .tmp postfix in the same cache persistence directory;
> 4. The supplier node splits the whole cache partition file into
> virtual chunks of predefined size (multiply to the PageMemory size);
> 4.1. If the concurrent checkpoint thread determines the appropriate
> cache partition file chunk and tries to flush dirty page to the cache
> partition file
> 4.1.1. If rebalance chunk already transferred
> 4.1.1.1. Flush the dirty page to the file;
> 4.1.2. If rebalance chunk not transferred
> 4.1.2.1. Write this chunk to the temporary cache partition file;
> 4.1.2.2. Flush the dirty page to the file;
> 4.2. The node starts sending to the demander node each cache partition
> file chunk one by one using FileChannel#transferTo
> 4.2.1. If the current chunk was modified by checkpoint thread – read
> it from the temporary cache partition file;
> 4.2.2. If the current chunk is not touched – read it from the original
> cache partition file;
> 5. The demander node starts to listen to new pipe incoming connections
> from the supplier node on TcpCommunicationSpi;
> 6. The demander node creates the temporary cache partition file with
> .tmp postfix in the same cache persistence directory;
> 7. The demander node receives each cache partition file chunk one by one
> 7.1. The node checks CRC for each PageMemory in the downloaded chunk;
> 7.2. The node flushes the downloaded chunk at the appropriate cache
> partition file position;
> 8. When the demander node receives the whole cache partition file
> 8.1. The node initializes received .tmp file as its appropriate cache
> partition file;
> 8.2. Thread-per-partition begins to apply for data entries from the
> beginning of WAL-temporary storage;
> 8.3. All async operations corresponding to this partition file still
> write to the end of temporary WAL;
> 8.4. At the moment of WAL-temporary storage is ready to be empty
> 8.4.1. Start the first checkpoint;
> 8.4.2. Wait for the first checkpoint ends and own the cache partition;
> 8.4.3. All operations now are switched to the partition file instead
> of writing to the temporary WAL;
> 8.4.4. Schedule the temporary WAL storage deletion;
> 9. The supplier node deletes the temporary cache partition file;
>
>
> *COMPONENTS TO CHANGE*
>
> CommunicationSpi
>
> To benefit from zero copy we must delegate the file transferring to
> FileChannel#transferTo(long, long,

[GitHub] ignite pull request #5438: Tde with fixes

2018-11-23 Thread nizhikov
Github user nizhikov closed the pull request at:

https://github.com/apache/ignite/pull/5438


---


[jira] [Created] (IGNITE-10391) MVCC: Invoke request fails on backup while rebalance is in progress.

2018-11-23 Thread Andrew Mashenkov (JIRA)
Andrew Mashenkov created IGNITE-10391:
-

 Summary: MVCC: Invoke request fails on backup while rebalance is 
in progress.
 Key: IGNITE-10391
 URL: https://issues.apache.org/jira/browse/IGNITE-10391
 Project: Ignite
  Issue Type: Bug
  Components: mvcc
Reporter: Andrew Mashenkov
 Fix For: 2.8


Invoke request fails with Assertion on backup while rebalance is in progress.

Enlist request handler expects entry processor instead of value in case of 
Invoke operation,
but when rebalance is in progress we pass entry history to backup side. This 
causes assertion triggering.

We have to handle correctly this case and apply history and then entry 
processor.

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[GitHub] ignite pull request #5486: IGNITE-10390 Fixed BPlusTree#isEmpty

2018-11-23 Thread agoncharuk
GitHub user agoncharuk opened a pull request:

https://github.com/apache/ignite/pull/5486

IGNITE-10390 Fixed BPlusTree#isEmpty



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gridgain/apache-ignite ignite-10390

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/5486.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #5486


commit fc8ee6b42785d4da11d19df26d2314b43ea53845
Author: Alexey Goncharuk 
Date:   2018-11-23T10:07:42Z

IGNITE-10390 Fixed BPlusTree#isEmpty




---


[DISCUSSION] Design document. Rebalance caches by transferring partition files

2018-11-23 Thread Maxim Muzafarov
Igniters,


I'd like to take the next step of increasing the Apache Ignite with
enabled persistence rebalance speed. Currently, the rebalancing
procedure doesn't utilize the network and storage device throughout to
its full extent even with enough meaningful values of
rebalanceThreadPoolSize property. As part of the previous discussion
`How to make rebalance faster` [1] and IEP-16 [2] Ilya proposed an
idea [3] of transferring cache partition files over the network.
>From my point, the case to which this type of rebalancing procedure
can bring the most benefit – is adding a completely new node or set of
new nodes to the cluster. Such a scenario implies fully relocation of
cache partition files to the new node. To roughly estimate the
superiority of partition file transmitting over the network the native
Linux scp\rsync commands can be used. My test environment showed the
result of the new approach as 270 MB/s vs the current 40 MB/s
single-threaded rebalance speed.


I've prepared the design document IEP-28 [4] and accumulated all the
process details of a new rebalance approach on that page. Below you
can find the most significant details of the new rebalance procedure
and components of the Apache Ignite which are proposed to change.

Any feedback is very appreciated.


*PROCESS OVERVIEW*

The whole process is described in terms of rebalancing single cache
group and partition files would be rebalanced one-by-one:

1. The demander node sends the GridDhtPartitionDemandMessage to the
supplier node;
2. When the supplier node receives GridDhtPartitionDemandMessage and
starts the new checkpoint process;
3. The supplier node creates empty the temporary cache partition file
with .tmp postfix in the same cache persistence directory;
4. The supplier node splits the whole cache partition file into
virtual chunks of predefined size (multiply to the PageMemory size);
4.1. If the concurrent checkpoint thread determines the appropriate
cache partition file chunk and tries to flush dirty page to the cache
partition file
4.1.1. If rebalance chunk already transferred
4.1.1.1. Flush the dirty page to the file;
4.1.2. If rebalance chunk not transferred
4.1.2.1. Write this chunk to the temporary cache partition file;
4.1.2.2. Flush the dirty page to the file;
4.2. The node starts sending to the demander node each cache partition
file chunk one by one using FileChannel#transferTo
4.2.1. If the current chunk was modified by checkpoint thread – read
it from the temporary cache partition file;
4.2.2. If the current chunk is not touched – read it from the original
cache partition file;
5. The demander node starts to listen to new pipe incoming connections
from the supplier node on TcpCommunicationSpi;
6. The demander node creates the temporary cache partition file with
.tmp postfix in the same cache persistence directory;
7. The demander node receives each cache partition file chunk one by one
7.1. The node checks CRC for each PageMemory in the downloaded chunk;
7.2. The node flushes the downloaded chunk at the appropriate cache
partition file position;
8. When the demander node receives the whole cache partition file
8.1. The node initializes received .tmp file as its appropriate cache
partition file;
8.2. Thread-per-partition begins to apply for data entries from the
beginning of WAL-temporary storage;
8.3. All async operations corresponding to this partition file still
write to the end of temporary WAL;
8.4. At the moment of WAL-temporary storage is ready to be empty
8.4.1. Start the first checkpoint;
8.4.2. Wait for the first checkpoint ends and own the cache partition;
8.4.3. All operations now are switched to the partition file instead
of writing to the temporary WAL;
8.4.4. Schedule the temporary WAL storage deletion;
9. The supplier node deletes the temporary cache partition file;


*COMPONENTS TO CHANGE*

CommunicationSpi

To benefit from zero copy we must delegate the file transferring to
FileChannel#transferTo(long, long,
java.nio.channels.WritableByteChannel) because the fast path of
transferTo method is only executed if the destination buffer inherits
from an internal JDK class.

Preloader

A new implementation of cache entries preloader assume to be done. The
new implementation must send and receive cache partition files over
the CommunicationSpi channels by chunks of data with validation
received items. The new layer over the cache partition file must
support direct using of FileChannel#transferTo method over the
CommunicationSpi pipe connection. The connection bandwidth of the
cache partition file transfer must have the ability to be limited at
runtime.

Checkpointer

When the supplier node receives the cache partition file demand
request it will send the file over the CommunicationSpi. The cache
partition file can be concurrently updated by checkpoint thread during
its transmission. To guarantee the file consistency Сheckpointer must
use copy-on-write technique and save a copy of updated chunk into the
temporary 

[jira] [Created] (IGNITE-10390) BPlusTree#isEmpty() does not release root page

2018-11-23 Thread Alexey Goncharuk (JIRA)
Alexey Goncharuk created IGNITE-10390:
-

 Summary: BPlusTree#isEmpty() does not release root page
 Key: IGNITE-10390
 URL: https://issues.apache.org/jira/browse/IGNITE-10390
 Project: Ignite
  Issue Type: Bug
Reporter: Alexey Goncharuk






--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


Re: Brainstorm: Make TC Run All faster

2018-11-23 Thread Павлухин Иван
Hi,

I have some thoughts about tests speed. First of all I must say that I
do not see any simple and lightweight solution.

I did some measurements a while ago and it looks like that simply
optimizing number of Ignite node start/stop calls will not give us
great speed up. I naively measured [1] time spent in node start/stop
methods and for Cache 1 suite it turns out that only 2.5 minutes is
spent there when whole suite run is about 1 hour. But I made an
experiment only for Cache 1 suite and might have been not accurate
enough.

Moreover I thought about refactoring whole test base to employ some
faster patterns and it looks unfeasible to me to accomplish with it in
relatively short amount of time.

So, I can imagine a following approach. There are a lot of
load/concurrent tests, which executions are limited either by big
number of iterations (1000+) or by time (30 sec, 60 sec). In ideal
world I think there should not be such tests in Run All. If such tests
regularly catch bugs unnoticed by regular tests then a there are areas
which are not covered by regular (functional?) tests and missing tests
could be added. If such assumption holds then load/concurrent tests
should not less likely to fail if functional tests pass and therefore
could be extracted out of Run All. The real world is not ideal so we
can use a mentioned idea of significantly limiting load/concurrent
tests execution time to 5-10 seconds in Run All.

Of course there is a need to make an analysis to find all
load/concurrent tests and measure theirs execution time. I think we
could use some ML/Data analysis tools for that, could not we?

Some additional figures:
1. Number of tests in Run All ~ 50K.
2. Number of test methods in core module ~ 7500.

[1] https://github.com/apache/ignite/pull/5419/files
пн, 19 нояб. 2018 г. в 14:34, Павлухин Иван :
>
> Hi,
>
> I would like to understand following. We are going to make TC green.
> We are going to make TC fast. Are we going to do it in parallel?
> пн, 19 нояб. 2018 г. в 08:39, Petr Ivanov :
> >
> > Concerning current TeamCity compute capacity — I think we should invest 
> > into it’s stability at first: there are lots of problems associated with
> >  — tests hangs (which now can render agent useless up to 3 days)
> >  — checkout issues (speedup proxy is installed but sometimes even it is not 
> > enough for checkout on 100 agents simultaneously, server side checkout 
> > research is required)
> >  — tests architecture (current one relies heavily on large file movement 
> > over network which also can be a bottleneck in case of 100 agents 
> > simultaneous download start)
> > And so on.
> >
> > After it additional donation can be discussed.
> >
> > > On 16 Nov 2018, at 17:05, Vyacheslav Daradur  wrote:
> > >
> > > At one of the meetups, Vladimir Ozerov has said that we may specify
> > > and move less risky to be broken tests in separate build plan which
> > > will be executed daily or weekly
> > >
> > > For example tests of compatibility with different JDK versions or
> > > compatibility between Ignite's releases.
> > >
> > > Also, I agree with Denis we should find and remove tests with the same 
> > > checks.
> > >
> > > By the way, if someone of the community donates TC agents, can this
> > > help to reduce the time?
> > >
> > > On Thu, Nov 15, 2018 at 5:38 PM Yakov Zhdanov  wrote:
> > >>
> > >> Denis, you can go even further. E.g. you can start topology once for the
> > >> full set of single threaded full api cache tests. Each test should start
> > >> cache dynamically and run it logic.
> > >>
> > >> As for me, I would think of splitting RunAll to 2 steps - one containing
> > >> basic tests and another with more complex tests. 2nd step should not 
> > >> start
> > >> (except manually) if 1st step results in any build failure.
> > >>
> > >> --Yakov
> > >
> > >
> > >
> > > --
> > > Best Regards, Vyacheslav D.
> >
>
>
> --
> Best regards,
> Ivan Pavlukhin



-- 
Best regards,
Ivan Pavlukhin


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

2018-11-23 Thread oignatenko
Hi Dmitry,

You are right - these failures are expected to be muted, I updated Teamcity
to account for that.

regards, Oleg

PS. Readers interested in more details on that matter can find detailed
discussion in comments of JIRA ticket IGNITE-10174:
https://issues.apache.org/jira/browse/IGNITE-10174?focusedCommentId=16692971=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-16692971
"difference in how empty test classes are reported when tests are run..."
etc



--
Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/


[GitHub] ignite pull request #5485: IGNITE-10354 Failing client node due to not recei...

2018-11-23 Thread gromtech
GitHub user gromtech opened a pull request:

https://github.com/apache/ignite/pull/5485

IGNITE-10354 Failing client node due to not receiving metrics updates



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gridgain/apache-ignite ignite-10354

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/ignite/pull/5485.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #5485


commit 5032b5a546c38f9a1d34325bb7a7ea39c66e46e1
Author: Roman Guseinov 
Date:   2018-11-23T08:26:06Z

IGNITE-10354 Failing client node due to not receiving metrics updates




---


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

2018-11-23 Thread Dmitriy Pavlov
AFAIK It is expected failure as examples still not fixed.

Oleg Ignatenko, could you please mute tests failures?

пт, 23 нояб. 2018 г. в 04:55, :

> 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.
>
>  *Recently contributed test failed in master
> TaskExamplesMultiNodeSelfTest.initializationError
> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=-5917517976576215554=%3Cdefault%3E=testDetails
>
>  *Recently contributed test failed in master
> ClusterGroupExampleSelfTest.initializationError
> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=-878488338790165=%3Cdefault%3E=testDetails
>
>  *Recently contributed test failed in master
> MonteCarloExamplesMultiNodeSelfTest.initializationError
> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=-924688690363212384=%3Cdefault%3E=testDetails
>
>  *Recently contributed test failed in master
> ContinuationExamplesMultiNodeSelfTest.initializationError
> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=6047678023796560683=%3Cdefault%3E=testDetails
>
>  *Recently contributed test failed in master
> TaskExamplesSelfTest.initializationError
> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=-4133967790505792702=%3Cdefault%3E=testDetails
>
>  *Recently contributed test failed in master
> DeploymentExamplesMultiNodeSelfTest.initializationError
> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=-4750693290259760962=%3Cdefault%3E=testDetails
>
>  *Recently contributed test failed in master
> MonteCarloExamplesSelfTest.initializationError
> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=-1617259290883754314=%3Cdefault%3E=testDetails
>
>  *Recently contributed test failed in master
> MemcacheRestExamplesSelfTest.initializationError
> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=-4711279198236915182=%3Cdefault%3E=testDetails
>
>  *Recently contributed test failed in master
> ContinuationExamplesSelfTest.initializationError
> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=-6026321494486034735=%3Cdefault%3E=testDetails
>
>  *Recently contributed test failed in master
> ContinuousMapperExamplesSelfTest.initializationError
> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=4470984311852304089=%3Cdefault%3E=testDetails
>
>  *Recently contributed test failed in master
> LifecycleExamplesSelfTest.initializationError
> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=-4445737465195407541=%3Cdefault%3E=testDetails
>
>  *Recently contributed test failed in master
> IgfsExamplesSelfTest.initializationError
> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=8427106324084470669=%3Cdefault%3E=testDetails
>
>  *Recently contributed test failed in master
> DeploymentExamplesSelfTest.initializationError
> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=7397385867219657348=%3Cdefault%3E=testDetails
>
>  *Recently contributed test failed in master
> SpringBeanExamplesSelfTest.initializationError
> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=-3682540866846716810=%3Cdefault%3E=testDetails
>
>  *Recently contributed test failed in master
> CheckpointExamplesSelfTest.initializationError
> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=7331710564801133366=%3Cdefault%3E=testDetails
>
>  *Recently contributed test failed in master
> MemcacheRestExamplesMultiNodeSelfTest.initializationError
> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=-3180197102757276402=%3Cdefault%3E=testDetails
>
>  *Recently contributed test failed in master
> ContinuousMapperExamplesMultiNodeSelfTest.initializationError
> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=-592872012226723313=%3Cdefault%3E=testDetails
>  Changes may lead to failure were done by
>  - oignatenko
> https://ci.ignite.apache.org/viewModification.html?modId=840076
>  - oignatenko
> https://ci.ignite.apache.org/viewModification.html?modId=840109
>  - aplatonovv
> https://ci.ignite.apache.org/viewModification.html?modId=840074
>  - dmitrievanthony
> https://ci.ignite.apache.org/viewModification.html?modId=839867
>  - somefireone
> https://ci.ignite.apache.org/viewModification.html?modId=840132
>  - kondakov87
> 

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

2018-11-23 Thread Dmitriy Pavlov
These tests are still failing with issue reference.
 CacheMvccPartitionedBackupsTest.testBackupsCoherenceWithLargeOperations
https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=-7557959062889759280=%3Cdefault%3E=testDetails

  CacheMvccReplicatedBackupsTest.testBackupsCoherenceWithLargeOperations
https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=6825219049988632083=%3Cdefault%3E=testDetails


Is there any chance we can get this test fixed/muted?

Should I create one more instruction on how to mute test? or can we avoid
one more doc hoping JUnit4 will be available soon?

Vova, could you step in?

чт, 22 нояб. 2018 г. в 11:08, Dmitriy Pavlov :

> Hi Igor Seliverstov,
>
> I can see some test is failed with issue link
> https://issues.apache.org/jira/browse/IGNITE-10104
>
> Could you please mute test on TC as well?
>
> Sincerely,
> Dmitriy Pavlov
>
> чт, 22 нояб. 2018 г. в 07:21, :
>
>> 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 test failure in master
>> CacheMvccPartitionedBackupsTest.testBackupsCoherenceWithLargeOperations
>> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=-7557959062889759280=%3Cdefault%3E=testDetails
>>
>>  *New test failure in master
>> CacheMvccReplicatedBackupsTest.testBackupsCoherenceWithLargeOperations
>> https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=6825219049988632083=%3Cdefault%3E=testDetails
>>  Changes may lead to failure were done by
>>  - gvvinblade
>> https://ci.ignite.apache.org/viewModification.html?modId=839708
>>  - andrey.mashenkov
>> https://ci.ignite.apache.org/viewModification.html?modId=839694
>>  - pudov.max
>> https://ci.ignite.apache.org/viewModification.html?modId=839688
>>  - ivandasch
>> https://ci.ignite.apache.org/viewModification.html?modId=839748
>>  - dmitrievanthony
>> https://ci.ignite.apache.org/viewModification.html?modId=839684
>>  - jokserfn
>> https://ci.ignite.apache.org/viewModification.html?modId=839734
>>
>>  - 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 07:21:40 22-11-2018
>>
>


[jira] [Created] (IGNITE-10389) Getting affinity for topology version earlier than affinity is calculated

2018-11-23 Thread Arnaud Rivero (JIRA)
Arnaud Rivero created IGNITE-10389:
--

 Summary: Getting affinity for topology version earlier than 
affinity is calculated
 Key: IGNITE-10389
 URL: https://issues.apache.org/jira/browse/IGNITE-10389
 Project: Ignite
  Issue Type: Bug
Affects Versions: 2.6
Reporter: Arnaud Rivero


When we deploy a new Ignite cluster on YARN and we deploy an Ignite service at 
the same time (by configuring it in the xml configuration file et putting it in 
the IGNITE_USERS_LIBS path), we get the following exception (the service name 
was replaced by XX): 

 

 
{code:java}
[14:48:42,004][SEVERE][srvc-deploy-#144][GridServiceProcessor] Error when 
executing service: XX
java.lang.IllegalStateException: Getting affinity for topology version earlier 
than affinity is calculated [locNode=TcpDiscoveryNode 
[id=fd770768-189d-4374-82af-2497eff173da, addrs=[127.0.0.1, 127.0.0.3, 
172.19.153.13, 172.19.154.13, 172.23.207.13, 192.168.5.1], 
sockAddrs=[bt1shujx.bpa.bouyguestelecom.fr/172.23.207.13:47500, 
/192.168.5.1:47500, /127.0.0.1:47500, 
bt1shujxg2.bpa.bouyguestelecom.fr/172.19.154.13:47500, 
bt1shujxg1.bpa.bouyguestelecom.fr/172.19.153.13:47500, /127.0.0.3:47500], 
discPort=47500, order=1, intOrder=1, lastExchangeTime=1542894520229, loc=true, 
ver=2.6.0#20180710-sha1:669feacc, isClient=false], grp=ignite-sys-cache, 
topVer=AffinityTopologyVersion [topVer=2, minorTopVer=0], 
head=AffinityTopologyVersion [topVer=4, minorTopVer=1], 
history=[AffinityTopologyVersion [topVer=1, minorTopVer=0], 
AffinityTopologyVersion [topVer=4, minorTopVer=0], AffinityTopologyVersion 
[topVer=4, minorTopVer=1]]]
at 
org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache.cachedAffinity(GridAffinityAssignmentCache.java:632)
at 
org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache.nodes(GridAffinityAssignmentCache.java:532)
at 
org.apache.ignite.internal.processors.cache.GridCacheAffinityManager.nodesByPartition(GridCacheAffinityManager.java:225)
at 
org.apache.ignite.internal.processors.cache.GridCacheAffinityManager.primaryByPartition(GridCacheAffinityManager.java:261)
at 
org.apache.ignite.internal.processors.cache.GridCacheAffinityManager.primaryByKey(GridCacheAffinityManager.java:252)
at 
org.apache.ignite.internal.processors.cache.GridCacheAffinityManager.primaryByKey(GridCacheAffinityManager.java:276)
at 
org.apache.ignite.internal.processors.service.GridServiceProcessor$TopologyListener$1.run0(GridServiceProcessor.java:1828)
at 
org.apache.ignite.internal.processors.service.GridServiceProcessor$DepRunnable.run(GridServiceProcessor.java:2015)
at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

{code}
 

We found this previous issue and we wondered if we didn't meet an edge case of 
it : 

[IGNITE-1171|https://issues.apache.org/jira/browse/IGNITE-1171]

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


Historical rebalance

2018-11-23 Thread Seliverstov Igor
Hi Igniters,

Currently I’m working on possible approaches how to implement historical 
rebalance (delta rebalance using WAL iterator) over MVCC caches.

The main difficulty is that MVCC writes changes on tx active phase while 
partition update version, aka update counter, is being applied on tx finish. 
This means we cannot start iteration over WAL right from the pointer where the 
update counter updated, but should include updates, which the transaction that 
updated the counter did.

These updates may be much earlier than the point where the update counter was 
updated, so we have to be able to identify the point where the first update 
happened.

The proposed approach includes:

1) preserve list of active txs, sorted by the time of their first update (using 
WAL ptr of first WAL record in tx)

2) persist this list on each checkpoint (together with TxLog for example)

4) send whole active tx list (transactions which were in active state at the 
time the node was crushed, empty list in case of graceful node stop) as a part 
of partition demand message.

4) find a checkpoint where the earliest tx exists in persisted txs and use 
saved WAL ptr as a start point or apply current approach in case the active tx 
list (sent on previous step) is empty

5) start iteration.

Your thoughts?

Regards,
Igor