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

2019-08-08 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. 

 *Recently contributed test failed in master 
IgniteNodeStoppedDuringDisableWALTest.test[AFTER_DISABLE_WAL] 
https://ci.ignite.apache.org/project.html?projectId=IgniteTests24Java8=-4415134685125470652=%3Cdefault%3E=testDetails
 Changes may lead to failure were done by 
 - dmitriy govorukhin  
https://ci.ignite.apache.org/viewModification.html?modId=889238

 - 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:03:39 09-08-2019 


SQL query timeout: in progress or abandoned

2019-08-08 Thread Denis Magda
Hey Saikat,

Are you still working on this ticket?
https://issues.apache.org/jira/browse/IGNITE-7285

Seems that's the last API that doesn't support timeouts - JDBC and ODBC
drivers already go with it.

If you don't have time to complete the changes then someone else from the
community can take over. We see a lot of demand for this API and here is
one example:
https://stackoverflow.com/questions/57275301/how-to-set-a-query-timeout-for-apache-ignite-cache

-
Denis


Re: Ignite commits atomicity & GG tickets

2019-08-08 Thread Dmitriy Pavlov
Ok, thank you.

I forgot to mention atomicity. I discourage contributors from so-called
bulk commits when several unrelated changes are merged into one commit. In
case of any issues, it is not possible to find out reasons why it was
changed, it is not possible to easily revert.

чт, 8 авг. 2019 г. в 23:58, Denis Magda :

> >
> > Do you find the presence of GG's tickets in the commit is a reason for
> > revert?
>
>
> No, GG employees just need to follow "commit messages" guidelines removing
> GG-specific details from the messages.
>
>
>
> -
> Denis
>
>
> On Thu, Aug 8, 2019 at 1:52 PM Dmitriy Pavlov  wrote:
>
> > Hi Igniters,
> >
> > I little bit upset because I sometimes find GG tickets mentioned in
> Ignite
> > source code as a reason for Ignoring tests, todos, etc.
> >
> > I am personally grateful to all GG's employes for contributing to Ignite
> > code base.
> >
> > I just want to some accuracy for commits provided to Ignite community, it
> > should contain ONLY tickets which is available to all members.
> >
> > Do you find the presence of GG's tickets in the commit is a reason for
> > revert?
> >
> > Sincerely,
> > Dmitriy Pavlov
> >
>


Re: Ignite commits atomicity & GG tickets

2019-08-08 Thread Denis Magda
>
> Do you find the presence of GG's tickets in the commit is a reason for
> revert?


No, GG employees just need to follow "commit messages" guidelines removing
GG-specific details from the messages.



-
Denis


On Thu, Aug 8, 2019 at 1:52 PM Dmitriy Pavlov  wrote:

> Hi Igniters,
>
> I little bit upset because I sometimes find GG tickets mentioned in Ignite
> source code as a reason for Ignoring tests, todos, etc.
>
> I am personally grateful to all GG's employes for contributing to Ignite
> code base.
>
> I just want to some accuracy for commits provided to Ignite community, it
> should contain ONLY tickets which is available to all members.
>
> Do you find the presence of GG's tickets in the commit is a reason for
> revert?
>
> Sincerely,
> Dmitriy Pavlov
>


Re: Apache Ignite 2.7.6 (Time, Scope, and Release manager)

2019-08-08 Thread Dmitriy Pavlov
Hi Denis, sure, we can include. Just one point, a wider scope can move very
optimistic dates from the first letter little bit forward.

But since Apache communities are about solutions made without time bounds,
it is perfectly ok for me.

чт, 8 авг. 2019 г. в 22:46, Raymond Wilson :

> +1 for IGNITE-10451
>
> Thanks,
> Raymond.
>
> Sent from my iPhone
>
> > On 9/08/2019, at 5:40 AM, Dmitriy Pavlov  wrote:
> >
> > Hi Ivan, Ilya, Igniters,
> >
> >
> >
> > I would like this release would be as minimal as possible.
> >
> >
> >
> > According to dates proposed we could freeze scope at 12.08, 4 days is
> more
> > than enough to stand up and say, ‘Hey, I have an urgent fix’. But it is
> > also ok for me if we decide to have more relaxed dates.
> >
> >
> >
> > For now, I suppose the following fixed should be cherry-picked:
> >
> > https://issues.apache.org/jira/browse/IGNITE-11767 (Blocker)
> > GridDhtPartitionsFullMessage retains huge maps on heap in exchange
> history
> >
> >
> >
> > https://issues.apache.org/jira/browse/IGNITE-10451 (Major Bug) .NET:
> > Persistence does not work with custom affinity function
> >
> >
> >
> > https://issues.apache.org/jira/browse/IGNITE-9562 (Critical Bug)
> Destroyed
> > cache that resurrected on an old offline node breaks PME
> >
> >
> >
> > But I will continue to research JIRA.
> >
> >
> >
> > Sincerely,
> >
> > Dmitriy Pavlov
> >
> >
> > чт, 8 авг. 2019 г. в 17:30, Павлухин Иван :
> >
> >>> What's the scope for this release?
> >>
> >> Same question.
> >>
> >> On the other hand an idea of 2.7.6 release attracts me because having
> >> a practice of doing frequent minor releases can help us to build
> >> reliable and predictable release rails.
> >>
> >> чт, 8 авг. 2019 г. в 15:09, Ilya Kasnacheev  >:
> >>>
> >>> Hello!
> >>>
> >>> What's the scope for this release?
> >>>
> >>> Regards,
> >>> --
> >>> Ilya Kasnacheev
> >>>
> >>>
> >>> чт, 8 авг. 2019 г. в 15:07, Dmitriy Pavlov :
> >>>
>  Hi Apache Ignite Developers,
> 
> 
> 
>  We seem to be on the same page about 2.8 release, but we’ve started
> new
>  practice - minor releases, the first release was 2.7.5. Unfortunately,
>  there is a couple of issues still not fixed in that release, so I
> would
>  like to propose to prepare one more minor release for Apache Ignite.
> 
> 
> 
>  I propose my candidacy to be release manager once again.
> 
> 
> 
>  I could (of course with help from Peter Ivanov) do some additional
> >> efforts
>  to complete and improve process doc
>  https://cwiki.apache.org/confluence/display/IGNITE/Release+Process
> 
> 
> 
>  I propose (most optimistic) dates for release stages:
> 
>  Scope Freeze: August 12, 2019
> 
>  Code Freeze: August 15, 2019
> 
>  Voting Date: August 22, 2019
> 
>  Release Date: August 27, 2019
> 
> 
>  WDYT?
> 
> 
>  If nobody minds, I will create branch 2.7.6 based on 2.7.5 and set up
> >> in
>  the TC Bot during the weekend.
> 
> 
> 
>  Sincerely,
> 
>  Dmitriy Pavlov
> 
> >>
> >>
> >>
> >> --
> >> Best regards,
> >> Ivan Pavlukhin
> >>
>


Ignite commits atomicity & GG tickets

2019-08-08 Thread Dmitriy Pavlov
Hi Igniters,

I little bit upset because I sometimes find GG tickets mentioned in Ignite
source code as a reason for Ignoring tests, todos, etc.

I am personally grateful to all GG's employes for contributing to Ignite
code base.

I just want to some accuracy for commits provided to Ignite community, it
should contain ONLY tickets which is available to all members.

Do you find the presence of GG's tickets in the commit is a reason for
revert?

Sincerely,
Dmitriy Pavlov


Re: Apache Ignite 2.7.6 (Time, Scope, and Release manager)

2019-08-08 Thread Raymond Wilson
+1 for IGNITE-10451

Thanks,
Raymond.

Sent from my iPhone

> On 9/08/2019, at 5:40 AM, Dmitriy Pavlov  wrote:
>
> Hi Ivan, Ilya, Igniters,
>
>
>
> I would like this release would be as minimal as possible.
>
>
>
> According to dates proposed we could freeze scope at 12.08, 4 days is more
> than enough to stand up and say, ‘Hey, I have an urgent fix’. But it is
> also ok for me if we decide to have more relaxed dates.
>
>
>
> For now, I suppose the following fixed should be cherry-picked:
>
> https://issues.apache.org/jira/browse/IGNITE-11767 (Blocker)
> GridDhtPartitionsFullMessage retains huge maps on heap in exchange history
>
>
>
> https://issues.apache.org/jira/browse/IGNITE-10451 (Major Bug) .NET:
> Persistence does not work with custom affinity function
>
>
>
> https://issues.apache.org/jira/browse/IGNITE-9562 (Critical Bug) Destroyed
> cache that resurrected on an old offline node breaks PME
>
>
>
> But I will continue to research JIRA.
>
>
>
> Sincerely,
>
> Dmitriy Pavlov
>
>
> чт, 8 авг. 2019 г. в 17:30, Павлухин Иван :
>
>>> What's the scope for this release?
>>
>> Same question.
>>
>> On the other hand an idea of 2.7.6 release attracts me because having
>> a practice of doing frequent minor releases can help us to build
>> reliable and predictable release rails.
>>
>> чт, 8 авг. 2019 г. в 15:09, Ilya Kasnacheev :
>>>
>>> Hello!
>>>
>>> What's the scope for this release?
>>>
>>> Regards,
>>> --
>>> Ilya Kasnacheev
>>>
>>>
>>> чт, 8 авг. 2019 г. в 15:07, Dmitriy Pavlov :
>>>
 Hi Apache Ignite Developers,



 We seem to be on the same page about 2.8 release, but we’ve started new
 practice - minor releases, the first release was 2.7.5. Unfortunately,
 there is a couple of issues still not fixed in that release, so I would
 like to propose to prepare one more minor release for Apache Ignite.



 I propose my candidacy to be release manager once again.



 I could (of course with help from Peter Ivanov) do some additional
