Re: Brainstorm: Make TC Run All faster

2019-04-30 Thread Павлухин Иван
Nikolay,

> I thought by "faster" we all meant time between One push RunAll button and 
> one get results.
> What else definition are possible here?

But this "faster" depends on a current load. E.g. if we have a lot of
idle slaves then incresead parallelism will allow a build to complete
"faster". If we have many slaves busy than parallelism might "slow"
down an execution. I predict that you are mostly interested in average
metrics when TC has a build queue as it usually have on weekdays. If
so then aggregatin other related jobs into "Build Apache Ignite" might
speed execution of RunAll measured in wall clock time.

And also I would like to return to a point I already mentioned earlier
in other conversations. Our CI environment suites perfectly for an
agile way of working. I suppose that we could try different setups
almost freely and see if it gives a desired effect (and rollback if
no). I am ok to go with Vyacheslav proposal. But I would like to
observe some metrics showing that builds become running faster than
before. Can we do this?

вт, 30 апр. 2019 г. в 17:42, Dmitriy Pavlov :
>
> Hi, One more metric we can introduce is efficiency. Test run time/overall
> time. The goal of launching RunAll is to obtain tests results.
>
> I've added more statistics to be displayed in the TC Bot, so now you may
> click 'more' button near 'chain results' caption and you'll see sum of
> statistics for all chain or individual suite. Latest RunAll gives the
> following:
> Overall time 57h 52m 41.188s (
> - Build Net Time: 45h 10m 31.686s,
> - Tests: 38h 58m 30.8s,
> - Src. Update: 2h 29m 51.14s,
> - Artifacts Publishing: 26m 38.295s,
> - Dependencies Resolving: 9h 45m 1.809s,
> - Timeouts: 3h 54m 16.071s)
>
> Currently, Efficiency is around 67-72%
>
> Sincerely,
> Dmitriy Pavlov
>
> пн, 29 апр. 2019 г. в 12:57, Nikolay Izhikov :
>
> > Ivan,
> >
> > I thought by "faster" we all meant time between One push RunAll button and
> > one get results.
> > What else definition are possible here?
> >
> > В Пн, 29/04/2019 в 12:04 +0300, Павлухин Иван пишет:
> > > Nikolay,
> > >
> > > > Why we should imagine it?
> > >
> > > Only in order to understand what do we mean by "faster". My question was:
> > >
> > > 1st approach will take less agent time in sum. 2nd approach will
> > > complete faster in wall clock time. And your main concern is "total
> > > agent time". Am I right?
> > >
> > > пн, 29 апр. 2019 г. в 12:01, Nikolay Izhikov :
> > > >
> > > > > Let's imagine that we have an infinite number of agents
> > > >
> > > > Why we should imagine it?
> > > > We don't have infinite number of agents.
> > > >
> > > > And we have several concurrent Run All.
> > > >
> > > >
> > > > В Пн, 29/04/2019 в 11:50 +0300, Павлухин Иван пишет:
> > > > > Vyacheslav,
> > > > >
> > > > > I finally figured out that "faster" means "total agent time".
> > > > >
> > > > > Let's imagine that we have an infinite number of agents. And 2
> > approaches:
> > > > > 1. Uber "Build Apache Ignite" containing all checks.
> > > > > 2. Separate jobs for compilation, checkstyle and etc.
> > > > >
> > > > > 1st approach will take less agent time in sum. 2nd approach will
> > > > > complete faster in wall clock time. And your main concern is "total
> > > > > agent time". Am I right?
> > > > >
> > > > > пн, 29 апр. 2019 г. в 11:42, Vyacheslav Daradur  > >:
> > > > > >
> > > > > > Hi, Ivan,
> > > > > >
> > > > > > We are in the thread "Make TC Run All faster", so the main benefit
> > is
> > > > > > to make TC faster :)
> > > > > >
> > > > > > Advantages:
> > > > > > - 1 TC agent required instead of 4;
> > > > > > - RunAll will be faster, in case of builds queue;
> > > > > >
> > > > > > Also, the "licenses" profile is included in the step of a release
> > > > > > build. I believe check-style also should be included.
> > > > > >
> > > > > > The generation of Javadocs is an optional step at preparing the
> > > > > > release, but its check on TC takes significant time in case of the
> > > > > > separate build.
> > > > > >
> > > > > > > > Returning to "Build Apache Ignite" it seems to me that
> > ideally, it can
> > > > > >
> > > > > > be hierarchical.
> > > > > >
> > > > > > I agree, all the checks may be set as a separate step in the
> > build's
> > > > > > configuration. This helps with the main problem I'm trying to
> > solve -
> > > > > > resolving of dependencies which takes the most time of the builds.
> > > > > >
> > > > > > On Mon, Apr 29, 2019 at 11:24 AM Павлухин Иван <
> > vololo...@gmail.com> wrote:
> > > > > > >
> > > > > > > Vyacheslav, Maxim,
> > > > > > >
> > > > > > > Can we once again outline what benefits aggregated "Build Apache
> > > > > > > Ignite" performing various checks has comparing to a modularized
> > > > > > > approach in which separate builds perform separate tasks?
> > > > > > >
> > > > > > > For example, modularized approach looks nice because it is
> > similar to
> > > > > > > good practices in software development where we separate
> > > > > > >

Re: Brainstorm: Make TC Run All faster

2019-04-30 Thread Павлухин Иван
Hi Dmitriy,

Thank you for adding staistics! With a good measure we can easily
compare different setups.

ср, 1 мая 2019 г. в 08:34, Павлухин Иван :
>
> Nikolay,
>
> > I thought by "faster" we all meant time between One push RunAll button and 
> > one get results.
> > What else definition are possible here?
>
> But this "faster" depends on a current load. E.g. if we have a lot of
> idle slaves then incresead parallelism will allow a build to complete
> "faster". If we have many slaves busy than parallelism might "slow"
> down an execution. I predict that you are mostly interested in average
> metrics when TC has a build queue as it usually have on weekdays. If
> so then aggregatin other related jobs into "Build Apache Ignite" might
> speed execution of RunAll measured in wall clock time.
>
> And also I would like to return to a point I already mentioned earlier
> in other conversations. Our CI environment suites perfectly for an
> agile way of working. I suppose that we could try different setups
> almost freely and see if it gives a desired effect (and rollback if
> no). I am ok to go with Vyacheslav proposal. But I would like to
> observe some metrics showing that builds become running faster than
> before. Can we do this?
>
> вт, 30 апр. 2019 г. в 17:42, Dmitriy Pavlov :
> >
> > Hi, One more metric we can introduce is efficiency. Test run time/overall
> > time. The goal of launching RunAll is to obtain tests results.
> >
> > I've added more statistics to be displayed in the TC Bot, so now you may
> > click 'more' button near 'chain results' caption and you'll see sum of
> > statistics for all chain or individual suite. Latest RunAll gives the
> > following:
> > Overall time 57h 52m 41.188s (
> > - Build Net Time: 45h 10m 31.686s,
> > - Tests: 38h 58m 30.8s,
> > - Src. Update: 2h 29m 51.14s,
> > - Artifacts Publishing: 26m 38.295s,
> > - Dependencies Resolving: 9h 45m 1.809s,
> > - Timeouts: 3h 54m 16.071s)
> >
> > Currently, Efficiency is around 67-72%
> >
> > Sincerely,
> > Dmitriy Pavlov
> >
> > пн, 29 апр. 2019 г. в 12:57, Nikolay Izhikov :
> >
> > > Ivan,
> > >
> > > I thought by "faster" we all meant time between One push RunAll button and
> > > one get results.
> > > What else definition are possible here?
> > >
> > > В Пн, 29/04/2019 в 12:04 +0300, Павлухин Иван пишет:
> > > > Nikolay,
> > > >
> > > > > Why we should imagine it?
> > > >
> > > > Only in order to understand what do we mean by "faster". My question 
> > > > was:
> > > >
> > > > 1st approach will take less agent time in sum. 2nd approach will
> > > > complete faster in wall clock time. And your main concern is "total
> > > > agent time". Am I right?
> > > >
> > > > пн, 29 апр. 2019 г. в 12:01, Nikolay Izhikov :
> > > > >
> > > > > > Let's imagine that we have an infinite number of agents
> > > > >
> > > > > Why we should imagine it?
> > > > > We don't have infinite number of agents.
> > > > >
> > > > > And we have several concurrent Run All.
> > > > >
> > > > >
> > > > > В Пн, 29/04/2019 в 11:50 +0300, Павлухин Иван пишет:
> > > > > > Vyacheslav,
> > > > > >
> > > > > > I finally figured out that "faster" means "total agent time".
> > > > > >
> > > > > > Let's imagine that we have an infinite number of agents. And 2
> > > approaches:
> > > > > > 1. Uber "Build Apache Ignite" containing all checks.
> > > > > > 2. Separate jobs for compilation, checkstyle and etc.
> > > > > >
> > > > > > 1st approach will take less agent time in sum. 2nd approach will
> > > > > > complete faster in wall clock time. And your main concern is "total
> > > > > > agent time". Am I right?
> > > > > >
> > > > > > пн, 29 апр. 2019 г. в 11:42, Vyacheslav Daradur  > > >:
> > > > > > >
> > > > > > > Hi, Ivan,
> > > > > > >
> > > > > > > We are in the thread "Make TC Run All faster", so the main benefit
> > > is
> > > > > > > to make TC faster :)
> > > > > > >
> > > > > > > Advantages:
> > > > > > > - 1 TC agent required instead of 4;
> > > > > > > - RunAll will be faster, in case of builds queue;
> > > > > > >
> > > > > > > Also, the "licenses" profile is included in the step of a release
> > > > > > > build. I believe check-style also should be included.
> > > > > > >
> > > > > > > The generation of Javadocs is an optional step at preparing the
> > > > > > > release, but its check on TC takes significant time in case of the
> > > > > > > separate build.
> > > > > > >
> > > > > > > > > Returning to "Build Apache Ignite" it seems to me that
> > > ideally, it can
> > > > > > >
> > > > > > > be hierarchical.
> > > > > > >
> > > > > > > I agree, all the checks may be set as a separate step in the
> > > build's
> > > > > > > configuration. This helps with the main problem I'm trying to
> > > solve -
> > > > > > > resolving of dependencies which takes the most time of the builds.
> > > > > > >
> > > > > > > On Mon, Apr 29, 2019 at 11:24 AM Павлухин Иван <
> > > vololo...@gmail.com> wrote:
> > > > > > > >
> > > > > > > > Vyacheslav, Maxim,
> > > > > > > >
> > > > > > > 