>> efforts
 to complete and improve process doc
 https://cwiki.apache.org/confluence/display/IGNITE/Release+Process



 I propose (most optimistic) dates for release stages:

 Scope Freeze: August 12, 2019

 Code Freeze: August 15, 2019

 Voting Date: August 22, 2019

 Release Date: August 27, 2019


 WDYT?


 If nobody minds, I will create branch 2.7.6 based on 2.7.5 and set up
>> in
 the TC Bot during the weekend.



 Sincerely,

 Dmitriy Pavlov

>>
>>
>>
>> --
>> Best regards,
>> Ivan Pavlukhin
>>


Re: Apache Ignite 2.7.6 (Time, Scope, and Release manager)

2019-08-08 Thread Denis Magda
Dmitry,

Please add this BTree corruption fix to the scope:
https://issues.apache.org/jira/browse/IGNITE-11953

Plus, I would upgrade our Spark integration to version 2.4 as long as 2.3
goes with limitations reported by our users:
https://issues.apache.org/jira/browse/IGNITE-12054

Nickolay, could you check if that's a quick upgrade?

-
Denis


On Thu, Aug 8, 2019 at 10:40 AM Dmitriy Pavlov  wrote:

> Hi Ivan, Ilya, Igniters,
>
>
>
> I would like this release would be as minimal as possible.
>
>
>
> According to dates proposed we could freeze scope at 12.08, 4 days is more
> than enough to stand up and say, ‘Hey, I have an urgent fix’. But it is
> also ok for me if we decide to have more relaxed dates.
>
>
>
> For now, I suppose the following fixed should be cherry-picked:
>
> https://issues.apache.org/jira/browse/IGNITE-11767 (Blocker)
> GridDhtPartitionsFullMessage retains huge maps on heap in exchange history
>
>
>
> https://issues.apache.org/jira/browse/IGNITE-10451 (Major Bug) .NET:
> Persistence does not work with custom affinity function
>
>
>
> https://issues.apache.org/jira/browse/IGNITE-9562 (Critical Bug) Destroyed
> cache that resurrected on an old offline node breaks PME
>
>
>
> But I will continue to research JIRA.
>
>
>
> Sincerely,
>
> Dmitriy Pavlov
>
>
> чт, 8 авг. 2019 г. в 17:30, Павлухин Иван :
>
> > > What's the scope for this release?
> >
> > Same question.
> >
> > On the other hand an idea of 2.7.6 release attracts me because having
> > a practice of doing frequent minor releases can help us to build
> > reliable and predictable release rails.
> >
> > чт, 8 авг. 2019 г. в 15:09, Ilya Kasnacheev :
> > >
> > > Hello!
> > >
> > > What's the scope for this release?
> > >
> > > Regards,
> > > --
> > > Ilya Kasnacheev
> > >
> > >
> > > чт, 8 авг. 2019 г. в 15:07, Dmitriy Pavlov :
> > >
> > > > Hi Apache Ignite Developers,
> > > >
> > > >
> > > >
> > > > We seem to be on the same page about 2.8 release, but we’ve started
> new
> > > > practice - minor releases, the first release was 2.7.5.
> Unfortunately,
> > > > there is a couple of issues still not fixed in that release, so I
> would
> > > > like to propose to prepare one more minor release for Apache Ignite.
> > > >
> > > >
> > > >
> > > > I propose my candidacy to be release manager once again.
> > > >
> > > >
> > > >
> > > > I could (of course with help from Peter Ivanov) do some additional
> > efforts
> > > > to complete and improve process doc
> > > > https://cwiki.apache.org/confluence/display/IGNITE/Release+Process
> > > >
> > > >
> > > >
> > > > I propose (most optimistic) dates for release stages:
> > > >
> > > > Scope Freeze: August 12, 2019
> > > >
> > > > Code Freeze: August 15, 2019
> > > >
> > > > Voting Date: August 22, 2019
> > > >
> > > > Release Date: August 27, 2019
> > > >
> > > >
> > > > WDYT?
> > > >
> > > >
> > > > If nobody minds, I will create branch 2.7.6 based on 2.7.5 and set up
> > in
> > > > the TC Bot during the weekend.
> > > >
> > > >
> > > >
> > > > Sincerely,
> > > >
> > > > Dmitriy Pavlov
> > > >
> >
> >
> >
> > --
> > Best regards,
> > Ivan Pavlukhin
> >
>


[jira] [Created] (IGNITE-12054) Upgrade Spark module to 2.4

2019-08-08 Thread Denis Magda (JIRA)
Denis Magda created IGNITE-12054:


 Summary: Upgrade Spark module to 2.4
 Key: IGNITE-12054
 URL: https://issues.apache.org/jira/browse/IGNITE-12054
 Project: Ignite
  Issue Type: Task
  Components: spark
Affects Versions: 2.7.5
Reporter: Denis Magda
 Fix For: 2.7.6


Users can't use APIs that are already available in Spark 2.4:
https://stackoverflow.com/questions/57392143/persisting-spark-dataframe-to-ignite

Let's upgrade Spark from 2.3 to 2.4 until we extract the Spark Integration as a 
separate module that can support multiple Spark versions.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


Re: Apache Ignite 2.7.6 (Time, Scope, and Release manager)

2019-08-08 Thread Dmitriy Pavlov
Hi Ivan, Ilya, Igniters,



I would like this release would be as minimal as possible.



According to dates proposed we could freeze scope at 12.08, 4 days is more
than enough to stand up and say, ‘Hey, I have an urgent fix’. But it is
also ok for me if we decide to have more relaxed dates.



For now, I suppose the following fixed should be cherry-picked:

https://issues.apache.org/jira/browse/IGNITE-11767 (Blocker)
GridDhtPartitionsFullMessage retains huge maps on heap in exchange history



https://issues.apache.org/jira/browse/IGNITE-10451 (Major Bug) .NET:
Persistence does not work with custom affinity function



https://issues.apache.org/jira/browse/IGNITE-9562 (Critical Bug) Destroyed
cache that resurrected on an old offline node breaks PME



But I will continue to research JIRA.



Sincerely,

Dmitriy Pavlov


чт, 8 авг. 2019 г. в 17:30, Павлухин Иван :

> > What's the scope for this release?
>
> Same question.
>
> On the other hand an idea of 2.7.6 release attracts me because having
> a practice of doing frequent minor releases can help us to build
> reliable and predictable release rails.
>
> чт, 8 авг. 2019 г. в 15:09, Ilya Kasnacheev :
> >
> > Hello!
> >
> > What's the scope for this release?
> >
> > Regards,
> > --
> > Ilya Kasnacheev
> >
> >
> > чт, 8 авг. 2019 г. в 15:07, Dmitriy Pavlov :
> >
> > > Hi Apache Ignite Developers,
> > >
> > >
> > >
> > > We seem to be on the same page about 2.8 release, but we’ve started new
> > > practice - minor releases, the first release was 2.7.5. Unfortunately,
> > > there is a couple of issues still not fixed in that release, so I would
> > > like to propose to prepare one more minor release for Apache Ignite.
> > >
> > >
> > >
> > > I propose my candidacy to be release manager once again.
> > >
> > >
> > >
> > > I could (of course with help from Peter Ivanov) do some additional
> efforts
> > > to complete and improve process doc
> > > https://cwiki.apache.org/confluence/display/IGNITE/Release+Process
> > >
> > >
> > >
> > > I propose (most optimistic) dates for release stages:
> > >
> > > Scope Freeze: August 12, 2019
> > >
> > > Code Freeze: August 15, 2019
> > >
> > > Voting Date: August 22, 2019
> > >
> > > Release Date: August 27, 2019
> > >
> > >
> > > WDYT?
> > >
> > >
> > > If nobody minds, I will create branch 2.7.6 based on 2.7.5 and set up
> in
> > > the TC Bot during the weekend.
> > >
> > >
> > >
> > > Sincerely,
> > >
> > > Dmitriy Pavlov
> > >
>
>
>
> --
> Best regards,
> Ivan Pavlukhin
>


Re: Coding guidelines. Useless JavaDoc comments.

2019-08-08 Thread Pavel Kovalenko
I can agree that some part of javadocs we have is useless. It relates to
DTOs, getters/setters without side-effects, short self-descriptive methods.
In an ideal world, proper modularization of architecture, leading to
KISS/SOLID/DRY/etc. principles, writing self-documented code should result
in javadocs disappearing, as they become not needed.
We live in a not ideal world. We don't have good architecture and can't
always lead to mentioned principles, because we need sometimes sacrifice
readability for optimization, fixing a critical bug, etc.
I think that API of our core internal things like PageMemory, WAL, all
existing managers and processors should be as well documented as possible.
If a developer uses some module / manager / processor without looking
inside, reading the only description of public methods, it's a good sign
that this part of the functionality is well documented.
Internal implementation should be also clear for a developer who likes to
make a change inside it. Every optimization, avoiding race-condition, not
obvious thing and especially crutch must be documented as detailed as
possible.
Documentation should be a result of a proper code review. If a reviewer has
questions regarding any code line it should be either refactored to make
this thing obvious or well documented.
If a class or method is self-documented and obvious there is no need to
document it anyway.
if each person takes the code review as seriously as possible,
documentation and code will be better automatically.
Mandatory documentation in places where it's really not needed looks like a
burden. A developer will avoid write it properly everywhere or do it "just
for check" and this will influence on documentation with the negative side.
Flexible approach with mandatory / optional javadocs with good code review
will result in readability improvement overall.


чт, 8 авг. 2019 г. в 17:52, Maxim Muzafarov :

> Ivan,
>
> It is not a problem to check Javadocs at the moment code syle checking
> performed, but do we really need this? And the human-factor you
> mentioned above is also related to the `self-descriptive` names. I
> assume, that someone now is desiring to use single-letter variables
> and single-letter class names to save space an time. We will always
> have such an opinion race.
>
> I'd prefer to leave the current situation with Javadoc as it is and
> just to ask to apply the patch [1][2]. Can you? :-)
>
> [1] https://issues.apache.org/jira/browse/IGNITE-12051
> [2] https://github.com/apache/ignite/pull/6760
>
> On Thu, 8 Aug 2019 at 17:24, Павлухин Иван  wrote:
> >
> > Maxim,
> >
> > My main concern here is a human factor. Humans are usually not so good
> > in keeping documentation always in sync with a code. Examples from an
> > actual PR:
> > /**
> > * @param nodeId The remote node id.
> > * @param channel The channel to notify listeners with.
> > */
> > private void onChannelOpened0(UUID nodeId, GridIoMessage initMsg,
> > Channel channel)
> >
> > First, there is a mismatch between number of parameters in javadoc and
> > code. Second, e.g. nodeId name can be made self-descriptive rmtNodeId
> > name.
> >
> > Mandatory javadocs do not imply good javadocs. Good javadocs do not
> > imply javadocs for every method and field. For me, mandatory and good
> > javadocs are like communism. Sounds quite nice in theory, but not
> > feasible in practice.
> >
> > чт, 8 авг. 2019 г. в 16:55, Denis Garus :
> > >
> > > Thank you, Maxim.
> > >
> > > >>On what we are trying to save by making Javadoc optional?
> > >
> > > Space and time.
> > >
> > > I doubt that we need a verbal description of what private method make.
> > > Why we need it if we just can read the code?
> > >
> > > Bright examples:
> > >
> > > /**
> > > * @param helper Helper to attach to kernal context.
> > > */
> > > private void addHelper(Object helper) {
> > > ctx.addHelper(helper);
> > > }
> > >
> > > /**
> > > * Gets "on" or "off" string for given boolean value.
> > > *
> > > * @param b Boolean value to convert.
> > > * @return Result string.
> > > */
> > > private String onOff(boolean b) {
> > > return b ? "on" : "off";
> > > }
> > >
> > > You have to support both code of method and their JavaDoc description,
> but
> > > it doesn't get any sake.
> > >
> > > >>Let's just help them to read the source code.
> > >
> > > But at the same time, public method IgniteKernal#start doesn't have any
> > > description except enumeration of attributes with apparent notes.
> > > Maybe to give it a verbal description needs one or two pages of the
> screen.
> > > Does it make sense?
> > >
> > > чт, 8 авг. 2019 г. в 15:41, Maxim Muzafarov :
> > >
> > > > Igniters,
> > > >
> > > > I'm -1 with making Javadoc optional (except tests).
> > > >
> > > > Here is my patch [1] with PR [2] which fixes all the Javadoc comments
> > > > for the IgniteKernal class mentioned above. Please, take a look. The
> > > > review is very appreciated.
> > > >
> > > > On what we are trying to save by 

Re: Coding guidelines. Useless JavaDoc comments.

2019-08-08 Thread Garrett Alley
Hello Igniters,

[A quick introduction: My name is Garrett and I manage documentation at
GridGain. I'm relatively new here — I've been at GridGain for 4 months —
but I've been in Documentation for most of my career.]

I put together some _proposed_ guidelines for Javadocs as a starting point
for us to discuss, *modify*, and hopefully eventually adopt.

These are based on what I've seen succeed at other companies/on the
internet:

https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=123900577

For me, the reason I prefer optional comments is that I don't want users to
have to wade through the obvious stuff to find the useful/insightful
information. If we can reduce the amount of comments, but still retain the
useful information, the readers will be rewarded.

Thanks!

===

Garrett Alley
Documentation
GridGain Systems


On Thu, Aug 8, 2019 at 7:52 AM Maxim Muzafarov  wrote:

> Ivan,
>
> It is not a problem to check Javadocs at the moment code syle checking
> performed, but do we really need this? And the human-factor you
> mentioned above is also related to the `self-descriptive` names. I
> assume, that someone now is desiring to use single-letter variables
> and single-letter class names to save space an time. We will always
> have such an opinion race.
>
> I'd prefer to leave the current situation with Javadoc as it is and
> just to ask to apply the patch [1][2]. Can you? :-)
>
> [1] https://issues.apache.org/jira/browse/IGNITE-12051
> [2] https://github.com/apache/ignite/pull/6760
>
> On Thu, 8 Aug 2019 at 17:24, Павлухин Иван  wrote:
> >
> > Maxim,
> >
> > My main concern here is a human factor. Humans are usually not so good
> > in keeping documentation always in sync with a code. Examples from an
> > actual PR:
> > /**
> > * @param nodeId The remote node id.
> > * @param channel The channel to notify listeners with.
> > */
> > private void onChannelOpened0(UUID nodeId, GridIoMessage initMsg,
> > Channel channel)
> >
> > First, there is a mismatch between number of parameters in javadoc and
> > code. Second, e.g. nodeId name can be made self-descriptive rmtNodeId
> > name.
> >
> > Mandatory javadocs do not imply good javadocs. Good javadocs do not
> > imply javadocs for every method and field. For me, mandatory and good
> > javadocs are like communism. Sounds quite nice in theory, but not
> > feasible in practice.
> >
> > чт, 8 авг. 2019 г. в 16:55, Denis Garus :
> > >
> > > Thank you, Maxim.
> > >
> > > >>On what we are trying to save by making Javadoc optional?
> > >
> > > Space and time.
> > >
> > > I doubt that we need a verbal description of what private method make.
> > > Why we need it if we just can read the code?
> > >
> > > Bright examples:
> > >
> > > /**
> > > * @param helper Helper to attach to kernal context.
> > > */
> > > private void addHelper(Object helper) {
> > > ctx.addHelper(helper);
> > > }
> > >
> > > /**
> > > * Gets "on" or "off" string for given boolean value.
> > > *
> > > * @param b Boolean value to convert.
> > > * @return Result string.
> > > */
> > > private String onOff(boolean b) {
> > > return b ? "on" : "off";
> > > }
> > >
> > > You have to support both code of method and their JavaDoc description,
> but
> > > it doesn't get any sake.
> > >
> > > >>Let's just help them to read the source code.
> > >
> > > But at the same time, public method IgniteKernal#start doesn't have any
> > > description except enumeration of attributes with apparent notes.
> > > Maybe to give it a verbal description needs one or two pages of the
> screen.
> > > Does it make sense?
> > >
> > > чт, 8 авг. 2019 г. в 15:41, Maxim Muzafarov :
> > >
> > > > Igniters,
> > > >
> > > > I'm -1 with making Javadoc optional (except tests).
> > > >
> > > > Here is my patch [1] with PR [2] which fixes all the Javadoc comments
> > > > for the IgniteKernal class mentioned above. Please, take a look. The
> > > > review is very appreciated.
> > > >
> > > > On what we are trying to save by making Javadoc optional? In my
> humble
> > > > opinion - Javadoc comments are mostly concern users who debug the
> > > > Ignite when they have faced with some unhandled exception or related
> > > > to the community members with an average involvement (produces a few
> > > > small patches during the year) but not to the experienced one. Let's
> > > > just help them to read the source code.
> > > >
> > > > [1] https://issues.apache.org/jira/browse/IGNITE-12051
> > > > [2] https://github.com/apache/ignite/pull/6760
> > > >
> > > >
> > > >
> > > > On Wed, 7 Aug 2019 at 13:54, Andrey Kuznetsov 
> wrote:
> > > > >
> > > > > +1 for making javadoc comments optional.
> > > > >
> > > > > - Empty and tautological comments are kind of garbage that reduce
> > > > > readability.
> > > > > - It's better to leave the entity undocumented, than write
> > > > > unexpressive/misleading comment.
> > > > > - Even classes may not require javadocs, e.g. simple DTOs.
> > > > >
> > > > > ср, 7 авг. 2019 г., 13:39 Denis Garus :
> > 