Re: Brainstorm: Make TC Run All faster

2019-04-30 Thread Dmitriy Pavlov
Hi, One more metric we can introduce is efficiency. Test run time/overall
time. The goal of launching RunAll is to obtain tests results.

I've added more statistics to be displayed in the TC Bot, so now you may
click 'more' button near 'chain results' caption and you'll see sum of
statistics for all chain or individual suite. Latest RunAll gives the
following:
Overall time 57h 52m 41.188s (
- Build Net Time: 45h 10m 31.686s,
- Tests: 38h 58m 30.8s,
- Src. Update: 2h 29m 51.14s,
- Artifacts Publishing: 26m 38.295s,
- Dependencies Resolving: 9h 45m 1.809s,
- Timeouts: 3h 54m 16.071s)

Currently, Efficiency is around 67-72%

Sincerely,
Dmitriy Pavlov

пн, 29 апр. 2019 г. в 12:57, Nikolay Izhikov :

> Ivan,
>
> I thought by "faster" we all meant time between One push RunAll button and
> one get results.
> What else definition are possible here?
>
> В Пн, 29/04/2019 в 12:04 +0300, Павлухин Иван пишет:
> > Nikolay,
> >
> > > Why we should imagine it?
> >
> > Only in order to understand what do we mean by "faster". My question was:
> >
> > 1st approach will take less agent time in sum. 2nd approach will
> > complete faster in wall clock time. And your main concern is "total
> > agent time". Am I right?
> >
> > пн, 29 апр. 2019 г. в 12:01, Nikolay Izhikov :
> > >
> > > > Let's imagine that we have an infinite number of agents
> > >
> > > Why we should imagine it?
> > > We don't have infinite number of agents.
> > >
> > > And we have several concurrent Run All.
> > >
> > >
> > > В Пн, 29/04/2019 в 11:50 +0300, Павлухин Иван пишет:
> > > > Vyacheslav,
> > > >
> > > > I finally figured out that "faster" means "total agent time".
> > > >
> > > > Let's imagine that we have an infinite number of agents. And 2
> approaches:
> > > > 1. Uber "Build Apache Ignite" containing all checks.
> > > > 2. Separate jobs for compilation, checkstyle and etc.
> > > >
> > > > 1st approach will take less agent time in sum. 2nd approach will
> > > > complete faster in wall clock time. And your main concern is "total
> > > > agent time". Am I right?
> > > >
> > > > пн, 29 апр. 2019 г. в 11:42, Vyacheslav Daradur  >:
> > > > >
> > > > > Hi, Ivan,
> > > > >
> > > > > We are in the thread "Make TC Run All faster", so the main benefit
> is
> > > > > to make TC faster :)
> > > > >
> > > > > Advantages:
> > > > > - 1 TC agent required instead of 4;
> > > > > - RunAll will be faster, in case of builds queue;
> > > > >
> > > > > Also, the "licenses" profile is included in the step of a release
> > > > > build. I believe check-style also should be included.
> > > > >
> > > > > The generation of Javadocs is an optional step at preparing the
> > > > > release, but its check on TC takes significant time in case of the
> > > > > separate build.
> > > > >
> > > > > > > Returning to "Build Apache Ignite" it seems to me that
> ideally, it can
> > > > >
> > > > > be hierarchical.
> > > > >
> > > > > I agree, all the checks may be set as a separate step in the
> build's
> > > > > configuration. This helps with the main problem I'm trying to
> solve -
> > > > > resolving of dependencies which takes the most time of the builds.
> > > > >
> > > > > On Mon, Apr 29, 2019 at 11:24 AM Павлухин Иван <
> vololo...@gmail.com> wrote:
> > > > > >
> > > > > > Vyacheslav, Maxim,
> > > > > >
> > > > > > Can we once again outline what benefits aggregated "Build Apache
> > > > > > Ignite" performing various checks has comparing to a modularized
> > > > > > approach in which separate builds perform separate tasks?
> > > > > >
> > > > > > For example, modularized approach looks nice because it is
> similar to
> > > > > > good practices in software development where we separate
> > > > > > responsibilities between different classes instead of
> aggregating them
> > > > > > into a single class. And as usual multiple classes works together
> > > > > > coordinating by a class from upper level. So, in fact it is a
> > > > > > hierarchical structure.
> > > > > >
> > > > > > Returning to "Build Apache Ignite" it seems to me that ideally
> it can
> > > > > > be hierarchical. There is a top level compilation (assembly?)
> job but
> > > > > > it is always clear what tasks does it perform (check style, check
> > > > > > license and other subjobs).
> > > > > >
> > > > > > пт, 26 апр. 2019 г. в 17:06, Maxim Muzafarov  >:
> > > > > > >
> > > > > > > Folks,
> > > > > > >
> > > > > > > +1 for merging all these suites into the single one. All these
> suites
> > > > > > > (Build Apache Ignite, Javadoc, Licenses Header, Checkstyle)
> required
> > > > > > > to be `green` all the time. So, we can consider making them a
> part of
> > > > > > > build Apache Ignite procedure.
> > > > > > >
> > > > > > > Also, I'd suggest going deeper. We can try to merge `Licenses
> Header`
> > > > > > > into the `Code style checker` [1]. This will simplify the code
> > > > > > > checking process.
> > > > > > >
> > > > > > > [1] http://checkstyle.sourceforge.net/config_header.html
> > > > > > >
> > > > > > > On Fri,

Re: Brainstorm: Make TC Run All faster

2019-04-29 Thread Nikolay Izhikov
Ivan,

I thought by "faster" we all meant time between One push RunAll button and one 
get results.
What else definition are possible here?

В Пн, 29/04/2019 в 12:04 +0300, Павлухин Иван пишет:
> Nikolay,
> 
> > Why we should imagine it?
> 
> Only in order to understand what do we mean by "faster". My question was:
> 
> 1st approach will take less agent time in sum. 2nd approach will
> complete faster in wall clock time. And your main concern is "total
> agent time". Am I right?
> 
> пн, 29 апр. 2019 г. в 12:01, Nikolay Izhikov :
> > 
> > > Let's imagine that we have an infinite number of agents
> > 
> > Why we should imagine it?
> > We don't have infinite number of agents.
> > 
> > And we have several concurrent Run All.
> > 
> > 
> > В Пн, 29/04/2019 в 11:50 +0300, Павлухин Иван пишет:
> > > Vyacheslav,
> > > 
> > > I finally figured out that "faster" means "total agent time".
> > > 
> > > Let's imagine that we have an infinite number of agents. And 2 approaches:
> > > 1. Uber "Build Apache Ignite" containing all checks.
> > > 2. Separate jobs for compilation, checkstyle and etc.
> > > 
> > > 1st approach will take less agent time in sum. 2nd approach will
> > > complete faster in wall clock time. And your main concern is "total
> > > agent time". Am I right?
> > > 
> > > пн, 29 апр. 2019 г. в 11:42, Vyacheslav Daradur :
> > > > 
> > > > Hi, Ivan,
> > > > 
> > > > We are in the thread "Make TC Run All faster", so the main benefit is
> > > > to make TC faster :)
> > > > 
> > > > Advantages:
> > > > - 1 TC agent required instead of 4;
> > > > - RunAll will be faster, in case of builds queue;
> > > > 
> > > > Also, the "licenses" profile is included in the step of a release
> > > > build. I believe check-style also should be included.
> > > > 
> > > > The generation of Javadocs is an optional step at preparing the
> > > > release, but its check on TC takes significant time in case of the
> > > > separate build.
> > > > 
> > > > > > Returning to "Build Apache Ignite" it seems to me that ideally, it 
> > > > > > can
> > > > 
> > > > be hierarchical.
> > > > 
> > > > I agree, all the checks may be set as a separate step in the build's
> > > > configuration. This helps with the main problem I'm trying to solve -
> > > > resolving of dependencies which takes the most time of the builds.
> > > > 
> > > > On Mon, Apr 29, 2019 at 11:24 AM Павлухин Иван  
> > > > wrote:
> > > > > 
> > > > > Vyacheslav, Maxim,
> > > > > 
> > > > > Can we once again outline what benefits aggregated "Build Apache
> > > > > Ignite" performing various checks has comparing to a modularized
> > > > > approach in which separate builds perform separate tasks?
> > > > > 
> > > > > For example, modularized approach looks nice because it is similar to
> > > > > good practices in software development where we separate
> > > > > responsibilities between different classes instead of aggregating them
> > > > > into a single class. And as usual multiple classes works together
> > > > > coordinating by a class from upper level. So, in fact it is a
> > > > > hierarchical structure.
> > > > > 
> > > > > Returning to "Build Apache Ignite" it seems to me that ideally it can
> > > > > be hierarchical. There is a top level compilation (assembly?) job but
> > > > > it is always clear what tasks does it perform (check style, check
> > > > > license and other subjobs).
> > > > > 
> > > > > пт, 26 апр. 2019 г. в 17:06, Maxim Muzafarov :
> > > > > > 
> > > > > > Folks,
> > > > > > 
> > > > > > +1 for merging all these suites into the single one. All these 
> > > > > > suites
> > > > > > (Build Apache Ignite, Javadoc, Licenses Header, Checkstyle) required
> > > > > > to be `green` all the time. So, we can consider making them a part 
> > > > > > of
> > > > > > build Apache Ignite procedure.
> > > > > > 
> > > > > > Also, I'd suggest going deeper. We can try to merge `Licenses 
> > > > > > Header`
> > > > > > into the `Code style checker` [1]. This will simplify the code
> > > > > > checking process.
> > > > > > 
> > > > > > [1] http://checkstyle.sourceforge.net/config_header.html
> > > > > > 
> > > > > > On Fri, 26 Apr 2019 at 13:17, Vyacheslav Daradur 
> > > > > >  wrote:
> > > > > > > 
> > > > > > > Ivan, you are right, I meant to combine them into one.
> > > > > > > 
> > > > > > > Here is a build [1], with enabled profiles (check-licenses,
> > > > > > > checkstyle) and check of javadoc to show the idea.
> > > > > > > 
> > > > > > > Seems it takes ~15 minutes.
> > > > > > > 
> > > > > > > [1] 
> > > > > > > https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteTests24Java8_ExperimentalBuildApacheIgniteJavadocLicensesHeaderCheckstyle&branch_IgniteTests24Java8=;;
> > > > > > > 
> > > > > > > On Fri, Apr 26, 2019 at 12:06 PM Павлухин Иван 
> > > > > > >  wrote:
> > > > > > > > 
> > > > > > > > Hi Vyacheslav,
> > > > > > > > 
> > > > > > > > What do you mean by uniting?
> > > > > > > > 
> > > > > > > > For me it looks like [Javadocs] and [Check Code Style] 

Re: Brainstorm: Make TC Run All faster

2019-04-29 Thread Павлухин Иван
Nikolay,

> Why we should imagine it?

Only in order to understand what do we mean by "faster". My question was:

1st approach will take less agent time in sum. 2nd approach will
complete faster in wall clock time. And your main concern is "total
agent time". Am I right?

пн, 29 апр. 2019 г. в 12:01, Nikolay Izhikov :
>
> > Let's imagine that we have an infinite number of agents
>
> Why we should imagine it?
> We don't have infinite number of agents.
>
> And we have several concurrent Run All.
>
>
> В Пн, 29/04/2019 в 11:50 +0300, Павлухин Иван пишет:
> > Vyacheslav,
> >
> > I finally figured out that "faster" means "total agent time".
> >
> > Let's imagine that we have an infinite number of agents. And 2 approaches:
> > 1. Uber "Build Apache Ignite" containing all checks.
> > 2. Separate jobs for compilation, checkstyle and etc.
> >
> > 1st approach will take less agent time in sum. 2nd approach will
> > complete faster in wall clock time. And your main concern is "total
> > agent time". Am I right?
> >
> > пн, 29 апр. 2019 г. в 11:42, Vyacheslav Daradur :
> > >
> > > Hi, Ivan,
> > >
> > > We are in the thread "Make TC Run All faster", so the main benefit is
> > > to make TC faster :)
> > >
> > > Advantages:
> > > - 1 TC agent required instead of 4;
> > > - RunAll will be faster, in case of builds queue;
> > >
> > > Also, the "licenses" profile is included in the step of a release
> > > build. I believe check-style also should be included.
> > >
> > > The generation of Javadocs is an optional step at preparing the
> > > release, but its check on TC takes significant time in case of the
> > > separate build.
> > >
> > > > > Returning to "Build Apache Ignite" it seems to me that ideally, it can
> > >
> > > be hierarchical.
> > >
> > > I agree, all the checks may be set as a separate step in the build's
> > > configuration. This helps with the main problem I'm trying to solve -
> > > resolving of dependencies which takes the most time of the builds.
> > >
> > > On Mon, Apr 29, 2019 at 11:24 AM Павлухин Иван  
> > > wrote:
> > > >
> > > > Vyacheslav, Maxim,
> > > >
> > > > Can we once again outline what benefits aggregated "Build Apache
> > > > Ignite" performing various checks has comparing to a modularized
> > > > approach in which separate builds perform separate tasks?
> > > >
> > > > For example, modularized approach looks nice because it is similar to
> > > > good practices in software development where we separate
> > > > responsibilities between different classes instead of aggregating them
> > > > into a single class. And as usual multiple classes works together
> > > > coordinating by a class from upper level. So, in fact it is a
> > > > hierarchical structure.
> > > >
> > > > Returning to "Build Apache Ignite" it seems to me that ideally it can
> > > > be hierarchical. There is a top level compilation (assembly?) job but
> > > > it is always clear what tasks does it perform (check style, check
> > > > license and other subjobs).
> > > >
> > > > пт, 26 апр. 2019 г. в 17:06, Maxim Muzafarov :
> > > > >
> > > > > Folks,
> > > > >
> > > > > +1 for merging all these suites into the single one. All these suites
> > > > > (Build Apache Ignite, Javadoc, Licenses Header, Checkstyle) required
> > > > > to be `green` all the time. So, we can consider making them a part of
> > > > > build Apache Ignite procedure.
> > > > >
> > > > > Also, I'd suggest going deeper. We can try to merge `Licenses Header`
> > > > > into the `Code style checker` [1]. This will simplify the code
> > > > > checking process.
> > > > >
> > > > > [1] http://checkstyle.sourceforge.net/config_header.html
> > > > >
> > > > > On Fri, 26 Apr 2019 at 13:17, Vyacheslav Daradur 
> > > > >  wrote:
> > > > > >
> > > > > > Ivan, you are right, I meant to combine them into one.
> > > > > >
> > > > > > Here is a build [1], with enabled profiles (check-licenses,
> > > > > > checkstyle) and check of javadoc to show the idea.
> > > > > >
> > > > > > Seems it takes ~15 minutes.
> > > > > >
> > > > > > [1] 
> > > > > > https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteTests24Java8_ExperimentalBuildApacheIgniteJavadocLicensesHeaderCheckstyle&branch_IgniteTests24Java8=;
> > > > > >
> > > > > > On Fri, Apr 26, 2019 at 12:06 PM Павлухин Иван 
> > > > > >  wrote:
> > > > > > >
> > > > > > > Hi Vyacheslav,
> > > > > > >
> > > > > > > What do you mean by uniting?
> > > > > > >
> > > > > > > For me it looks like [Javadocs] and [Check Code Style] are not so 
> > > > > > > time
> > > > > > > consuming comparing to tests, are not they? Do you suggest to 
> > > > > > > combine
> > > > > > > mentioned 4 jobs into one? How long will it run in a such case?
> > > > > > >
> > > > > > > чт, 25 апр. 2019 г. в 10:50, Vyacheslav Daradur 
> > > > > > > :
> > > > > > > >
> > > > > > > > Hi Igniters,
> > > > > > > >
> > > > > > > > At the moment we have several separated test suites:
> > > > > > > > * ~Build Apache Ignite~ _ ~10..20mins
> > > > > > > > * [Javadocs] _

Re: Brainstorm: Make TC Run All faster

2019-04-29 Thread Nikolay Izhikov
> Let's imagine that we have an infinite number of agents

Why we should imagine it?
We don't have infinite number of agents.

And we have several concurrent Run All.


В Пн, 29/04/2019 в 11:50 +0300, Павлухин Иван пишет:
> Vyacheslav,
> 
> I finally figured out that "faster" means "total agent time".
> 
> Let's imagine that we have an infinite number of agents. And 2 approaches:
> 1. Uber "Build Apache Ignite" containing all checks.
> 2. Separate jobs for compilation, checkstyle and etc.
> 
> 1st approach will take less agent time in sum. 2nd approach will
> complete faster in wall clock time. And your main concern is "total
> agent time". Am I right?
> 
> пн, 29 апр. 2019 г. в 11:42, Vyacheslav Daradur :
> > 
> > Hi, Ivan,
> > 
> > We are in the thread "Make TC Run All faster", so the main benefit is
> > to make TC faster :)
> > 
> > Advantages:
> > - 1 TC agent required instead of 4;
> > - RunAll will be faster, in case of builds queue;
> > 
> > Also, the "licenses" profile is included in the step of a release
> > build. I believe check-style also should be included.
> > 
> > The generation of Javadocs is an optional step at preparing the
> > release, but its check on TC takes significant time in case of the
> > separate build.
> > 
> > > > Returning to "Build Apache Ignite" it seems to me that ideally, it can
> > 
> > be hierarchical.
> > 
> > I agree, all the checks may be set as a separate step in the build's
> > configuration. This helps with the main problem I'm trying to solve -
> > resolving of dependencies which takes the most time of the builds.
> > 
> > On Mon, Apr 29, 2019 at 11:24 AM Павлухин Иван  wrote:
> > > 
> > > Vyacheslav, Maxim,
> > > 
> > > Can we once again outline what benefits aggregated "Build Apache
> > > Ignite" performing various checks has comparing to a modularized
> > > approach in which separate builds perform separate tasks?
> > > 
> > > For example, modularized approach looks nice because it is similar to
> > > good practices in software development where we separate
> > > responsibilities between different classes instead of aggregating them
> > > into a single class. And as usual multiple classes works together
> > > coordinating by a class from upper level. So, in fact it is a
> > > hierarchical structure.
> > > 
> > > Returning to "Build Apache Ignite" it seems to me that ideally it can
> > > be hierarchical. There is a top level compilation (assembly?) job but
> > > it is always clear what tasks does it perform (check style, check
> > > license and other subjobs).
> > > 
> > > пт, 26 апр. 2019 г. в 17:06, Maxim Muzafarov :
> > > > 
> > > > Folks,
> > > > 
> > > > +1 for merging all these suites into the single one. All these suites
> > > > (Build Apache Ignite, Javadoc, Licenses Header, Checkstyle) required
> > > > to be `green` all the time. So, we can consider making them a part of
> > > > build Apache Ignite procedure.
> > > > 
> > > > Also, I'd suggest going deeper. We can try to merge `Licenses Header`
> > > > into the `Code style checker` [1]. This will simplify the code
> > > > checking process.
> > > > 
> > > > [1] http://checkstyle.sourceforge.net/config_header.html
> > > > 
> > > > On Fri, 26 Apr 2019 at 13:17, Vyacheslav Daradur  
> > > > wrote:
> > > > > 
> > > > > Ivan, you are right, I meant to combine them into one.
> > > > > 
> > > > > Here is a build [1], with enabled profiles (check-licenses,
> > > > > checkstyle) and check of javadoc to show the idea.
> > > > > 
> > > > > Seems it takes ~15 minutes.
> > > > > 
> > > > > [1] 
> > > > > https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteTests24Java8_ExperimentalBuildApacheIgniteJavadocLicensesHeaderCheckstyle&branch_IgniteTests24Java8=;
> > > > > 
> > > > > On Fri, Apr 26, 2019 at 12:06 PM Павлухин Иван  
> > > > > wrote:
> > > > > > 
> > > > > > Hi Vyacheslav,
> > > > > > 
> > > > > > What do you mean by uniting?
> > > > > > 
> > > > > > For me it looks like [Javadocs] and [Check Code Style] are not so 
> > > > > > time
> > > > > > consuming comparing to tests, are not they? Do you suggest to 
> > > > > > combine
> > > > > > mentioned 4 jobs into one? How long will it run in a such case?
> > > > > > 
> > > > > > чт, 25 апр. 2019 г. в 10:50, Vyacheslav Daradur 
> > > > > > :
> > > > > > > 
> > > > > > > Hi Igniters,
> > > > > > > 
> > > > > > > At the moment we have several separated test suites:
> > > > > > > * ~Build Apache Ignite~ _ ~10..20mins
> > > > > > > * [Javadocs] _ ~10mins
> > > > > > > * [Licenses Headers] _ ~1min
> > > > > > > * [Check Code Style] _ ~7min
> > > > > > > The most time of each build (except Licenses Headers) is taken by
> > > > > > > dependency resolving.
> > > > > > > 
> > > > > > > Their main goal is a check that the project is built properly.
> > > > > > > 
> > > > > > > Also, profiles of [Javadocs], [Licenses Headers] uses at the step 
> > > > > > > of
> > > > > > > preparing release (see DEVNOTES.txt) that means they are 
> > > > > > > important.
> > > > > 

Re: Brainstorm: Make TC Run All faster

2019-04-29 Thread Павлухин Иван
Vyacheslav,

I finally figured out that "faster" means "total agent time".

Let's imagine that we have an infinite number of agents. And 2 approaches:
1. Uber "Build Apache Ignite" containing all checks.
2. Separate jobs for compilation, checkstyle and etc.

1st approach will take less agent time in sum. 2nd approach will
complete faster in wall clock time. And your main concern is "total
agent time". Am I right?

пн, 29 апр. 2019 г. в 11:42, Vyacheslav Daradur :
>
> Hi, Ivan,
>
> We are in the thread "Make TC Run All faster", so the main benefit is
> to make TC faster :)
>
> Advantages:
> - 1 TC agent required instead of 4;
> - RunAll will be faster, in case of builds queue;
>
> Also, the "licenses" profile is included in the step of a release
> build. I believe check-style also should be included.
>
> The generation of Javadocs is an optional step at preparing the
> release, but its check on TC takes significant time in case of the
> separate build.
>
> >> Returning to "Build Apache Ignite" it seems to me that ideally, it can
> be hierarchical.
>
> I agree, all the checks may be set as a separate step in the build's
> configuration. This helps with the main problem I'm trying to solve -
> resolving of dependencies which takes the most time of the builds.
>
> On Mon, Apr 29, 2019 at 11:24 AM Павлухин Иван  wrote:
> >
> > Vyacheslav, Maxim,
> >
> > Can we once again outline what benefits aggregated "Build Apache
> > Ignite" performing various checks has comparing to a modularized
> > approach in which separate builds perform separate tasks?
> >
> > For example, modularized approach looks nice because it is similar to
> > good practices in software development where we separate
> > responsibilities between different classes instead of aggregating them
> > into a single class. And as usual multiple classes works together
> > coordinating by a class from upper level. So, in fact it is a
> > hierarchical structure.
> >
> > Returning to "Build Apache Ignite" it seems to me that ideally it can
> > be hierarchical. There is a top level compilation (assembly?) job but
> > it is always clear what tasks does it perform (check style, check
> > license and other subjobs).
> >
> > пт, 26 апр. 2019 г. в 17:06, Maxim Muzafarov :
> > >
> > > Folks,
> > >
> > > +1 for merging all these suites into the single one. All these suites
> > > (Build Apache Ignite, Javadoc, Licenses Header, Checkstyle) required
> > > to be `green` all the time. So, we can consider making them a part of
> > > build Apache Ignite procedure.
> > >
> > > Also, I'd suggest going deeper. We can try to merge `Licenses Header`
> > > into the `Code style checker` [1]. This will simplify the code
> > > checking process.
> > >
> > > [1] http://checkstyle.sourceforge.net/config_header.html
> > >
> > > On Fri, 26 Apr 2019 at 13:17, Vyacheslav Daradur  
> > > wrote:
> > > >
> > > > Ivan, you are right, I meant to combine them into one.
> > > >
> > > > Here is a build [1], with enabled profiles (check-licenses,
> > > > checkstyle) and check of javadoc to show the idea.
> > > >
> > > > Seems it takes ~15 minutes.
> > > >
> > > > [1] 
> > > > https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteTests24Java8_ExperimentalBuildApacheIgniteJavadocLicensesHeaderCheckstyle&branch_IgniteTests24Java8=
> > > >
> > > > On Fri, Apr 26, 2019 at 12:06 PM Павлухин Иван  
> > > > wrote:
> > > > >
> > > > > Hi Vyacheslav,
> > > > >
> > > > > What do you mean by uniting?
> > > > >
> > > > > For me it looks like [Javadocs] and [Check Code Style] are not so time
> > > > > consuming comparing to tests, are not they? Do you suggest to combine
> > > > > mentioned 4 jobs into one? How long will it run in a such case?
> > > > >
> > > > > чт, 25 апр. 2019 г. в 10:50, Vyacheslav Daradur :
> > > > > >
> > > > > > Hi Igniters,
> > > > > >
> > > > > > At the moment we have several separated test suites:
> > > > > > * ~Build Apache Ignite~ _ ~10..20mins
> > > > > > * [Javadocs] _ ~10mins
> > > > > > * [Licenses Headers] _ ~1min
> > > > > > * [Check Code Style] _ ~7min
> > > > > > The most time of each build (except Licenses Headers) is taken by
> > > > > > dependency resolving.
> > > > > >
> > > > > > Their main goal is a check that the project is built properly.
> > > > > >
> > > > > > Also, profiles of [Javadocs], [Licenses Headers] uses at the step of
> > > > > > preparing release (see DEVNOTES.txt) that means they are important.
> > > > > >
> > > > > > I'd suggest uniting the builds, this should reduce the time of tests
> > > > > > on ~15 minutes and releases agents.
> > > > > >
> > > > > > What do you think?
> > > > > >
> > > > > > On Tue, Nov 27, 2018 at 3:56 PM Павлухин Иван  
> > > > > > wrote:
> > > > > > >
> > > > > > > Roman,
> > > > > > >
> > > > > > > Do you have some expectations how faster "correlated" tests
> > > > > > > elimination will make Run All? Also do you have a vision how can 
> > > > > > > we
> > > > > > > determine such "correlated" tests, can we do it relati

Re: Brainstorm: Make TC Run All faster

2019-04-29 Thread Vyacheslav Daradur
Hi, Ivan,

We are in the thread "Make TC Run All faster", so the main benefit is
to make TC faster :)

Advantages:
- 1 TC agent required instead of 4;
- RunAll will be faster, in case of builds queue;

Also, the "licenses" profile is included in the step of a release
build. I believe check-style also should be included.

The generation of Javadocs is an optional step at preparing the
release, but its check on TC takes significant time in case of the
separate build.

>> Returning to "Build Apache Ignite" it seems to me that ideally, it can
be hierarchical.

I agree, all the checks may be set as a separate step in the build's
configuration. This helps with the main problem I'm trying to solve -
resolving of dependencies which takes the most time of the builds.

On Mon, Apr 29, 2019 at 11:24 AM Павлухин Иван  wrote:
>
> Vyacheslav, Maxim,
>
> Can we once again outline what benefits aggregated "Build Apache
> Ignite" performing various checks has comparing to a modularized
> approach in which separate builds perform separate tasks?
>
> For example, modularized approach looks nice because it is similar to
> good practices in software development where we separate
> responsibilities between different classes instead of aggregating them
> into a single class. And as usual multiple classes works together
> coordinating by a class from upper level. So, in fact it is a
> hierarchical structure.
>
> Returning to "Build Apache Ignite" it seems to me that ideally it can
> be hierarchical. There is a top level compilation (assembly?) job but
> it is always clear what tasks does it perform (check style, check
> license and other subjobs).
>
> пт, 26 апр. 2019 г. в 17:06, Maxim Muzafarov :
> >
> > Folks,
> >
> > +1 for merging all these suites into the single one. All these suites
> > (Build Apache Ignite, Javadoc, Licenses Header, Checkstyle) required
> > to be `green` all the time. So, we can consider making them a part of
> > build Apache Ignite procedure.
> >
> > Also, I'd suggest going deeper. We can try to merge `Licenses Header`
> > into the `Code style checker` [1]. This will simplify the code
> > checking process.
> >
> > [1] http://checkstyle.sourceforge.net/config_header.html
> >
> > On Fri, 26 Apr 2019 at 13:17, Vyacheslav Daradur  
> > wrote:
> > >
> > > Ivan, you are right, I meant to combine them into one.
> > >
> > > Here is a build [1], with enabled profiles (check-licenses,
> > > checkstyle) and check of javadoc to show the idea.
> > >
> > > Seems it takes ~15 minutes.
> > >
> > > [1] 
> > > https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteTests24Java8_ExperimentalBuildApacheIgniteJavadocLicensesHeaderCheckstyle&branch_IgniteTests24Java8=
> > >
> > > On Fri, Apr 26, 2019 at 12:06 PM Павлухин Иван  
> > > wrote:
> > > >
> > > > Hi Vyacheslav,
> > > >
> > > > What do you mean by uniting?
> > > >
> > > > For me it looks like [Javadocs] and [Check Code Style] are not so time
> > > > consuming comparing to tests, are not they? Do you suggest to combine
> > > > mentioned 4 jobs into one? How long will it run in a such case?
> > > >
> > > > чт, 25 апр. 2019 г. в 10:50, Vyacheslav Daradur :
> > > > >
> > > > > Hi Igniters,
> > > > >
> > > > > At the moment we have several separated test suites:
> > > > > * ~Build Apache Ignite~ _ ~10..20mins
> > > > > * [Javadocs] _ ~10mins
> > > > > * [Licenses Headers] _ ~1min
> > > > > * [Check Code Style] _ ~7min
> > > > > The most time of each build (except Licenses Headers) is taken by
> > > > > dependency resolving.
> > > > >
> > > > > Their main goal is a check that the project is built properly.
> > > > >
> > > > > Also, profiles of [Javadocs], [Licenses Headers] uses at the step of
> > > > > preparing release (see DEVNOTES.txt) that means they are important.
> > > > >
> > > > > I'd suggest uniting the builds, this should reduce the time of tests
> > > > > on ~15 minutes and releases agents.
> > > > >
> > > > > What do you think?
> > > > >
> > > > > On Tue, Nov 27, 2018 at 3:56 PM Павлухин Иван  
> > > > > wrote:
> > > > > >
> > > > > > Roman,
> > > > > >
> > > > > > Do you have some expectations how faster "correlated" tests
> > > > > > elimination will make Run All? Also do you have a vision how can we
> > > > > > determine such "correlated" tests, can we do it relatively fast?
> > > > > >
> > > > > > But all in all, I am not sure that reducing a group of correlated
> > > > > > tests to only one test can show good stability.
> > > > > > пн, 26 нояб. 2018 г. в 17:48, aplatonov :
> > > > > > >
> > > > > > > It should be noticed that additional parameter TEST_SCALE_FACTOR 
> > > > > > > was added.
> > > > > > > This parameter with ScaleFactorUtil methods can be used for test 
> > > > > > > size
> > > > > > > scaling for different runs (like ordinary and nightly RunALLs). 
> > > > > > > If someone
> > > > > > > want to distinguish these builds he/she can apply scaling methods 
> > > > > > > from
> > > > > > > ScaleFactorUtil in own tests. For nightly test 
> >

Re: Brainstorm: Make TC Run All faster

2019-04-29 Thread Павлухин Иван
Vyacheslav, Maxim,

Can we once again outline what benefits aggregated "Build Apache
Ignite" performing various checks has comparing to a modularized
approach in which separate builds perform separate tasks?

For example, modularized approach looks nice because it is similar to
good practices in software development where we separate
responsibilities between different classes instead of aggregating them
into a single class. And as usual multiple classes works together
coordinating by a class from upper level. So, in fact it is a
hierarchical structure.

Returning to "Build Apache Ignite" it seems to me that ideally it can
be hierarchical. There is a top level compilation (assembly?) job but
it is always clear what tasks does it perform (check style, check
license and other subjobs).

пт, 26 апр. 2019 г. в 17:06, Maxim Muzafarov :
>
> Folks,
>
> +1 for merging all these suites into the single one. All these suites
> (Build Apache Ignite, Javadoc, Licenses Header, Checkstyle) required
> to be `green` all the time. So, we can consider making them a part of
> build Apache Ignite procedure.
>
> Also, I'd suggest going deeper. We can try to merge `Licenses Header`
> into the `Code style checker` [1]. This will simplify the code
> checking process.
>
> [1] http://checkstyle.sourceforge.net/config_header.html
>
> On Fri, 26 Apr 2019 at 13:17, Vyacheslav Daradur  wrote:
> >
> > Ivan, you are right, I meant to combine them into one.
> >
> > Here is a build [1], with enabled profiles (check-licenses,
> > checkstyle) and check of javadoc to show the idea.
> >
> > Seems it takes ~15 minutes.
> >
> > [1] 
> > https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteTests24Java8_ExperimentalBuildApacheIgniteJavadocLicensesHeaderCheckstyle&branch_IgniteTests24Java8=
> >
> > On Fri, Apr 26, 2019 at 12:06 PM Павлухин Иван  wrote:
> > >
> > > Hi Vyacheslav,
> > >
> > > What do you mean by uniting?
> > >
> > > For me it looks like [Javadocs] and [Check Code Style] are not so time
> > > consuming comparing to tests, are not they? Do you suggest to combine
> > > mentioned 4 jobs into one? How long will it run in a such case?
> > >
> > > чт, 25 апр. 2019 г. в 10:50, Vyacheslav Daradur :
> > > >
> > > > Hi Igniters,
> > > >
> > > > At the moment we have several separated test suites:
> > > > * ~Build Apache Ignite~ _ ~10..20mins
> > > > * [Javadocs] _ ~10mins
> > > > * [Licenses Headers] _ ~1min
> > > > * [Check Code Style] _ ~7min
> > > > The most time of each build (except Licenses Headers) is taken by
> > > > dependency resolving.
> > > >
> > > > Their main goal is a check that the project is built properly.
> > > >
> > > > Also, profiles of [Javadocs], [Licenses Headers] uses at the step of
> > > > preparing release (see DEVNOTES.txt) that means they are important.
> > > >
> > > > I'd suggest uniting the builds, this should reduce the time of tests
> > > > on ~15 minutes and releases agents.
> > > >
> > > > What do you think?
> > > >
> > > > On Tue, Nov 27, 2018 at 3:56 PM Павлухин Иван  
> > > > wrote:
> > > > >
> > > > > Roman,
> > > > >
> > > > > Do you have some expectations how faster "correlated" tests
> > > > > elimination will make Run All? Also do you have a vision how can we
> > > > > determine such "correlated" tests, can we do it relatively fast?
> > > > >
> > > > > But all in all, I am not sure that reducing a group of correlated
> > > > > tests to only one test can show good stability.
> > > > > пн, 26 нояб. 2018 г. в 17:48, aplatonov :
> > > > > >
> > > > > > It should be noticed that additional parameter TEST_SCALE_FACTOR 
> > > > > > was added.
> > > > > > This parameter with ScaleFactorUtil methods can be used for test 
> > > > > > size
> > > > > > scaling for different runs (like ordinary and nightly RunALLs). If 
> > > > > > someone
> > > > > > want to distinguish these builds he/she can apply scaling methods 
> > > > > > from
> > > > > > ScaleFactorUtil in own tests. For nightly test 
> > > > > > TEST_SCALE_FACTOR=1.0, for
> > > > > > non-nightly builds TEST_SCALE_FACTOR<1.0. For example in
> > > > > > GridAbstractCacheInterceptorRebalanceTest test ScaleFactorUtil was 
> > > > > > used for
> > > > > > scaling count of iterations. I guess that TEST_SCALE_FACTOR support 
> > > > > > will be
> > > > > > added to runs at the same time with RunALL (nightly) runs.
> > > > > >
> > > > > >
> > > > > >
> > > > > > --
> > > > > > Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Best regards,
> > > > > Ivan Pavlukhin
> > > >
> > > >
> > > >
> > > > --
> > > > Best Regards, Vyacheslav D.
> > >
> > >
> > >
> > > --
> > > Best regards,
> > > Ivan Pavlukhin
> >
> >
> >
> > --
> > Best Regards, Vyacheslav D.



-- 
Best regards,
Ivan Pavlukhin


Re: Brainstorm: Make TC Run All faster

2019-04-26 Thread Maxim Muzafarov
Folks,

+1 for merging all these suites into the single one. All these suites
(Build Apache Ignite, Javadoc, Licenses Header, Checkstyle) required
to be `green` all the time. So, we can consider making them a part of
build Apache Ignite procedure.

Also, I'd suggest going deeper. We can try to merge `Licenses Header`
into the `Code style checker` [1]. This will simplify the code
checking process.

[1] http://checkstyle.sourceforge.net/config_header.html

On Fri, 26 Apr 2019 at 13:17, Vyacheslav Daradur  wrote:
>
> Ivan, you are right, I meant to combine them into one.
>
> Here is a build [1], with enabled profiles (check-licenses,
> checkstyle) and check of javadoc to show the idea.
>
> Seems it takes ~15 minutes.
>
> [1] 
> https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteTests24Java8_ExperimentalBuildApacheIgniteJavadocLicensesHeaderCheckstyle&branch_IgniteTests24Java8=
>
> On Fri, Apr 26, 2019 at 12:06 PM Павлухин Иван  wrote:
> >
> > Hi Vyacheslav,
> >
> > What do you mean by uniting?
> >
> > For me it looks like [Javadocs] and [Check Code Style] are not so time
> > consuming comparing to tests, are not they? Do you suggest to combine
> > mentioned 4 jobs into one? How long will it run in a such case?
> >
> > чт, 25 апр. 2019 г. в 10:50, Vyacheslav Daradur :
> > >
> > > Hi Igniters,
> > >
> > > At the moment we have several separated test suites:
> > > * ~Build Apache Ignite~ _ ~10..20mins
> > > * [Javadocs] _ ~10mins
> > > * [Licenses Headers] _ ~1min
> > > * [Check Code Style] _ ~7min
> > > The most time of each build (except Licenses Headers) is taken by
> > > dependency resolving.
> > >
> > > Their main goal is a check that the project is built properly.
> > >
> > > Also, profiles of [Javadocs], [Licenses Headers] uses at the step of
> > > preparing release (see DEVNOTES.txt) that means they are important.
> > >
> > > I'd suggest uniting the builds, this should reduce the time of tests
> > > on ~15 minutes and releases agents.
> > >
> > > What do you think?
> > >
> > > On Tue, Nov 27, 2018 at 3:56 PM Павлухин Иван  wrote:
> > > >
> > > > Roman,
> > > >
> > > > Do you have some expectations how faster "correlated" tests
> > > > elimination will make Run All? Also do you have a vision how can we
> > > > determine such "correlated" tests, can we do it relatively fast?
> > > >
> > > > But all in all, I am not sure that reducing a group of correlated
> > > > tests to only one test can show good stability.
> > > > пн, 26 нояб. 2018 г. в 17:48, aplatonov :
> > > > >
> > > > > It should be noticed that additional parameter TEST_SCALE_FACTOR was 
> > > > > added.
> > > > > This parameter with ScaleFactorUtil methods can be used for test size
> > > > > scaling for different runs (like ordinary and nightly RunALLs). If 
> > > > > someone
> > > > > want to distinguish these builds he/she can apply scaling methods from
> > > > > ScaleFactorUtil in own tests. For nightly test TEST_SCALE_FACTOR=1.0, 
> > > > > for
> > > > > non-nightly builds TEST_SCALE_FACTOR<1.0. For example in
> > > > > GridAbstractCacheInterceptorRebalanceTest test ScaleFactorUtil was 
> > > > > used for
> > > > > scaling count of iterations. I guess that TEST_SCALE_FACTOR support 
> > > > > will be
> > > > > added to runs at the same time with RunALL (nightly) runs.
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/
> > > >
> > > >
> > > >
> > > > --
> > > > Best regards,
> > > > Ivan Pavlukhin
> > >
> > >
> > >
> > > --
> > > Best Regards, Vyacheslav D.
> >
> >
> >
> > --
> > Best regards,
> > Ivan Pavlukhin
>
>
>
> --
> Best Regards, Vyacheslav D.


Re: Brainstorm: Make TC Run All faster

2019-04-26 Thread Vyacheslav Daradur
Ivan, you are right, I meant to combine them into one.

Here is a build [1], with enabled profiles (check-licenses,
checkstyle) and check of javadoc to show the idea.

Seems it takes ~15 minutes.

[1] 
https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteTests24Java8_ExperimentalBuildApacheIgniteJavadocLicensesHeaderCheckstyle&branch_IgniteTests24Java8=

On Fri, Apr 26, 2019 at 12:06 PM Павлухин Иван  wrote:
>
> Hi Vyacheslav,
>
> What do you mean by uniting?
>
> For me it looks like [Javadocs] and [Check Code Style] are not so time
> consuming comparing to tests, are not they? Do you suggest to combine
> mentioned 4 jobs into one? How long will it run in a such case?
>
> чт, 25 апр. 2019 г. в 10:50, Vyacheslav Daradur :
> >
> > Hi Igniters,
> >
> > At the moment we have several separated test suites:
> > * ~Build Apache Ignite~ _ ~10..20mins
> > * [Javadocs] _ ~10mins
> > * [Licenses Headers] _ ~1min
> > * [Check Code Style] _ ~7min
> > The most time of each build (except Licenses Headers) is taken by
> > dependency resolving.
> >
> > Their main goal is a check that the project is built properly.
> >
> > Also, profiles of [Javadocs], [Licenses Headers] uses at the step of
> > preparing release (see DEVNOTES.txt) that means they are important.
> >
> > I'd suggest uniting the builds, this should reduce the time of tests
> > on ~15 minutes and releases agents.
> >
> > What do you think?
> >
> > On Tue, Nov 27, 2018 at 3:56 PM Павлухин Иван  wrote:
> > >
> > > Roman,
> > >
> > > Do you have some expectations how faster "correlated" tests
> > > elimination will make Run All? Also do you have a vision how can we
> > > determine such "correlated" tests, can we do it relatively fast?
> > >
> > > But all in all, I am not sure that reducing a group of correlated
> > > tests to only one test can show good stability.
> > > пн, 26 нояб. 2018 г. в 17:48, aplatonov :
> > > >
> > > > It should be noticed that additional parameter TEST_SCALE_FACTOR was 
> > > > added.
> > > > This parameter with ScaleFactorUtil methods can be used for test size
> > > > scaling for different runs (like ordinary and nightly RunALLs). If 
> > > > someone
> > > > want to distinguish these builds he/she can apply scaling methods from
> > > > ScaleFactorUtil in own tests. For nightly test TEST_SCALE_FACTOR=1.0, 
> > > > for
> > > > non-nightly builds TEST_SCALE_FACTOR<1.0. For example in
> > > > GridAbstractCacheInterceptorRebalanceTest test ScaleFactorUtil was used 
> > > > for
> > > > scaling count of iterations. I guess that TEST_SCALE_FACTOR support 
> > > > will be
> > > > added to runs at the same time with RunALL (nightly) runs.
> > > >
> > > >
> > > >
> > > > --
> > > > Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/
> > >
> > >
> > >
> > > --
> > > Best regards,
> > > Ivan Pavlukhin
> >
> >
> >
> > --
> > Best Regards, Vyacheslav D.
>
>
>
> --
> Best regards,
> Ivan Pavlukhin



-- 
Best Regards, Vyacheslav D.


Re: Brainstorm: Make TC Run All faster

2019-04-26 Thread Павлухин Иван
Hi Vyacheslav,

What do you mean by uniting?

For me it looks like [Javadocs] and [Check Code Style] are not so time
consuming comparing to tests, are not they? Do you suggest to combine
mentioned 4 jobs into one? How long will it run in a such case?

чт, 25 апр. 2019 г. в 10:50, Vyacheslav Daradur :
>
> Hi Igniters,
>
> At the moment we have several separated test suites:
> * ~Build Apache Ignite~ _ ~10..20mins
> * [Javadocs] _ ~10mins
> * [Licenses Headers] _ ~1min
> * [Check Code Style] _ ~7min
> The most time of each build (except Licenses Headers) is taken by
> dependency resolving.
>
> Their main goal is a check that the project is built properly.
>
> Also, profiles of [Javadocs], [Licenses Headers] uses at the step of
> preparing release (see DEVNOTES.txt) that means they are important.
>
> I'd suggest uniting the builds, this should reduce the time of tests
> on ~15 minutes and releases agents.
>
> What do you think?
>
> On Tue, Nov 27, 2018 at 3:56 PM Павлухин Иван  wrote:
> >
> > Roman,
> >
> > Do you have some expectations how faster "correlated" tests
> > elimination will make Run All? Also do you have a vision how can we
> > determine such "correlated" tests, can we do it relatively fast?
> >
> > But all in all, I am not sure that reducing a group of correlated
> > tests to only one test can show good stability.
> > пн, 26 нояб. 2018 г. в 17:48, aplatonov :
> > >
> > > It should be noticed that additional parameter TEST_SCALE_FACTOR was 
> > > added.
> > > This parameter with ScaleFactorUtil methods can be used for test size
> > > scaling for different runs (like ordinary and nightly RunALLs). If someone
> > > want to distinguish these builds he/she can apply scaling methods from
> > > ScaleFactorUtil in own tests. For nightly test TEST_SCALE_FACTOR=1.0, for
> > > non-nightly builds TEST_SCALE_FACTOR<1.0. For example in
> > > GridAbstractCacheInterceptorRebalanceTest test ScaleFactorUtil was used 
> > > for
> > > scaling count of iterations. I guess that TEST_SCALE_FACTOR support will 
> > > be
> > > added to runs at the same time with RunALL (nightly) runs.
> > >
> > >
> > >
> > > --
> > > Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/
> >
> >
> >
> > --
> > Best regards,
> > Ivan Pavlukhin
>
>
>
> --
> Best Regards, Vyacheslav D.



-- 
Best regards,
Ivan Pavlukhin


Re: Brainstorm: Make TC Run All faster

2019-04-25 Thread Vyacheslav Daradur
Hi Igniters,

At the moment we have several separated test suites:
* ~Build Apache Ignite~ _ ~10..20mins
* [Javadocs] _ ~10mins
* [Licenses Headers] _ ~1min
* [Check Code Style] _ ~7min
The most time of each build (except Licenses Headers) is taken by
dependency resolving.

Their main goal is a check that the project is built properly.

Also, profiles of [Javadocs], [Licenses Headers] uses at the step of
preparing release (see DEVNOTES.txt) that means they are important.

I'd suggest uniting the builds, this should reduce the time of tests
on ~15 minutes and releases agents.

What do you think?

On Tue, Nov 27, 2018 at 3:56 PM Павлухин Иван  wrote:
>
> Roman,
>
> Do you have some expectations how faster "correlated" tests
> elimination will make Run All? Also do you have a vision how can we
> determine such "correlated" tests, can we do it relatively fast?
>
> But all in all, I am not sure that reducing a group of correlated
> tests to only one test can show good stability.
> пн, 26 нояб. 2018 г. в 17:48, aplatonov :
> >
> > It should be noticed that additional parameter TEST_SCALE_FACTOR was added.
> > This parameter with ScaleFactorUtil methods can be used for test size
> > scaling for different runs (like ordinary and nightly RunALLs). If someone
> > want to distinguish these builds he/she can apply scaling methods from
> > ScaleFactorUtil in own tests. For nightly test TEST_SCALE_FACTOR=1.0, for
> > non-nightly builds TEST_SCALE_FACTOR<1.0. For example in
> > GridAbstractCacheInterceptorRebalanceTest test ScaleFactorUtil was used for
> > scaling count of iterations. I guess that TEST_SCALE_FACTOR support will be
> > added to runs at the same time with RunALL (nightly) runs.
> >
> >
> >
> > --
> > Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/
>
>
>
> --
> Best regards,
> Ivan Pavlukhin



-- 
Best Regards, Vyacheslav D.


Re: Brainstorm: Make TC Run All faster

2018-11-27 Thread Павлухин Иван
Roman,

Do you have some expectations how faster "correlated" tests
elimination will make Run All? Also do you have a vision how can we
determine such "correlated" tests, can we do it relatively fast?

But all in all, I am not sure that reducing a group of correlated
tests to only one test can show good stability.
пн, 26 нояб. 2018 г. в 17:48, aplatonov :
>
> It should be noticed that additional parameter TEST_SCALE_FACTOR was added.
> This parameter with ScaleFactorUtil methods can be used for test size
> scaling for different runs (like ordinary and nightly RunALLs). If someone
> want to distinguish these builds he/she can apply scaling methods from
> ScaleFactorUtil in own tests. For nightly test TEST_SCALE_FACTOR=1.0, for
> non-nightly builds TEST_SCALE_FACTOR<1.0. For example in
> GridAbstractCacheInterceptorRebalanceTest test ScaleFactorUtil was used for
> scaling count of iterations. I guess that TEST_SCALE_FACTOR support will be
> added to runs at the same time with RunALL (nightly) runs.
>
>
>
> --
> Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/



-- 
Best regards,
Ivan Pavlukhin


Re: Brainstorm: Make TC Run All faster

2018-11-26 Thread aplatonov
It should be noticed that additional parameter TEST_SCALE_FACTOR was added.
This parameter with ScaleFactorUtil methods can be used for test size
scaling for different runs (like ordinary and nightly RunALLs). If someone
want to distinguish these builds he/she can apply scaling methods from
ScaleFactorUtil in own tests. For nightly test TEST_SCALE_FACTOR=1.0, for
non-nightly builds TEST_SCALE_FACTOR<1.0. For example in
GridAbstractCacheInterceptorRebalanceTest test ScaleFactorUtil was used for
scaling count of iterations. I guess that TEST_SCALE_FACTOR support will be
added to runs at the same time with RunALL (nightly) runs.



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


Re: Brainstorm: Make TC Run All faster

2018-11-26 Thread Petr Ivanov
I see, thanks!

> On 26 Nov 2018, at 11:46, Roman Kondakov  wrote:
> 
> Hi, Petr!
> 
> Actually these tests do not behave exactly as one test, but they behave 
> mostly as one test. Often this is expressed in the following: we have a 
> feature to test (i.e. transaction isolation) and different sets of parameters 
> to be tested with this feature: cache mode, backups number, cluster size, 
> persistence enabled/disabled, etc. And we have a list of tests with different 
> combinations of these parameters:
> 
> testTxIsolation(Replicated, 0 backups, 1 severs 0 clients,   persistence 
> disabled)
> testTxIsolation(Replicated, 0 backups, 2 severs 1 clients,   persistence 
> disabled)
> testTxIsolation(Replicated, 0 backups, 4 severs 2 clients,   persistence 
> disabled)
> testTxIsolation(Replicated, 0 backups, 1 severs 0 clients,   persistence 
> enabled)
> testTxIsolation(Replicated, 0 backups, 2 severs 1 clients,   persistence 
> enabled)
> testTxIsolation(Replicated, 0 backups, 4 severs 2 clients,   persistence 
> enabled)
> testTxIsolation(Partitioned, 0 backups, 1 severs 0 clients,   persistence 
> disabled)
> testTxIsolation(Partitioned, 1 backups, 2 severs 1 clients,   persistence 
> disabled)
> testTxIsolation(Partitioned, 2 backups, 4 severs 2 clients,   persistence 
> disabled)
> testTxIsolation(Partitioned, 0 backups, 1 severs 0 clients,   persistence 
> enabled)
> testTxIsolation(Partitioned, 1 backups, 2 severs 1 clients,   persistence 
> enabled)
> testTxIsolation(Partitioned, 2 backups, 4 severs 2 clients,   persistence 
> enabled)
> 
> Each test in this list represents a special case which should be tested. If  
> the key functionality of Tx isolation is broken by  developer - all tests 
> will be failed. But there are a very rare cases when only a subset of this 
> tests is failed when others are green. In my opinion for "fast" runs we 
> should trigger only one or two tests from this group - it should be enough to 
> detect the most of bugs. But for night runs, of course, all cases should be 
> checked.
> 
> -- 
> Kind Regards
> Roman Kondakov
> 
> On 26.11.2018 11:11, Petr Ivanov wrote:
>> Hi, Roman.
>> 
>>> On 25 Nov 2018, at 21:26, Roman Kondakov  wrote:
>>> 
>>> Hi Dmitriy!
>>> 
>>> We have over 50 000 test in our tests base. And this number will be 
>>> noticeably increased soon by MVCC tests coverage activity. This means that 
>>> it is very difficult to rework and rewrite these test manually to make it 
>>> run faster. But we can choose another way. Do we have an ability to perform 
>>> a statistical analysis over a considerable number of last tests runs? If we 
>>> do, let's consider two points:
>>> 
>>> 1. After careful consideration in terms of statistics it may turnout that 
>>> significant number of these test are "evergreen" tests. It means that these 
>>> tests check cases which are very difficult to break. If so, why should we 
>>> run these tests each time? They are great candidates for night runs.
>>> 
>>> 2. After dropping "evergreen" tests there are may be a number of tests with 
>>> correlated results. There could be a lot of test groups with a some number 
>>> of tests in each group, where either all tests are red or all tests are 
>>> green. In this case in "fast" runs we can launch only one test from each 
>>> group instead of entire group. Other tests in group can be launched at 
>>> night build.
>> What’s the point of having all this tests if they behave as one and will 
>> never fail exclusively?
>> Maybe such tests require optimisation and shrinking into one?
>> 
>> 
>>> 
>>> Having a list of "good" tests (good tests = all tests - evergreen tests - 
>>> groups (except chosen represenative from each group)), we can mark these 
>>> tests with annotation @Category (or @Tag in junit 5). For fast tests runs 
>>> we can run only annotated tests, for night runs - all tests as usual.
>>> 
>>> When new test is added developers could decide to add or not to add this 
>>> annotation.
>>> 
>>> Annotated tests list should be reviewed monthly or weekly. Or, if possible, 
>>> automate this procedure.
>>> 
>>> 
>>> -- 
>>> Kind Regards
>>> Roman Kondakov
>>> 
>>> On 15.11.2018 13:34, Dmitriy Pavlov wrote:
 Hi Igniters,
 
 
 
 Some of us started to use the Bot to get an approval of PRs. It helps to
 protect master from new failures, but this requires to run RunAll tests set
 for each commit and this makes markable pressure to TC infra.
 
 
 
 I would like to ask you to share your ideas on how to make runAll faster,
 maybe you can share any of your measurements and any other info about
 (possible) bottlenecks.
 
 
 
 Sincerely,
 
 Dmitriy Pavlov
 



Re: Brainstorm: Make TC Run All faster

2018-11-26 Thread Roman Kondakov

Hi, Petr!

Actually these tests do not behave exactly as one test, but they behave 
mostly as one test. Often this is expressed in the following: we have a 
feature to test (i.e. transaction isolation) and different sets of 
parameters to be tested with this feature: cache mode, backups number, 
cluster size, persistence enabled/disabled, etc. And we have a list of 
tests with different combinations of these parameters:


testTxIsolation(Replicated, 0 backups, 1 severs 0 clients,   persistence 
disabled)
testTxIsolation(Replicated, 0 backups, 2 severs 1 clients,   persistence 
disabled)
testTxIsolation(Replicated, 0 backups, 4 severs 2 clients,   persistence 
disabled)
testTxIsolation(Replicated, 0 backups, 1 severs 0 clients,   persistence 
enabled)
testTxIsolation(Replicated, 0 backups, 2 severs 1 clients,   persistence 
enabled)
testTxIsolation(Replicated, 0 backups, 4 severs 2 clients,   persistence 
enabled)
testTxIsolation(Partitioned, 0 backups, 1 severs 0 clients,   
persistence disabled)
testTxIsolation(Partitioned, 1 backups, 2 severs 1 clients,   
persistence disabled)
testTxIsolation(Partitioned, 2 backups, 4 severs 2 clients,   
persistence disabled)
testTxIsolation(Partitioned, 0 backups, 1 severs 0 clients,   
persistence enabled)
testTxIsolation(Partitioned, 1 backups, 2 severs 1 clients,   
persistence enabled)
testTxIsolation(Partitioned, 2 backups, 4 severs 2 clients,   
persistence enabled)


Each test in this list represents a special case which should be tested. 
If  the key functionality of Tx isolation is broken by  developer - all 
tests will be failed. But there are a very rare cases when only a subset 
of this tests is failed when others are green. In my opinion for "fast" 
runs we should trigger only one or two tests from this group - it should 
be enough to detect the most of bugs. But for night runs, of course, all 
cases should be checked.


--
Kind Regards
Roman Kondakov

On 26.11.2018 11:11, Petr Ivanov wrote:

Hi, Roman.


On 25 Nov 2018, at 21:26, Roman Kondakov  wrote:

Hi Dmitriy!

We have over 50 000 test in our tests base. And this number will be noticeably 
increased soon by MVCC tests coverage activity. This means that it is very 
difficult to rework and rewrite these test manually to make it run faster. But 
we can choose another way. Do we have an ability to perform a statistical 
analysis over a considerable number of last tests runs? If we do, let's 
consider two points:

1. After careful consideration in terms of statistics it may turnout that significant 
number of these test are "evergreen" tests. It means that these tests check 
cases which are very difficult to break. If so, why should we run these tests each time? 
They are great candidates for night runs.

2. After dropping "evergreen" tests there are may be a number of tests with correlated 
results. There could be a lot of test groups with a some number of tests in each group, where 
either all tests are red or all tests are green. In this case in "fast" runs we can 
launch only one test from each group instead of entire group. Other tests in group can be launched 
at night build.

What’s the point of having all this tests if they behave as one and will never 
fail exclusively?
Maybe such tests require optimisation and shrinking into one?




Having a list of "good" tests (good tests = all tests - evergreen tests - 
groups (except chosen represenative from each group)), we can mark these tests with 
annotation @Category (or @Tag in junit 5). For fast tests runs we can run only annotated 
tests, for night runs - all tests as usual.

When new test is added developers could decide to add or not to add this 
annotation.

Annotated tests list should be reviewed monthly or weekly. Or, if possible, 
automate this procedure.


--
Kind Regards
Roman Kondakov

On 15.11.2018 13:34, Dmitriy Pavlov wrote:

Hi Igniters,



Some of us started to use the Bot to get an approval of PRs. It helps to
protect master from new failures, but this requires to run RunAll tests set
for each commit and this makes markable pressure to TC infra.



I would like to ask you to share your ideas on how to make runAll faster,
maybe you can share any of your measurements and any other info about
(possible) bottlenecks.



Sincerely,

Dmitriy Pavlov



Re: Brainstorm: Make TC Run All faster

2018-11-26 Thread Petr Ivanov
Hi, Roman.

> On 25 Nov 2018, at 21:26, Roman Kondakov  wrote:
> 
> Hi Dmitriy!
> 
> We have over 50 000 test in our tests base. And this number will be 
> noticeably increased soon by MVCC tests coverage activity. This means that it 
> is very difficult to rework and rewrite these test manually to make it run 
> faster. But we can choose another way. Do we have an ability to perform a 
> statistical analysis over a considerable number of last tests runs? If we do, 
> let's consider two points:
> 
> 1. After careful consideration in terms of statistics it may turnout that 
> significant number of these test are "evergreen" tests. It means that these 
> tests check cases which are very difficult to break. If so, why should we run 
> these tests each time? They are great candidates for night runs.
> 
> 2. After dropping "evergreen" tests there are may be a number of tests with 
> correlated results. There could be a lot of test groups with a some number of 
> tests in each group, where either all tests are red or all tests are green. 
> In this case in "fast" runs we can launch only one test from each group 
> instead of entire group. Other tests in group can be launched at night build.

What’s the point of having all this tests if they behave as one and will never 
fail exclusively?
Maybe such tests require optimisation and shrinking into one?


> 
> 
> Having a list of "good" tests (good tests = all tests - evergreen tests - 
> groups (except chosen represenative from each group)), we can mark these 
> tests with annotation @Category (or @Tag in junit 5). For fast tests runs we 
> can run only annotated tests, for night runs - all tests as usual.
> 
> When new test is added developers could decide to add or not to add this 
> annotation.
> 
> Annotated tests list should be reviewed monthly or weekly. Or, if possible, 
> automate this procedure.
> 
> 
> -- 
> Kind Regards
> Roman Kondakov
> 
> On 15.11.2018 13:34, Dmitriy Pavlov wrote:
>> Hi Igniters,
>> 
>> 
>> 
>> Some of us started to use the Bot to get an approval of PRs. It helps to
>> protect master from new failures, but this requires to run RunAll tests set
>> for each commit and this makes markable pressure to TC infra.
>> 
>> 
>> 
>> I would like to ask you to share your ideas on how to make runAll faster,
>> maybe you can share any of your measurements and any other info about
>> (possible) bottlenecks.
>> 
>> 
>> 
>> Sincerely,
>> 
>> Dmitriy Pavlov
>> 



Re: Brainstorm: Make TC Run All faster

2018-11-25 Thread Roman Kondakov

Hi Dmitriy!

We have over 50 000 test in our tests base. And this number will be 
noticeably increased soon by MVCC tests coverage activity. This means 
that it is very difficult to rework and rewrite these test manually to 
make it run faster. But we can choose another way. Do we have an ability 
to perform a statistical analysis over a considerable number of last 
tests runs? If we do, let's consider two points:


1. After careful consideration in terms of statistics it may turnout 
that significant number of these test are "evergreen" tests. It means 
that these tests check cases which are very difficult to break. If so, 
why should we run these tests each time? They are great candidates for 
night runs.


2. After dropping "evergreen" tests there are may be a number of tests 
with correlated results. There could be a lot of test groups with a some 
number of tests in each group, where either all tests are red or all 
tests are green. In this case in "fast" runs we can launch only one test 
from each group instead of entire group. Other tests in group can be 
launched at night build.



Having a list of "good" tests (good tests = all tests - evergreen tests 
- groups (except chosen represenative from each group)), we can mark 
these tests with annotation @Category (or @Tag in junit 5). For fast 
tests runs we can run only annotated tests, for night runs - all tests 
as usual.


When new test is added developers could decide to add or not to add this 
annotation.


Annotated tests list should be reviewed monthly or weekly. Or, if 
possible, automate this procedure.



--
Kind Regards
Roman Kondakov

On 15.11.2018 13:34, Dmitriy Pavlov wrote:

Hi Igniters,



Some of us started to use the Bot to get an approval of PRs. It helps to
protect master from new failures, but this requires to run RunAll tests set
for each commit and this makes markable pressure to TC infra.



I would like to ask you to share your ideas on how to make runAll faster,
maybe you can share any of your measurements and any other info about
(possible) bottlenecks.



Sincerely,

Dmitriy Pavlov



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: Brainstorm: Make TC Run All faster

2018-11-19 Thread Павлухин Иван
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


Re: Brainstorm: Make TC Run All faster

2018-11-18 Thread 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.



Re: Brainstorm: Make TC Run All faster

2018-11-16 Thread Dmitriy Pavlov
Sure, any additional compute power should help.

Extracting nightly builds is already started (at least prototyping), as
well, as I know.

And TC Bot triggers full(nightly) tests set:
https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteTests24Java8_RunAllNightly&branch_IgniteTests24Java8=%3Cdefault%3E&tab=buildTypeStatusDiv


пт, 16 нояб. 2018 г. в 17:06, Vyacheslav Daradur :

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


Re: Brainstorm: Make TC Run All faster

2018-11-16 Thread Vyacheslav Daradur
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.


Re: Brainstorm: Make TC Run All faster

2018-11-15 Thread Yakov Zhdanov
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


Re: Brainstorm: Make TC Run All faster

2018-11-15 Thread Denis Mekhanikov
Dmitry, Sergey,

There is a common pattern in the test codebase, when each test starts its
own set of nodes,
and closes them after the test finishes.
Node startup takes quite a lot of time, and this time could be reduced, if
tests shared the same set of nodes.
I mean, if there is a test class with a lot of methods, then in many cases
it's enough to start nodes in *beforeTestsStarted*
and stop them in *afterTestsStopped* instead of doing it in every test case.
We should encourage contributors to use this pattern.

It's not applicable for all tests, and would violate isolation of tests,
but I think, it's a good trade-off,
because the running time of tests is a real problem.

Denis

чт, 15 нояб. 2018 г. в 15:11, Sergey Chugunov :

> Dmitriy,
>
> You brought up really important topic that has a great impact on our
> project. Faster runAlls mean quicker feedback and faster progress on issues
> and features.
>
> We have a pretty big code base of tests, about 50 thousands tests. Do we
> have an idea of how these tests overlap with each other? In my mind it is
> possible that we have a good bunch of tests that cover the same code and
> could be replaced with just a single test.
>
> In the ideal world we would even determine the minimal set of tests to
> cover our codebase and remove excessive.
>
> --
> Best regards,
> Sergey Chugunov.
>
> On Thu, Nov 15, 2018 at 2:34 PM Dmitriy Pavlov  wrote:
>
> > Hi Igniters,
> >
> >
> >
> > Some of us started to use the Bot to get an approval of PRs. It helps to
> > protect master from new failures, but this requires to run RunAll tests
> set
> > for each commit and this makes markable pressure to TC infra.
> >
> >
> >
> > I would like to ask you to share your ideas on how to make runAll faster,
> > maybe you can share any of your measurements and any other info about
> > (possible) bottlenecks.
> >
> >
> >
> > Sincerely,
> >
> > Dmitriy Pavlov
> >
>


Re: Brainstorm: Make TC Run All faster

2018-11-15 Thread Sergey Chugunov
Dmitriy,

You brought up really important topic that has a great impact on our
project. Faster runAlls mean quicker feedback and faster progress on issues
and features.

We have a pretty big code base of tests, about 50 thousands tests. Do we
have an idea of how these tests overlap with each other? In my mind it is
possible that we have a good bunch of tests that cover the same code and
could be replaced with just a single test.

In the ideal world we would even determine the minimal set of tests to
cover our codebase and remove excessive.

--
Best regards,
Sergey Chugunov.

On Thu, Nov 15, 2018 at 2:34 PM Dmitriy Pavlov  wrote:

> Hi Igniters,
>
>
>
> Some of us started to use the Bot to get an approval of PRs. It helps to
> protect master from new failures, but this requires to run RunAll tests set
> for each commit and this makes markable pressure to TC infra.
>
>
>
> I would like to ask you to share your ideas on how to make runAll faster,
> maybe you can share any of your measurements and any other info about
> (possible) bottlenecks.
>
>
>
> Sincerely,
>
> Dmitriy Pavlov
>


Brainstorm: Make TC Run All faster

2018-11-15 Thread Dmitriy Pavlov
Hi Igniters,



Some of us started to use the Bot to get an approval of PRs. It helps to
protect master from new failures, but this requires to run RunAll tests set
for each commit and this makes markable pressure to TC infra.



I would like to ask you to share your ideas on how to make runAll faster,
maybe you can share any of your measurements and any other info about
(possible) bottlenecks.



Sincerely,

Dmitriy Pavlov