[jira] [Created] (IGNITE-12053) Total time threads parked if checkpoint throttling occurred

2019-08-08 Thread Maxim Muzafarov (JIRA)
Maxim Muzafarov created IGNITE-12053:


 Summary: Total time threads parked if checkpoint throttling 
occurred
 Key: IGNITE-12053
 URL: https://issues.apache.org/jira/browse/IGNITE-12053
 Project: Ignite
  Issue Type: Improvement
Reporter: Maxim Muzafarov
 Fix For: 2.8


Currently, threads that generate dirty pages during an ongoing checkpoint are 
throttled. User should have the ability to see total time threads are parked 
during the checkpoint writing marked pages. Such a metric must be dropped down 
at checkpoint end.

See `PagesWriteThrottle` class as a start point of investigation.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


Re: Coding guidelines. Useless JavaDoc comments.

2019-08-08 Thread Maxim Muzafarov
Ivan,

It is not a problem to check Javadocs at the moment code syle checking
performed, but do we really need this? And the human-factor you
mentioned above is also related to the `self-descriptive` names. I
assume, that someone now is desiring to use single-letter variables
and single-letter class names to save space an time. We will always
have such an opinion race.

I'd prefer to leave the current situation with Javadoc as it is and
just to ask to apply the patch [1][2]. Can you? :-)

[1] https://issues.apache.org/jira/browse/IGNITE-12051
[2] https://github.com/apache/ignite/pull/6760

On Thu, 8 Aug 2019 at 17:24, Павлухин Иван  wrote:
>
> Maxim,
>
> My main concern here is a human factor. Humans are usually not so good
> in keeping documentation always in sync with a code. Examples from an
> actual PR:
> /**
> * @param nodeId The remote node id.
> * @param channel The channel to notify listeners with.
> */
> private void onChannelOpened0(UUID nodeId, GridIoMessage initMsg,
> Channel channel)
>
> First, there is a mismatch between number of parameters in javadoc and
> code. Second, e.g. nodeId name can be made self-descriptive rmtNodeId
> name.
>
> Mandatory javadocs do not imply good javadocs. Good javadocs do not
> imply javadocs for every method and field. For me, mandatory and good
> javadocs are like communism. Sounds quite nice in theory, but not
> feasible in practice.
>
> чт, 8 авг. 2019 г. в 16:55, Denis Garus :
> >
> > Thank you, Maxim.
> >
> > >>On what we are trying to save by making Javadoc optional?
> >
> > Space and time.
> >
> > I doubt that we need a verbal description of what private method make.
> > Why we need it if we just can read the code?
> >
> > Bright examples:
> >
> > /**
> > * @param helper Helper to attach to kernal context.
> > */
> > private void addHelper(Object helper) {
> > ctx.addHelper(helper);
> > }
> >
> > /**
> > * Gets "on" or "off" string for given boolean value.
> > *
> > * @param b Boolean value to convert.
> > * @return Result string.
> > */
> > private String onOff(boolean b) {
> > return b ? "on" : "off";
> > }
> >
> > You have to support both code of method and their JavaDoc description, but
> > it doesn't get any sake.
> >
> > >>Let's just help them to read the source code.
> >
> > But at the same time, public method IgniteKernal#start doesn't have any
> > description except enumeration of attributes with apparent notes.
> > Maybe to give it a verbal description needs one or two pages of the screen.
> > Does it make sense?
> >
> > чт, 8 авг. 2019 г. в 15:41, Maxim Muzafarov :
> >
> > > Igniters,
> > >
> > > I'm -1 with making Javadoc optional (except tests).
> > >
> > > Here is my patch [1] with PR [2] which fixes all the Javadoc comments
> > > for the IgniteKernal class mentioned above. Please, take a look. The
> > > review is very appreciated.
> > >
> > > On what we are trying to save by making Javadoc optional? In my humble
> > > opinion - Javadoc comments are mostly concern users who debug the
> > > Ignite when they have faced with some unhandled exception or related
> > > to the community members with an average involvement (produces a few
> > > small patches during the year) but not to the experienced one. Let's
> > > just help them to read the source code.
> > >
> > > [1] https://issues.apache.org/jira/browse/IGNITE-12051
> > > [2] https://github.com/apache/ignite/pull/6760
> > >
> > >
> > >
> > > On Wed, 7 Aug 2019 at 13:54, Andrey Kuznetsov  wrote:
> > > >
> > > > +1 for making javadoc comments optional.
> > > >
> > > > - Empty and tautological comments are kind of garbage that reduce
> > > > readability.
> > > > - It's better to leave the entity undocumented, than write
> > > > unexpressive/misleading comment.
> > > > - Even classes may not require javadocs, e.g. simple DTOs.
> > > >
> > > > ср, 7 авг. 2019 г., 13:39 Denis Garus :
> > > >
> > > > > Thx for feedback!
> > > > >
> > > > > >> we have to write proper javadoc for all production classes,
> > > including
> > > > > internal.
> > > > >
> > > > > Nikolay, I cannot agree with it.
> > > > >
> > > > > What should be the best comment for the next fields?
> > > > > /** */
> > > > > private static final long serialVersionUID = 0L;
> > > > > or
> > > > > /** */
> > > > > @LoggerResource
> > > > > private IgniteLogger log;
> > > > >
> > > > > There are more than 8000 lines of /** */ only at the ignite-core
> > > module (do
> > > > > not include tests).
> > > > >
> > > > > Any comments will be redundant and just noise. Obvious comment learns
> > > > > readers skip all comments.
> > > > >
> > > > >
> > > > > >> identical distance/padding/margin between fields in a class - is
> > > really
> > > > > cool
> > > > >
> > > > > Vyacheslav, but we have a blank line between fields. Why is one blank
> > > line
> > > > > not enough?
> > > > >
> > > > > ср, 7 авг. 2019 г. в 12:58, Павлухин Иван :
> > > > >
> > > > > > Hi,
> > > > > >
> > > > > > Denis, thank you for starting this discussion!
> > > > > 

Re: Apache Ignite 2.7.6 (Time, Scope, and Release manager)

2019-08-08 Thread Павлухин Иван
> What's the scope for this release?

Same question.

On the other hand an idea of 2.7.6 release attracts me because having
a practice of doing frequent minor releases can help us to build
reliable and predictable release rails.

чт, 8 авг. 2019 г. в 15:09, Ilya Kasnacheev :
>
> Hello!
>
> What's the scope for this release?
>
> Regards,
> --
> Ilya Kasnacheev
>
>
> чт, 8 авг. 2019 г. в 15:07, Dmitriy Pavlov :
>
> > Hi Apache Ignite Developers,
> >
> >
> >
> > We seem to be on the same page about 2.8 release, but we’ve started new
> > practice - minor releases, the first release was 2.7.5. Unfortunately,
> > there is a couple of issues still not fixed in that release, so I would
> > like to propose to prepare one more minor release for Apache Ignite.
> >
> >
> >
> > I propose my candidacy to be release manager once again.
> >
> >
> >
> > I could (of course with help from Peter Ivanov) do some additional efforts
> > to complete and improve process doc
> > https://cwiki.apache.org/confluence/display/IGNITE/Release+Process
> >
> >
> >
> > I propose (most optimistic) dates for release stages:
> >
> > Scope Freeze: August 12, 2019
> >
> > Code Freeze: August 15, 2019
> >
> > Voting Date: August 22, 2019
> >
> > Release Date: August 27, 2019
> >
> >
> > WDYT?
> >
> >
> > If nobody minds, I will create branch 2.7.6 based on 2.7.5 and set up in
> > the TC Bot during the weekend.
> >
> >
> >
> > Sincerely,
> >
> > Dmitriy Pavlov
> >



-- 
Best regards,
Ivan Pavlukhin


Re: Coding guidelines. Useless JavaDoc comments.

2019-08-08 Thread Павлухин Иван
Maxim,

My main concern here is a human factor. Humans are usually not so good
in keeping documentation always in sync with a code. Examples from an
actual PR:
/**
* @param nodeId The remote node id.
* @param channel The channel to notify listeners with.
*/
private void onChannelOpened0(UUID nodeId, GridIoMessage initMsg,
Channel channel)

First, there is a mismatch between number of parameters in javadoc and
code. Second, e.g. nodeId name can be made self-descriptive rmtNodeId
name.

Mandatory javadocs do not imply good javadocs. Good javadocs do not
imply javadocs for every method and field. For me, mandatory and good
javadocs are like communism. Sounds quite nice in theory, but not
feasible in practice.

чт, 8 авг. 2019 г. в 16:55, Denis Garus :
>
> Thank you, Maxim.
>
> >>On what we are trying to save by making Javadoc optional?
>
> Space and time.
>
> I doubt that we need a verbal description of what private method make.
> Why we need it if we just can read the code?
>
> Bright examples:
>
> /**
> * @param helper Helper to attach to kernal context.
> */
> private void addHelper(Object helper) {
> ctx.addHelper(helper);
> }
>
> /**
> * Gets "on" or "off" string for given boolean value.
> *
> * @param b Boolean value to convert.
> * @return Result string.
> */
> private String onOff(boolean b) {
> return b ? "on" : "off";
> }
>
> You have to support both code of method and their JavaDoc description, but
> it doesn't get any sake.
>
> >>Let's just help them to read the source code.
>
> But at the same time, public method IgniteKernal#start doesn't have any
> description except enumeration of attributes with apparent notes.
> Maybe to give it a verbal description needs one or two pages of the screen.
> Does it make sense?
>
> чт, 8 авг. 2019 г. в 15:41, Maxim Muzafarov :
>
> > Igniters,
> >
> > I'm -1 with making Javadoc optional (except tests).
> >
> > Here is my patch [1] with PR [2] which fixes all the Javadoc comments
> > for the IgniteKernal class mentioned above. Please, take a look. The
> > review is very appreciated.
> >
> > On what we are trying to save by making Javadoc optional? In my humble
> > opinion - Javadoc comments are mostly concern users who debug the
> > Ignite when they have faced with some unhandled exception or related
> > to the community members with an average involvement (produces a few
> > small patches during the year) but not to the experienced one. Let's
> > just help them to read the source code.
> >
> > [1] https://issues.apache.org/jira/browse/IGNITE-12051
> > [2] https://github.com/apache/ignite/pull/6760
> >
> >
> >
> > On Wed, 7 Aug 2019 at 13:54, Andrey Kuznetsov  wrote:
> > >
> > > +1 for making javadoc comments optional.
> > >
> > > - Empty and tautological comments are kind of garbage that reduce
> > > readability.
> > > - It's better to leave the entity undocumented, than write
> > > unexpressive/misleading comment.
> > > - Even classes may not require javadocs, e.g. simple DTOs.
> > >
> > > ср, 7 авг. 2019 г., 13:39 Denis Garus :
> > >
> > > > Thx for feedback!
> > > >
> > > > >> we have to write proper javadoc for all production classes,
> > including
> > > > internal.
> > > >
> > > > Nikolay, I cannot agree with it.
> > > >
> > > > What should be the best comment for the next fields?
> > > > /** */
> > > > private static final long serialVersionUID = 0L;
> > > > or
> > > > /** */
> > > > @LoggerResource
> > > > private IgniteLogger log;
> > > >
> > > > There are more than 8000 lines of /** */ only at the ignite-core
> > module (do
> > > > not include tests).
> > > >
> > > > Any comments will be redundant and just noise. Obvious comment learns
> > > > readers skip all comments.
> > > >
> > > >
> > > > >> identical distance/padding/margin between fields in a class - is
> > really
> > > > cool
> > > >
> > > > Vyacheslav, but we have a blank line between fields. Why is one blank
> > line
> > > > not enough?
> > > >
> > > > ср, 7 авг. 2019 г. в 12:58, Павлухин Иван :
> > > >
> > > > > Hi,
> > > > >
> > > > > Denis, thank you for starting this discussion!
> > > > >
> > > > > My opinion here is that having a good javadoc for every class and
> > > > > method is not feasible in the real world. I am quite curious to see a
> > > > > non-trivial project which follows it. Also, all comments and javadocs
> > > > > are prone to become misleading when code changes (human factor). In
> > my
> > > > > experience good method and variable names and clear code organization
> > > > > often are more helpful than javadocs.
> > > > >
> > > > > ср, 7 авг. 2019 г. в 12:49, Vyacheslav Daradur  > >:
> > > > > >
> > > > > > I agree that useless comments look weird in the codebase.
> > > > > >
> > > > > > But, identical distance/padding/margin between fields in a class -
> > is
> > > > > > really cool, and helps read the class very fast.
> > > > > >
> > > > > > On Wed, Aug 7, 2019 at 12:26 PM Nikolay Izhikov <
> > nizhi...@apache.org>
> > > > > wrote:
> > > > > > >
> > > > > > > 

Re: Coding guidelines. Useless JavaDoc comments.

2019-08-08 Thread Denis Garus
Thank you, Maxim.

>>On what we are trying to save by making Javadoc optional?

Space and time.

I doubt that we need a verbal description of what private method make.
Why we need it if we just can read the code?

Bright examples:

/**
* @param helper Helper to attach to kernal context.
*/
private void addHelper(Object helper) {
ctx.addHelper(helper);
}

/**
* Gets "on" or "off" string for given boolean value.
*
* @param b Boolean value to convert.
* @return Result string.
*/
private String onOff(boolean b) {
return b ? "on" : "off";
}

You have to support both code of method and their JavaDoc description, but
it doesn't get any sake.

>>Let's just help them to read the source code.

But at the same time, public method IgniteKernal#start doesn't have any
description except enumeration of attributes with apparent notes.
Maybe to give it a verbal description needs one or two pages of the screen.
Does it make sense?

чт, 8 авг. 2019 г. в 15:41, Maxim Muzafarov :

> Igniters,
>
> I'm -1 with making Javadoc optional (except tests).
>
> Here is my patch [1] with PR [2] which fixes all the Javadoc comments
> for the IgniteKernal class mentioned above. Please, take a look. The
> review is very appreciated.
>
> On what we are trying to save by making Javadoc optional? In my humble
> opinion - Javadoc comments are mostly concern users who debug the
> Ignite when they have faced with some unhandled exception or related
> to the community members with an average involvement (produces a few
> small patches during the year) but not to the experienced one. Let's
> just help them to read the source code.
>
> [1] https://issues.apache.org/jira/browse/IGNITE-12051
> [2] https://github.com/apache/ignite/pull/6760
>
>
>
> On Wed, 7 Aug 2019 at 13:54, Andrey Kuznetsov  wrote:
> >
> > +1 for making javadoc comments optional.
> >
> > - Empty and tautological comments are kind of garbage that reduce
> > readability.
> > - It's better to leave the entity undocumented, than write
> > unexpressive/misleading comment.
> > - Even classes may not require javadocs, e.g. simple DTOs.
> >
> > ср, 7 авг. 2019 г., 13:39 Denis Garus :
> >
> > > Thx for feedback!
> > >
> > > >> we have to write proper javadoc for all production classes,
> including
> > > internal.
> > >
> > > Nikolay, I cannot agree with it.
> > >
> > > What should be the best comment for the next fields?
> > > /** */
> > > private static final long serialVersionUID = 0L;
> > > or
> > > /** */
> > > @LoggerResource
> > > private IgniteLogger log;
> > >
> > > There are more than 8000 lines of /** */ only at the ignite-core
> module (do
> > > not include tests).
> > >
> > > Any comments will be redundant and just noise. Obvious comment learns
> > > readers skip all comments.
> > >
> > >
> > > >> identical distance/padding/margin between fields in a class - is
> really
> > > cool
> > >
> > > Vyacheslav, but we have a blank line between fields. Why is one blank
> line
> > > not enough?
> > >
> > > ср, 7 авг. 2019 г. в 12:58, Павлухин Иван :
> > >
> > > > Hi,
> > > >
> > > > Denis, thank you for starting this discussion!
> > > >
> > > > My opinion here is that having a good javadoc for every class and
> > > > method is not feasible in the real world. I am quite curious to see a
> > > > non-trivial project which follows it. Also, all comments and javadocs
> > > > are prone to become misleading when code changes (human factor). In
> my
> > > > experience good method and variable names and clear code organization
> > > > often are more helpful than javadocs.
> > > >
> > > > ср, 7 авг. 2019 г. в 12:49, Vyacheslav Daradur  >:
> > > > >
> > > > > I agree that useless comments look weird in the codebase.
> > > > >
> > > > > But, identical distance/padding/margin between fields in a class -
> is
> > > > > really cool, and helps read the class very fast.
> > > > >
> > > > > On Wed, Aug 7, 2019 at 12:26 PM Nikolay Izhikov <
> nizhi...@apache.org>
> > > > wrote:
> > > > > >
> > > > > > Hello, Denis.
> > > > > >
> > > > > > Thanks for starting this discussion.
> > > > > >
> > > > > > I think we have to write proper javadoc for all production
> classes,
> > > > including internal.
> > > > > > We should fix useless javadoc you provide.
> > > > > > We should not accept patches without good javadocs.
> > > > > >
> > > > > > As for the tests, seems, we can make javadoc optional.
> > > > > >
> > > > > > What do you think?
> > > > > >
> > > > > >
> > > > > > В Ср, 07/08/2019 в 11:41 +0300, Denis Garus пишет:
> > > > > > > Igniters!
> > > > > > >
> > > > > > > I think it's time to change coding guidelines in part of
> JavaDoc
> > > > comments
> > > > > > > [1]:
> > > > > > > > > Every method, field or initializer public, private or
> protected
> > > > in
> > > > > > >
> > > > > > > top-level,
> > > > > > > > > inner or anonymous type should have at least minimal
> Javadoc
> > > > comments
> > > > > > >
> > > > > > > including
> > > > > > > > > description and description of parameters using 

Re: Coding guidelines. Useless JavaDoc comments.

2019-08-08 Thread Maxim Muzafarov
Igniters,

I'm -1 with making Javadoc optional (except tests).

Here is my patch [1] with PR [2] which fixes all the Javadoc comments
for the IgniteKernal class mentioned above. Please, take a look. The
review is very appreciated.

On what we are trying to save by making Javadoc optional? In my humble
opinion - Javadoc comments are mostly concern users who debug the
Ignite when they have faced with some unhandled exception or related
to the community members with an average involvement (produces a few
small patches during the year) but not to the experienced one. Let's
just help them to read the source code.

[1] https://issues.apache.org/jira/browse/IGNITE-12051
[2] https://github.com/apache/ignite/pull/6760



On Wed, 7 Aug 2019 at 13:54, Andrey Kuznetsov  wrote:
>
> +1 for making javadoc comments optional.
>
> - Empty and tautological comments are kind of garbage that reduce
> readability.
> - It's better to leave the entity undocumented, than write
> unexpressive/misleading comment.
> - Even classes may not require javadocs, e.g. simple DTOs.
>
> ср, 7 авг. 2019 г., 13:39 Denis Garus :
>
> > Thx for feedback!
> >
> > >> we have to write proper javadoc for all production classes, including
> > internal.
> >
> > Nikolay, I cannot agree with it.
> >
> > What should be the best comment for the next fields?
> > /** */
> > private static final long serialVersionUID = 0L;
> > or
> > /** */
> > @LoggerResource
> > private IgniteLogger log;
> >
> > There are more than 8000 lines of /** */ only at the ignite-core module (do
> > not include tests).
> >
> > Any comments will be redundant and just noise. Obvious comment learns
> > readers skip all comments.
> >
> >
> > >> identical distance/padding/margin between fields in a class - is really
> > cool
> >
> > Vyacheslav, but we have a blank line between fields. Why is one blank line
> > not enough?
> >
> > ср, 7 авг. 2019 г. в 12:58, Павлухин Иван :
> >
> > > Hi,
> > >
> > > Denis, thank you for starting this discussion!
> > >
> > > My opinion here is that having a good javadoc for every class and
> > > method is not feasible in the real world. I am quite curious to see a
> > > non-trivial project which follows it. Also, all comments and javadocs
> > > are prone to become misleading when code changes (human factor). In my
> > > experience good method and variable names and clear code organization
> > > often are more helpful than javadocs.
> > >
> > > ср, 7 авг. 2019 г. в 12:49, Vyacheslav Daradur :
> > > >
> > > > I agree that useless comments look weird in the codebase.
> > > >
> > > > But, identical distance/padding/margin between fields in a class - is
> > > > really cool, and helps read the class very fast.
> > > >
> > > > On Wed, Aug 7, 2019 at 12:26 PM Nikolay Izhikov 
> > > wrote:
> > > > >
> > > > > Hello, Denis.
> > > > >
> > > > > Thanks for starting this discussion.
> > > > >
> > > > > I think we have to write proper javadoc for all production classes,
> > > including internal.
> > > > > We should fix useless javadoc you provide.
> > > > > We should not accept patches without good javadocs.
> > > > >
> > > > > As for the tests, seems, we can make javadoc optional.
> > > > >
> > > > > What do you think?
> > > > >
> > > > >
> > > > > В Ср, 07/08/2019 в 11:41 +0300, Denis Garus пишет:
> > > > > > Igniters!
> > > > > >
> > > > > > I think it's time to change coding guidelines in part of JavaDoc
> > > comments
> > > > > > [1]:
> > > > > > > > Every method, field or initializer public, private or protected
> > > in
> > > > > >
> > > > > > top-level,
> > > > > > > > inner or anonymous type should have at least minimal Javadoc
> > > comments
> > > > > >
> > > > > > including
> > > > > > > > description and description of parameters using @param, @return
> > > and
> > > > > >
> > > > > > @throws Javadoc tags,
> > > > > > > > where applicable.
> > > > > >
> > > > > > Let's look at JavaDoc comments in the IgniteKernal class:
> > > > > >
> > > > > > Why?
> > > > > >
> > > > > > /** */ - 15 matches.
> > > > > >
> > > > > > What can you get new from these comments?
> > > > > >
> > > > > > /** Periodic starvation check interval. */
> > > > > > private static final long PERIODIC_STARVATION_CHECK_FREQ = 1000 *
> > 30;
> > > > > >
> > > > > > /** Long jvm pause detector. */
> > > > > > private LongJVMPauseDetector longJVMPauseDetector;
> > > > > >
> > > > > > /** Scheduler. */
> > > > > > private IgniteScheduler scheduler;
> > > > > >
> > > > > > /** Stop guard. */
> > > > > > private final AtomicBoolean stopGuard = new AtomicBoolean();
> > > > > >
> > > > > > /**
> > > > > >  * @param cfg Configuration to use.
> > > > > >  * @param utilityCachePool Utility cache pool.
> > > > > >  * @param execSvc Executor service.
> > > > > >  * @param sysExecSvc System executor service.
> > > > > >  * @param stripedExecSvc Striped executor.
> > > > > >  * @param p2pExecSvc P2P executor service.
> > > > > >  * @param mgmtExecSvc Management executor 

[jira] [Created] (IGNITE-12052) GridDhtTxPrepareFuture should print transaction in case of assertion error

2019-08-08 Thread Sergey Antonov (JIRA)
Sergey Antonov created IGNITE-12052:
---

 Summary: GridDhtTxPrepareFuture should print transaction in case 
of assertion error
 Key: IGNITE-12052
 URL: https://issues.apache.org/jira/browse/IGNITE-12052
 Project: Ignite
  Issue Type: Improvement
Reporter: Sergey Antonov
Assignee: Sergey Antonov
 Fix For: 2.8


At the moment we getting exception, if assertion error occurs:
{noformat}
2019-07-13 
20:23:00.769[ERROR][srvc-deploy-#299%xxx_GRID%xxxGridNodeName%][o.a.i.i.p.s.GridServiceProcessor]
 Error when executing service: null
java.lang.AssertionError: Got removed exception on entry with dht local 
candidate: IgniteTxEntry []
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.sendPrepareRequests(GridDhtTxPrepareFuture.java:1368)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.prepare0(GridDhtTxPrepareFuture.java:1276)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture.access$000(GridDhtTxPrepareFuture.java:109)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture$2.apply(GridDhtTxPrepareFuture.java:704)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareFuture$2.apply(GridDhtTxPrepareFuture.java:699)
at 
org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:383)
at 
org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:347)
at 
org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:335)
at 
org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:495)
at 
org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:474)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtForceKeysFuture.onDone(GridDhtForceKeysFuture.java:153)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtForceKeysFuture.onDone(GridDhtForceKeysFuture.java:69)
at 
org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:451)
at 
org.apache.ignite.internal.util.future.GridCompoundFuture.checkComplete(GridCompoundFuture.java:285)
at 
org.apache.ignite.internal.util.future.GridCompoundFuture.markInitialized(GridCompoundFuture.java:276)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtForceKeysFuture.init(GridDhtForceKeysFuture.java:217)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPreloader$2.apply(GridDhtPreloader.java:523)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.preloader.GridDhtPreloader$2.apply(GridDhtPreloader.java:521)
at 
org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:383)
at 
org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:347)
at 
org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:335)
at 
org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:495)
at 
org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:474)
at 
org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:451)
at 
org.apache.ignite.internal.util.future.GridCompoundFuture.checkComplete(GridCompoundFuture.java:285)
at 
org.apache.ignite.internal.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:144)
at 
org.apache.ignite.internal.util.future.GridCompoundFuture.apply(GridCompoundFuture.java:45)
at 
org.apache.ignite.internal.util.future.GridFutureAdapter.notifyListener(GridFutureAdapter.java:383)
at 
org.apache.ignite.internal.util.future.GridFutureAdapter.unblock(GridFutureAdapter.java:347)
at 
org.apache.ignite.internal.util.future.GridFutureAdapter.unblockAll(GridFutureAdapter.java:335)
at 
org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:495)
at 
org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:474)
at 
org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache$AffinityReadyFuture.onDone(GridAffinityAssignmentCache.java:850)
at 
org.apache.ignite.internal.processors.affinity.GridAffinityAssignmentCache$AffinityReadyFuture.onDone(GridAffinityAssignmentCache.java:834)
at 
org.apache.ignite.internal.util.future.GridFutureAdapter.onDone(GridFutureAdapter.java:451)
at 

Re: Replacing NodeFilter functionality with label approach

2019-08-08 Thread Pavel Tupitsyn
I agree that attribute-based filtering is enough.

We should get rid of predicates in configuration as much as possible:
they introduce a lot of complexity for other platforms (.NET), among other
things mentioned above.

On Thu, Aug 8, 2019 at 2:04 PM Pavel Kovalenko  wrote:

> Ivan,
>
> > And there is also one idea (I am not fan of it but still). Can we use
> > some kind of scripting for nodes filtering? In that case node filter
> > is represented by script string, e.g. javascript.
>
> I guess it can lead to the same situation as in Java NodeFilter's. We can't
> control what happens in a filter in this case.
> We can consider regex as an option instead of just labels. It's still
> string and can be validated on correctness during node start.
> But we still don't have any real examples that require more flexibility
> than labels have.
>
> вт, 6 авг. 2019 г. в 14:46, Павлухин Иван :
>
> > Alexey,
> >
> > It seems that a problem has a solution with using 2 attributes or 2
> > labels. Is not it more clear than using custom code?
> >
> > Folks,
> >
> > > I don't think we should take "hard to implement" as an argument in this
> > discussion :)
> > Did not fully get the point. KISS principle is not true anymore? Or is
> > this discussion somehow special? I believe that every flexibility
> > handle should be critically justified. Would be great to justify
> > NodeFilter flexibility.
> >
> > > Filters based of hostname or ip address.
> > Is it a good idea to use IP address for node filtering? IP can be
> > changed for a node with persistence, does it mean that not relevant
> > data (according to a filter) should be cleared, does it work now?
> >
> > And there is also one idea (I am not fan of it but still). Can we use
> > some kind of scripting for nodes filtering? In that case node filter
> > is represented by script string, e.g. javascript.
> >
> > вт, 6 авг. 2019 г. в 12:22, Alexey Kukushkin  >:
> > >
> > > Pavel,
> > >
> > > Just a real example you asked for: we have a user attribute "ROLE_DC",
> > > which is a comma separated list like "wfe_a, as_a, db_a" (server role
> and
> > > data center designator) and we have node filters to deploy services and
> > > start caches on servers with specific role (like WFE) and sometimes
> > > specific role and DC (like WFE_A). The node filter splits the list and
> > uses
> > > a regular expression to match each segment.
> > >
> > > If you replace generic node filter with a user attribute filter then we
> > > still can achieve what we need  by creating 3 user attributes (ROLE_DC,
> > > ROLE and DC) but we lose flexibility since now adding a new data center
> > > requires updating all cache and service configurations. With regex
> > matching
> > > we do not need to update the configurations since we still match all
> the
> > > roles in the new DC.
> > >
> > > So we would have a solution with user attributes filter but I we lose
> > some
> > > flexibility.
> > >
> > > --
> > > Best regards,
> > > Alexey
> >
> >
> >
> > --
> > Best regards,
> > Ivan Pavlukhin
> >
>


Re: Apache Ignite 2.7.6 (Time, Scope, and Release manager)

2019-08-08 Thread Ilya Kasnacheev
Hello!

What's the scope for this release?

Regards,
-- 
Ilya Kasnacheev


чт, 8 авг. 2019 г. в 15:07, Dmitriy Pavlov :

> Hi Apache Ignite Developers,
>
>
>
> We seem to be on the same page about 2.8 release, but we’ve started new
> practice - minor releases, the first release was 2.7.5. Unfortunately,
> there is a couple of issues still not fixed in that release, so I would
> like to propose to prepare one more minor release for Apache Ignite.
>
>
>
> I propose my candidacy to be release manager once again.
>
>
>
> I could (of course with help from Peter Ivanov) do some additional efforts
> to complete and improve process doc
> https://cwiki.apache.org/confluence/display/IGNITE/Release+Process
>
>
>
> I propose (most optimistic) dates for release stages:
>
> Scope Freeze: August 12, 2019
>
> Code Freeze: August 15, 2019
>
> Voting Date: August 22, 2019
>
> Release Date: August 27, 2019
>
>
> WDYT?
>
>
> If nobody minds, I will create branch 2.7.6 based on 2.7.5 and set up in
> the TC Bot during the weekend.
>
>
>
> Sincerely,
>
> Dmitriy Pavlov
>


Apache Ignite 2.7.6 (Time, Scope, and Release manager)

2019-08-08 Thread Dmitriy Pavlov
Hi Apache Ignite Developers,



We seem to be on the same page about 2.8 release, but we’ve started new
practice - minor releases, the first release was 2.7.5. Unfortunately,
there is a couple of issues still not fixed in that release, so I would
like to propose to prepare one more minor release for Apache Ignite.



I propose my candidacy to be release manager once again.



I could (of course with help from Peter Ivanov) do some additional efforts
to complete and improve process doc
https://cwiki.apache.org/confluence/display/IGNITE/Release+Process



I propose (most optimistic) dates for release stages:

Scope Freeze: August 12, 2019

Code Freeze: August 15, 2019

Voting Date: August 22, 2019

Release Date: August 27, 2019


WDYT?


If nobody minds, I will create branch 2.7.6 based on 2.7.5 and set up in
the TC Bot during the weekend.



Sincerely,

Dmitriy Pavlov


Re: SecurityTestSuite as a separate test suite at TC

2019-08-08 Thread Denis Garus
Hello, Ivan!

>> Could you please provide more details why do we need to run these tests
in forked JVM?

Surefite documentation [1] says:
If forkCount=0, it's impossible to use the system class loader or a plain
old Java classpath; we have to use an isolated class loader.

When using isolated class loader will cause compiler error:
package org.apache.ignite.lang does not exist

We cannot compile the TestIgniteCallable class.

1.
https://maven.apache.org/surefire/maven-surefire-plugin/examples/class-loading.html

чт, 8 авг. 2019 г. в 09:44, Павлухин Иван :

> Denis,
>
> Could you please provide more details why do we need to run these
> tests in forked JVM?
>
> Still, having separate security suite on TC sounds not bad.
>
> ср, 7 авг. 2019 г. в 09:35, Vyacheslav Daradur :
> >
> > Hi Denis.
> >
> > I think it is fine to extract security tests in a separate build plan on
> TC.
> >
> > BTW, if you are going to write a lot of Sandbox's tests pay attention
> > to 'extdata' module and an approach of P2P tests
> > (IgniteP2PSelfTestSuite) - this may help you to avoid Maven's
> > classloading issues.
> >
> > On Tue, Aug 6, 2019 at 3:25 PM Denis Garus  wrote:
> > >
> > > Hello Igniters!
> > >
> > > I made the test DoPrivelegedOnRemoteNodeTest[1] (SecurityTestSuite)
> for the
> > > task "Sandbox for user-defined code" [2]
> > > that uses p2p deploy like the test
> > > ServiceHotRedeploymentViaDeploymentSpiTest [3] from
> > > IgniteServiceGridTestSuite.
> > > That test requires additional Maven command line parameter -P
> > > surefire-fork-count-1.
> > > The suite Basic 1 contains the SecurityTestSuite and many other test
> suites
> > > at TeamCity that do not need that additional Maven parameter.
> > > I suggest extracting SecurityTestSuite as a separate test suite to
> define
> > > additional Maven command line parameter for it.
> > >
> > > WDYT?
> > >
> > >
> > > 1. https://github.com/apache/ignite/pull/6707
> > > 2. https://issues.apache.org/jira/browse/IGNITE-11410
> > > 3.
> > >
> https://github.com/apache/ignite/blob/master/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceHotRedeploymentViaDeploymentSpiTest.java
> >
> >
> >
> > --
> > Best Regards, Vyacheslav D.
>
>
>
> --
> Best regards,
> Ivan Pavlukhin
>


Re: Replacing NodeFilter functionality with label approach

2019-08-08 Thread Pavel Kovalenko
Ivan,

> And there is also one idea (I am not fan of it but still). Can we use
> some kind of scripting for nodes filtering? In that case node filter
> is represented by script string, e.g. javascript.

I guess it can lead to the same situation as in Java NodeFilter's. We can't
control what happens in a filter in this case.
We can consider regex as an option instead of just labels. It's still
string and can be validated on correctness during node start.
But we still don't have any real examples that require more flexibility
than labels have.

вт, 6 авг. 2019 г. в 14:46, Павлухин Иван :

> Alexey,
>
> It seems that a problem has a solution with using 2 attributes or 2
> labels. Is not it more clear than using custom code?
>
> Folks,
>
> > I don't think we should take "hard to implement" as an argument in this
> discussion :)
> Did not fully get the point. KISS principle is not true anymore? Or is
> this discussion somehow special? I believe that every flexibility
> handle should be critically justified. Would be great to justify
> NodeFilter flexibility.
>
> > Filters based of hostname or ip address.
> Is it a good idea to use IP address for node filtering? IP can be
> changed for a node with persistence, does it mean that not relevant
> data (according to a filter) should be cleared, does it work now?
>
> And there is also one idea (I am not fan of it but still). Can we use
> some kind of scripting for nodes filtering? In that case node filter
> is represented by script string, e.g. javascript.
>
> вт, 6 авг. 2019 г. в 12:22, Alexey Kukushkin :
> >
> > Pavel,
> >
> > Just a real example you asked for: we have a user attribute "ROLE_DC",
> > which is a comma separated list like "wfe_a, as_a, db_a" (server role and
> > data center designator) and we have node filters to deploy services and
> > start caches on servers with specific role (like WFE) and sometimes
> > specific role and DC (like WFE_A). The node filter splits the list and
> uses
> > a regular expression to match each segment.
> >
> > If you replace generic node filter with a user attribute filter then we
> > still can achieve what we need  by creating 3 user attributes (ROLE_DC,
> > ROLE and DC) but we lose flexibility since now adding a new data center
> > requires updating all cache and service configurations. With regex
> matching
> > we do not need to update the configurations since we still match all the
> > roles in the new DC.
> >
> > So we would have a solution with user attributes filter but I we lose
> some
> > flexibility.
> >
> > --
> > Best regards,
> > Alexey
>
>
>
> --
> Best regards,
> Ivan Pavlukhin
>


[jira] [Created] (IGNITE-12051) Update javadoc for the IgniteKernal class

2019-08-08 Thread Maxim Muzafarov (JIRA)
Maxim Muzafarov created IGNITE-12051:


 Summary: Update javadoc for the IgniteKernal class
 Key: IGNITE-12051
 URL: https://issues.apache.org/jira/browse/IGNITE-12051
 Project: Ignite
  Issue Type: Task
Reporter: Maxim Muzafarov
Assignee: Maxim Muzafarov


Update all ambiguous an empty javadoc comments, such as:

{code}
/** */

/** Periodic starvation check interval. */ 
private static final long PERIODIC_STARVATION_CHECK_FREQ = 1000 * 30; 

/** Long jvm pause detector. */ 
private LongJVMPauseDetector longJVMPauseDetector; 

/** Scheduler. */ 
private IgniteScheduler scheduler; 

/** Stop guard. */ 
private final AtomicBoolean stopGuard = new AtomicBoolean(); 
{code}



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


[jira] [Created] (IGNITE-12050) MVCC test suites resurrection

2019-08-08 Thread Ivan Pavlukhin (JIRA)
Ivan Pavlukhin created IGNITE-12050:
---

 Summary: MVCC test suites resurrection
 Key: IGNITE-12050
 URL: https://issues.apache.org/jira/browse/IGNITE-12050
 Project: Ignite
  Issue Type: Bug
  Components: mvcc
Reporter: Ivan Pavlukhin
Assignee: Ivan Pavlukhin


Need to resurrect MVCC test suites for RunAll. 
Mute all tests with fail rate more 50%
And start use scale factor for MVCC tests to reduce execution time.



--
This message was sent by Atlassian JIRA
(v7.6.14#76016)


Re: SecurityTestSuite as a separate test suite at TC

2019-08-08 Thread Павлухин Иван
Denis,

Could you please provide more details why do we need to run these
tests in forked JVM?

Still, having separate security suite on TC sounds not bad.

ср, 7 авг. 2019 г. в 09:35, Vyacheslav Daradur :
>
> Hi Denis.
>
> I think it is fine to extract security tests in a separate build plan on TC.
>
> BTW, if you are going to write a lot of Sandbox's tests pay attention
> to 'extdata' module and an approach of P2P tests
> (IgniteP2PSelfTestSuite) - this may help you to avoid Maven's
> classloading issues.
>
> On Tue, Aug 6, 2019 at 3:25 PM Denis Garus  wrote:
> >
> > Hello Igniters!
> >
> > I made the test DoPrivelegedOnRemoteNodeTest[1] (SecurityTestSuite) for the
> > task "Sandbox for user-defined code" [2]
> > that uses p2p deploy like the test
> > ServiceHotRedeploymentViaDeploymentSpiTest [3] from
> > IgniteServiceGridTestSuite.
> > That test requires additional Maven command line parameter -P
> > surefire-fork-count-1.
> > The suite Basic 1 contains the SecurityTestSuite and many other test suites
> > at TeamCity that do not need that additional Maven parameter.
> > I suggest extracting SecurityTestSuite as a separate test suite to define
> > additional Maven command line parameter for it.
> >
> > WDYT?
> >
> >
> > 1. https://github.com/apache/ignite/pull/6707
> > 2. https://issues.apache.org/jira/browse/IGNITE-11410
> > 3.
> > https://github.com/apache/ignite/blob/master/modules/core/src/test/java/org/apache/ignite/internal/processors/service/ServiceHotRedeploymentViaDeploymentSpiTest.java
>
>
>
> --
> Best Regards, Vyacheslav D.



-- 
Best regards,
Ivan Pavlukhin


Re: Partition loss event

2019-08-08 Thread Павлухин Иван
Ilya,

I am not sure that enabling subset of events will fit all needs. If we
would like to do so then it might be good idea to make it clear in API
that certain events are enabled by default (e.g. put them into
separate class).

Also we should be careful with backward compatibility, some kind of
events look more like debug stuff, e.g.
EVT_CACHE_REBALANCE_OBJECT_LOADED. Is it relevant for historical
rebalance? What does it mean for rebalancing whole partition files?
How user is going to use it?

And a care stil should be put to performance, aforementioned
EVT_CACHE_REBALANCE_OBJECT_LOADED can introduce non-negliable impact,
cannot it?

Also, we can employ some soft means like printing a warning if a
listener is registered for disabled event.

And a last point about code and javadocs. There is a line "Note that
certain events are required for Ignite's internal operations and such
events will still be generated". Perhaps we can provide a list of such
events in docs or do not expose them to a user listeners. And a bit of
mess. IgniteConfiguration#getIncludeEventTypes claims "Note that by
default all events in Ignite are disabled". While EventType says "Note
that by default all events in Ignite are enabled and therefore
generated and stored by whatever event storage SPI is configured".

чт, 1 авг. 2019 г. в 17:42, Ilya Kasnacheev :
>
> Dear fellows!
>
> I think we have a problem: when events were introduced, we were talking
> about high-bandwdith events which may overflow your nodes if you
> accidentally turn them on.
>
> However, now we have a bunch of low-bandwidth events, such as:
> EVT_CHECKPOINT_SAVED
> EVT_CHECKPOINT_LOADED
> EVT_CHECKPOINT_REMOVED
> EVT_NODE_JOINED
> EVT_NODE_LEFT
> EVT_NODE_FAILED
> EVT_NODE_SEGMENTED
> EVT_CACHE_REBALANCE_STARTED
> EVT_CACHE_REBALANCE_STOPPED
> EVT_CACHE_REBALANCE_PART_LOADED
> EVT_CACHE_REBALANCE_PART_UNLOADED
> EVT_CACHE_REBALANCE_OBJECT_LOADED
> EVT_CACHE_REBALANCE_OBJECT_UNLOADED
> EVT_CACHE_REBALANCE_PART_DATA_LOST
> EVT_CACHE_REBALANCE_PART_SUPPLIED
> EVT_CACHE_REBALANCE_PART_MISSED
> EVT_CLIENT_NODE_DISCONNECTED
> EVT_CLIENT_NODE_RECONNECTED
> EVT_WAL_SEGMENT_ARCHIVED
> EVT_WAL_SEGMENT_COMPACTED
> EVT_CLUSTER_ACTIVATED
> EVT_CLUSTER_DEACTIVATED
> EVT_PAGE_REPLACEMENT_STARTED
>
> I suggest we enable these events by default, since I fail to see how this
> may ever cause problems, but it will definitely decrease confusion
> surrounding events.
>
> WDYT?
>
> Regards,
> --
> Ilya Kasnacheev
>
>
> чт, 1 авг. 2019 г. в 15:18, balazspeterfi :
>
> > Hi Alexandr,
> >
> > Thanks, that was the missing part. It would be nice to mention it in the
> > docs I guess as it's quite easy to miss it.
> >
> > Regards,
> > Balazs
> >
> >
> >
> > --
> > Sent from: http://apache-ignite-users.70518.x6.nabble.com/
> >



-- 
Best regards,
Ivan Pavlukhin