New channel about integration with Spring Framework

2020-01-28 Thread Sergey Chernolyas
Hi igniters!

I have created new channel "#ignite-spring-framework" for discussion about
integration with Spring Framework.

-- 
-

With best regards, Sergey Chernolyas


Re: Task to implement: IGNITE-12581

2020-01-28 Thread Vladimir Steshin
Ivan, thanks. It's ok. I'm waiting for the test results, researching the
code, doing next simple ticket.

ср, 29 янв. 2020 г., 10:38 Ivan Pavlukhin :

> Vladimir,
>
> Do no hesitate to write back if you need any assistance, e.g. troubles
> with code or a code review.
>
> пн, 27 янв. 2020 г. в 13:28, Vladimir Steshin :
> >
> > Ok. Forgot to explain the ticket. I'm going to bring some refactoring to
> > the test, replace inheritance with parametrization. Many tests use
> > extending to handle params like
> >
> > public class JdbcThinBulkLoadAtomicReplicatedSelfTest extends
> > JdbcThinBulkLoadAbstractSelfTest {
> > /** {@inheritDoc} */
> > @Override protected CacheMode cacheMode() {
> > return CacheMode.REPLICATED;
> > }
> >
> > /** {@inheritDoc} */
> > @Override protected CacheAtomicityMode atomicityMode() {
> > return CacheAtomicityMode.ATOMIC;
> > }
> >
> > /** {@inheritDoc} */
> > @Override protected boolean nearCache() {
> > return false;
> > }
> > }
> >
> >
> > We might involve JUnit's params reducing code amount.
> >
> >
> >
> >
> > We might involve
> >
> >
> > пн, 27 янв. 2020 г. в 11:38, Maksim Stepachev <
> maksim.stepac...@gmail.com>:
> >
> > > Hi,
> > >
> > > I suppose you can.
> > > Nikolay possibly may help with it.
> > > If you have the telegram, join to Russian channel:
> https://t.me/RU_Ignite
> > >
> > > вс, 26 янв. 2020 г. в 19:21, Vladimir Steshin :
> > >
> > > > Hi everyone.
> > > >
> > > > How do you think, can I start this task:
> > > > https://issues.apache.org/jira/projects/IGNITE/issues/IGNITE-12581 ?
> > > >
> > > > It looks useful and seems good for a newbie to begin researching the
> > > > code and test techniques.
> > > >
> > > >
> > >
>
>
>
> --
> Best regards,
> Ivan Pavlukhin
>


Re: Task to implement: IGNITE-12581

2020-01-28 Thread Ivan Pavlukhin
Vladimir,

Do no hesitate to write back if you need any assistance, e.g. troubles
with code or a code review.

пн, 27 янв. 2020 г. в 13:28, Vladimir Steshin :
>
> Ok. Forgot to explain the ticket. I'm going to bring some refactoring to
> the test, replace inheritance with parametrization. Many tests use
> extending to handle params like
>
> public class JdbcThinBulkLoadAtomicReplicatedSelfTest extends
> JdbcThinBulkLoadAbstractSelfTest {
> /** {@inheritDoc} */
> @Override protected CacheMode cacheMode() {
> return CacheMode.REPLICATED;
> }
>
> /** {@inheritDoc} */
> @Override protected CacheAtomicityMode atomicityMode() {
> return CacheAtomicityMode.ATOMIC;
> }
>
> /** {@inheritDoc} */
> @Override protected boolean nearCache() {
> return false;
> }
> }
>
>
> We might involve JUnit's params reducing code amount.
>
>
>
>
> We might involve
>
>
> пн, 27 янв. 2020 г. в 11:38, Maksim Stepachev :
>
> > Hi,
> >
> > I suppose you can.
> > Nikolay possibly may help with it.
> > If you have the telegram, join to Russian channel: https://t.me/RU_Ignite
> >
> > вс, 26 янв. 2020 г. в 19:21, Vladimir Steshin :
> >
> > > Hi everyone.
> > >
> > > How do you think, can I start this task:
> > > https://issues.apache.org/jira/projects/IGNITE/issues/IGNITE-12581 ?
> > >
> > > It looks useful and seems good for a newbie to begin researching the
> > > code and test techniques.
> > >
> > >
> >



-- 
Best regards,
Ivan Pavlukhin


Re: Client nodes are unable to discover server nodes using kubernetes IpFinder

2020-01-28 Thread Ivan Pavlukhin
Manu,

Looks like it is currently impossible to use custom discovery port
with TcpDiscoveryKubernetesIpFinder. This limitation is covered in
code of a method
org.apache.ignite.spi.discovery.tcp.ipfinder.kubernetes.TcpDiscoveryKubernetesIpFinder#parseAddresses

Feel free to create a Jira issue for an improvement.

сб, 25 янв. 2020 г. в 10:31, Manu :
>
> Hi!
>
> We are trying to deploy an ignite cluster(s) into kubernetes and found some
> issues.
>
> Sample deployed topology into kubernetes (we need each ignite server cluster
> has different discovery port)
>
> Ignite Server(s) cluster to store main data (discoPort 49500)
> \
>   Client App with 2 ignite clients (discoPort 49500, discoPort 48500) to
> talk with both clusters
> /
> Ignite Server(s) cluster to store cached data (discoPort 48500)
>
> Apparently, client nodes are unable to discover server nodes using
> kubernetes IpFinder whether non default discovery port, for example 49500,
> is used on server side ignite configuration.
>
> TcpDiscoverySpi local port configuration is ignored on client mode, so port
> 47500 is always used to connect to ignite servers (we don't want to use
> forceServerMode=true as it is a deprecated feature and may have negative
> performance impact)
>
> In general seems that any IpFinder implementation that has this behaviour
> (not provides server port when registered addresses were returned) will have
> same issue.
>
> Fix suggestion, modify org.apache.ignite.spi.discovery.tcp.ClientImpl
> spiStart, apparently this change has no collateral effects:
>
> Original
>@Override public void spiStart(@Nullable String igniteInstanceName)
> throws IgniteSpiException {
> spi.initLocalNode(
> 0,
> true);
>
> Fix
>@Override public void spiStart(@Nullable String igniteInstanceName)
> throws IgniteSpiException {
> // FIX ignored TcpDiscoverySpi local port configuration on client
> mode, takes configured one
> spi.initLocalNode(
> spi.locPort,
> true);
>
>
> How to reproduce issue:
>
> 1. Deploy a server node with tcp discovery kubernetes IpFinder and non
> default discovery port 49500 into kubernetes
>
> 2. Deploy client nodes with tcp discovery kubernetes IpFinder and non
> default discovery port 49500 into kubernetes
>
> 3. You will see on client nodes logs that will try to connect to servers on
> port 47500, instead of configured 49500.
>
> Ignite configuration for both server and client node(s)
> [...]
> 
>   
> 
> 
> 
>
>class="org.apache.ignite.spi.discovery.tcp.ipfinder.kubernetes.TcpDiscoveryKubernetesIpFinder">
> 
> 
> 
>  value="https://kubernetes.default.svc.cluster.local:443"/>
>  value="/var/run/secrets/kubernetes.io/serviceaccount/token"/>
>   
> 
>   
> 
> [...]
>
> Regards!
>
> Manu.
>
>
>
>
>
>
> --
> Sent from: http://apache-ignite-developers.2346864.n4.nabble.com/



-- 
Best regards,
Ivan Pavlukhin


Re: Hello

2020-01-28 Thread Ivan Pavlukhin
Hi Sergey,

Welcome to the Apache Ignite Community.

Do you need some assistance? Or might be you have something to tell
the Community. Do not hesitate to write back.

I see that your Jira account was already added to the contributors
list. You can find some contribution guidelines at
https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute

вт, 28 янв. 2020 г. в 22:26, Sergey Chernolyas :

>
> My jiraId is schernolyas
>
> --
> -
>
> With best regards, Sergey Chernolyas



--
Best regards,
Ivan Pavlukhin


Re: Feature masks for thin clients

2020-01-28 Thread Ivan Pavlukhin
> A protocol for one feature can change from release to release.

I think about it in a following way. Imagine that we reworked somehow
affinity awareness and changes are needed on a protocol level. From a
features point of view old feature is AffinityAwarenessV1 and new one
is AffinityAwarenessV2.

> Probably the "feature" word is confusing here. Maybe we should use term 
> "Changes Mask" or something like that.

Bitmask layout seems to be an implementation detail. From a high level
the subject sounds to me more like "Feature set". Client and server
can support different subsets of all features. With feature versioning
term "feature" might be confusing sometimes. But I am not sure that it
is a big problem. Feel free to suggest better naming.

Regarding the necessity of the subject. The main driver for me (it was
already mentioned it the thread) is a simplification of clients for
different languages development. I suppose the community do not have
enough resources to support all features for all languages,
consequently some workaround is needed.

пт, 24 янв. 2020 г. в 19:32, Igor Sapego :
>
> Taras,
>
> I believe we should have the same mechanism but different
> set of flags.
>
> Alexey,
>
> The idea is to add new flag when you make changes instead of
> increment protocol version. This way client maintainer can introduce
> the same change (probably fix) in they client without the necessity to
> implement all other features that were introduced in between.
>
> Probably the "feature" word is confusing here. Maybe we should use
> term "Changes Mask" or something like that.
>
> Best Regards,
> Igor
>
>
> On Thu, Jan 23, 2020 at 5:27 PM Pavel Tupitsyn  wrote:
>
> > Igor, great idea, I think this should be our priority for all thin clients.
> >
> > Alexei, protocol version bump can be still required for major changes (e.g.
> > if we want to change handshake format).
> > But for simpler things like new features that don't affect existing ones,
> > feature masks allow us to keep current protocol version.
> >
> > On Thu, Jan 23, 2020 at 3:55 PM Taras Ledkov  wrote:
> >
> > > Alexei,
> > >
> > > After the flags is introduced we can change the flag set instead of
> > > change protocol version.
> > > Of course, we will need to up the protocol  version for introducing
> > flags.
> > >
> > > On 23.01.2020 15:47, Alexei Scherbakov wrote:
> > > > Igor Sapego,
> > > >
> > > > I do not understand how feature masks can remove the necessity of
> > having
> > > > protocol versioning.
> > > > A protocol for one feature can change from release to release.
> > > >
> > > > чт, 23 янв. 2020 г. в 15:36, Igor Sapego :
> > > >
> > > >> Hi Igniters,
> > > >>
> > > >> As we have a lot of different thin clients now, maintained by
> > different
> > > >> people, the issues with our backward compatibility mechanism becomes
> > > >> more and more prominent.
> > > >>
> > > >> Currently, we use protocol versioning as the only approach to provide
> > > >> backward compatibility. The main issue of this approach is that we can
> > > >> not skip some change in protocol and implement i.e. protocol of
> > version
> > > >> 1.5 without implementation of 1.4. There are many cases when one may
> > > >> want to do so: e.g. when feature provided in 1.4 is not relevant for a
> > > >> specific client, or when protocol version 1.5 contains urgent fix or
> > > >> feature
> > > >> which is easy to implement, but its blocked by not-so-urgent and
> > > >> hard-to-implement feature introduced in 1.4.
> > > >>
> > > >> So to fix this issue I propose to introduce another backward
> > > compatibility
> > > >> mechanism. The idea is to send "supported features" mask by a client
> > to
> > > >> a server, which should be answered with the same mask by the server.
> > > >> The resulting set of enabled features is acquired with a simple
> > logical
> > > >> "AND"
> > > >> operation on these two masks.
> > > >>
> > > >> This change has many other positive effects:
> > > >> 1. It improves readability and also potentially simplifies debugging.
> > > >> 2. It gives users the ability to enable or disable features of thin
> > > clients
> > > >> on both
> > > >> server and client as they desire.
> > > >>
> > > >> What are your thoughts guys?
> > > >>
> > > >> Best Regards,
> > > >> Igor
> > > >>
> > > >
> > > --
> > > Taras Ledkov
> > > Mail-To: tled...@gridgain.com
> > >
> > >
> >



-- 
Best regards,
Ivan Pavlukhin


Re: Ignite-spring-boot-autoconfigurer

2020-01-28 Thread Saikat Maitra
Hi Nikolay,

Here is the release process docs for Ignite [1]

We do not have docs specific to Ignite Extensions, we will need to create
docs for Ignite Extensions.

Please find discussion on release process below [2]

Regards,
Saikat

[1]  https://cwiki.apache.org/confluence/display/IGNITE/Release+Process
[2]
http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSS-dependencies-and-release-process-for-Ignite-Extensions-td44478.html


On Tue, Jan 28, 2020 at 8:13 AM Nikolay Izhikov  wrote:

> Merged to master [1]
>
> Igniters, I want to release both modules I added.
> Do we have documentation, how it should be done for ignite-extensions?
>
> [1]
>
> https://github.com/apache/ignite-extensions/commit/575ec510e4d48b1e0c2ec7e4cf8d596e7de82f70
>
> пн, 27 янв. 2020 г. в 13:06, Nikolay Izhikov :
>
> > Hello, Alexey Kuznetsov.
> >
> > I have two approvals from Saikat Maitra and Maxim Stepachov.
> > I have plans to merge spring-boot autoconfigure modules to
> > ignite-extensions. [1]
> > Do you want to perform additional review?
> >
> > [1] https://github.com/apache/ignite-extensions/pull/6
> >
> > пт, 24 янв. 2020 г. в 07:41, Saikat Maitra :
> >
> >> Hi Nikolay,
> >>
> >> Thank you for updating the PR, the changes looks good.
> >>
> >> Regards,
> >> Saikat
> >>
> >> On Wed, Jan 22, 2020 at 1:33 PM Николай Ижиков 
> >> wrote:
> >>
> >> > Hello, Saikat.
> >> >
> >> > Thank you so much for the review.
> >> >
> >> > I answered your questions and resolve all the comments.
> >> > Please, take a look, one more time.
> >> >
> >> > > 22 янв. 2020 г., в 07:58, Saikat Maitra 
> >> > написал(а):
> >> > >
> >> > > Hi Nikolay,
> >> > >
> >> > > I have reviewed the PR and shared comments.
> >> > >
> >> > > Please let me know if you have any feedback.
> >> > >
> >> > > Regards,
> >> > > Saikat
> >> > >
> >> > > On Mon, Jan 20, 2020 at 2:42 PM Николай Ижиков  >
> >> > wrote:
> >> > >
> >> > >> Hello, Saikat.
> >> > >>
> >> > >> Thanks, for feedback.
> >> > >>
> >> > >> I raised a PR [1] to `ignite-extensions`.
> >> > >>
> >> > >> You can find description of the new module below(examples can be
> >> found
> >> > at
> >> > >> [2]):
> >> > >>
> >> > >> Module provides the ability to integrate `Ignite` into you
> >> spring-boot
> >> > >> application with zero(or minimal) configuration.
> >> > >>
> >> > >> After you add this module as a dependency to your spring-boot
> >> > application
> >> > >> `Ignite` node will be configured and injected into `BeanFactory`.
> >> > >>
> >> > >> Algorithm to configure `Ignite` is the following:
> >> > >>  1. If `IgniteConfiguration` bean exists in the `BeanFactory` it
> >> will be
> >> > >> used.
> >> > >>  2. If `IgniteConfiguration` bean doesn't exist following rules are
> >> > >> applied:
> >> > >>2.1. Default `Ignite` configuration created.
> >> > >>2.2. If `IgniteConfigurer` bean exists in `BeanFactory` it will
> be
> >> > >> used to customize `IgniteConfiguration`.
> >> > >> If a user wants to set custom SPI instances or similar
> >> hardcoded
> >> > >> values
> >> > >> one should do it with `IgniteConfigurer` implementation.
> >> > >>2.3  Application properties applied to `IgniteConfiguration`.
> >> Prefix
> >> > >> for the properties is `ignite`.
> >> > >>
> >> > >>
> >> > >> [1] https://github.com/apache/ignite-extensions/pull/6
> >> > >> [2]
> >> > https://github.com/nizhikov/ignite-spring-boot-autoconfigure-example
> >> > >>
> >> > >>
> >> > >>> 18 янв. 2020 г., в 06:44, Saikat Maitra 
> >> > >> написал(а):
> >> > >>>
> >> > >>> Hi Nikolay,
> >> > >>>
> >> > >>> Thank you for your email. As part of Ignite Extensions migration
> we
> >> are
> >> > >> migrating Ignite Extensions to following repo.
> >> > >>>
> >> > >>> https://github.com/apache/ignite-extensions
> >> > >>>
> >> > >>> We have added flink and pub-sub modules and few additional modules
> >> are
> >> > >> open in PR.
> >> > >>>
> >> > >>> You can refer to this PR to see how we are migrating the modules
> >> > >> https://github.com/apache/ignite-extensions/pull/5
> >> > >>>
> >> > >>> I wanted to connect and discuss the changes to understand the
> spring
> >> > >> boot auto configure feature. We currently have an ignite spring
> >> module
> >> > that
> >> > >> allows resource injection capabilities and provides a parser for
> >> Spring
> >> > >> based xml configuration files. Can you please review and share if
> the
> >> > >> changes you are proposing can be added as part of Ignite spring
> >> module
> >> > or
> >> > >> it make sense to make it a separate spring boot auto configure
> >> module.
> >> > >>>
> >> > >>> https://github.com/apache/ignite/tree/master/modules/spring
> >> > >>>
> >> > >>> Regards,
> >> > >>> Saikat
> >> > >>>
> >> > >>>
> >> > >>>
> >> > >>>
> >> > >>>
> >> > >>>
> >> > >>>
> >> > >>> On Fri, Jan 17, 2020 at 3:12 AM Николай Ижиков <
> nizhi...@apache.org
> >> >
> >> > >> wrote:
> >> > >>> Tests added.
> >> > >>> Please, review.
> >> > >>>
> >> > >>> Saikat, can you help 

Hello

2020-01-28 Thread Sergey Chernolyas
My jiraId is schernolyas

-- 
-

With best regards, Sergey Chernolyas


Hello

2020-01-28 Thread Sergey Chernolyas
-- 
-

With best regards, Sergey Chernolyas


New Blog: Why my in-memory Ignite cluster underperforms? Network and co-located compute

2020-01-28 Thread Denis Magda
Igniters,

I've just published an article that describes one of the reasons for why an
Ignite cluster can underperform. It's reviewed how a selection of proper
Ignite APIs can put less pressure on the network and proliferate the
performance:
https://www.gridgain.com/resources/blog/why-my-in-memory-cluster-underperforms-negating-network-impact

Let me know what you think. Suggest any other themes you would want to be
laid out.

Btw, our community member Denis Mekhanikov is doing a webinar about
co-located computations in Ignite tomorrow, join him to learn more about
this area:
https://www.gridgain.com/resources/webinars/distributed-computing-apache-ignite

-
Denis


Re: Apache Ignite 2.8 RELEASE [Time, Scope, Manager]

2020-01-28 Thread Maxim Muzafarov
Igniters,


Here is the list of actual release BLOCKER issues:

[1] Keep in mind unfinished discussion about internal classes
IGNITE-12456 [2] Cluster Data Store grid gets Corrupted for Load test
*[Unassigned]* OPEN
IGNITE-12398 Apache Ignite Cluster(Amazon S3 Based Discovery) Nodes getting
down [Emmanouil Gkatziouras] IN PROGRESS
IGNITE-12580 NPE in GridMetricManager [Nikolay Izhikov] PATCH AVAILABLE
IGNITE-12489 Error during purges by expiration: Unknown page type [Anton
Kalashnikov] OPEN

[1]
http://apache-ignite-developers.2346864.n4.nabble.com/Internal-classes-are-exposed-in-public-API-td45146.html
[2] https://issues.apache.org/jira/browse/IGNITE-12456
[3] https://issues.apache.org/jira/browse/IGNITE-12398
[4] https://issues.apache.org/jira/browse/IGNITE-12580
[5] https://issues.apache.org/jira/browse/IGNITE-12489


On Tue, 28 Jan 2020 at 19:25, Maxim Muzafarov  wrote:

> Andrey,
>
> I've looked through those changes [1] and now they look good to me.
> Let's do the following:
>
> 1. Get a fresh TC.Bot visa
> 2. Merge these changes to the master branch.
> 3. After that and 3-day stabilization cherry-pick to 2.8
>
> Should we wait for benchmarks? I think at this release stage any
> additional benchmarks can eliminate our risks with extending scope.
> We've already had one - [2] (2.7.6 compared to 2.8).
>
>
> [1] https://issues.apache.org/jira/browse/IGNITE-12576
> [2]
> https://cwiki.apache.org/confluence/display/IGNITE/Apache+Ignite+2.8#ApacheIgnite2.8-Benchmarks
>
> On Mon, 27 Jan 2020 at 23:58, Nikolay Izhikov  wrote:
> >
> > Andrey.
> >
> > > My choice: correctness over performance
> >
> > I don’t think we should select performance OR correctness here.
> > It seems we can got both.
> >
> > > May be we should rollback all metrics related changes because we don't
> have benchmark results
> >
> > I perform benchmarking for initial refactoring of
> TcpCommunicationMetricsListener.
> > Initial refactoring of TcpCommunicationMetricsListener doesn’t bring any
> performance drop according to the results of the tests I performed.
> >
> > I want to perform benchmarking just to be sure everything OK.
> > Please, wait while I gather benchmark results for this PR.
> >
> > > 27 янв. 2020 г., в 22:33, Andrey Gura  написал(а):
> > >
> > >> We still can’t accept patches that badly affects the performance of
> TcpCommuncationMetricsListener.
> > >> So we should perform yardstick tests before the merge.
> > >
> > > Absolutely all metrics are on the hot path. They inevitably affect
> > > performance and this case is the same. May be we should rollback all
> > > metrics related changes because we don't have benchmark results&
> > >
> > >> I can help to run yardstick benchmarks if you don’t have free servers
> to do it.
> > >
> > > I don't need help in benchmarking. Once again, еhe current behavior is
> > > incorrect and should be fixed regardless of performance.
> > >
> > > Or... this functionality should be removed if performance is more
> > > important. In case of incorrect behavior it is the best option.
> > >
> > > My choice: correctness over performance.
> > >
> > > On Mon, Jan 27, 2020 at 10:02 PM Nikolay Izhikov 
> wrote:
> > >>
> > >>> I think it could be fixed easily by adding metricsEnabled flag to
> TcpCommunicationSpi.
> > >>
> > >> We still can’t accept patches that badly affects the performance of
> TcpCommuncationMetricsListener.
> > >> So we should perform yardstick tests before the merge.
> > >>
> > >> I can help to run yardstick benchmarks if you don’t have free servers
> to do it.
> > >>
> > >>
> > >>> 27 янв. 2020 г., в 21:47, Andrey Gura  написал(а):
> > >>>
> > > "If it doesn’t work, it doesn’t matter how fast it doesn’t work."
> (c)
> >  Please, clarify, what do you mean by «doesn’t work»?
> >  Are there any unresolved bugs?
> > >>>
> > >>> Obviously some communication metrics can't be monitored or analyzed
> > >>> retrospectively due to changing node ID during node restart. It's
> bug.
> > >>>
> > > User can disable metrics if it will affect performance.
> >  Users can’t disable TcpCommunicationListener nor in any release nor
> in current master so we should change this code carefully
> > >>>
> > >>> This is another bug. I think it could be fixed easily by adding
> > >>> metricsEnabled flag to TcpCommunicationSpi.
> > >>>
> > >>> On Mon, Jan 27, 2020 at 9:17 PM Nikolay Izhikov 
> wrote:
> > 
> >  Andrey.
> > 
> > > "If it doesn’t work, it doesn’t matter how fast it doesn’t work."
> (c)
> > 
> >  Please, clarify, what do you mean by «doesn’t work»?
> >  Are there any unresolved bugs?
> > 
> > > IGINTE-12576 affects it minimally
> > 
> >  All I asking for is to confirm this statement with the benchmark
> results.
> > 
> > > User can disable metrics if it will affect performance.
> > 
> >  Users can’t disable TcpCommunicationListener nor in any release nor
> in current master so we should change this code carefully
> > 

Re: Apache Ignite 2.8 RELEASE [Time, Scope, Manager]

2020-01-28 Thread Nikolay Izhikov
Maxim.

> Should we wait for benchmarks?

After review, these changes looks much safer for me - no additional metrics 
added.
I performed benchmarking for initial refactoring of 
`TcpCommunicationMetricsListener` on the new Metric API.

It seems, there is no need for benchmarking anymore.

> 28 янв. 2020 г., в 19:25, Maxim Muzafarov  написал(а):
> 
> Andrey,
> 
> I've looked through those changes [1] and now they look good to me.
> Let's do the following:
> 
> 1. Get a fresh TC.Bot visa
> 2. Merge these changes to the master branch.
> 3. After that and 3-day stabilization cherry-pick to 2.8
> 
> Should we wait for benchmarks? I think at this release stage any
> additional benchmarks can eliminate our risks with extending scope.
> We've already had one - [2] (2.7.6 compared to 2.8).
> 
> 
> [1] https://issues.apache.org/jira/browse/IGNITE-12576
> [2] 
> https://cwiki.apache.org/confluence/display/IGNITE/Apache+Ignite+2.8#ApacheIgnite2.8-Benchmarks
> 
> On Mon, 27 Jan 2020 at 23:58, Nikolay Izhikov  wrote:
>> 
>> Andrey.
>> 
>>> My choice: correctness over performance
>> 
>> I don’t think we should select performance OR correctness here.
>> It seems we can got both.
>> 
>>> May be we should rollback all metrics related changes because we don't have 
>>> benchmark results
>> 
>> I perform benchmarking for initial refactoring of 
>> TcpCommunicationMetricsListener.
>> Initial refactoring of TcpCommunicationMetricsListener doesn’t bring any 
>> performance drop according to the results of the tests I performed.
>> 
>> I want to perform benchmarking just to be sure everything OK.
>> Please, wait while I gather benchmark results for this PR.
>> 
>>> 27 янв. 2020 г., в 22:33, Andrey Gura  написал(а):
>>> 
 We still can’t accept patches that badly affects the performance of 
 TcpCommuncationMetricsListener.
 So we should perform yardstick tests before the merge.
>>> 
>>> Absolutely all metrics are on the hot path. They inevitably affect
>>> performance and this case is the same. May be we should rollback all
>>> metrics related changes because we don't have benchmark results&
>>> 
 I can help to run yardstick benchmarks if you don’t have free servers to 
 do it.
>>> 
>>> I don't need help in benchmarking. Once again, еhe current behavior is
>>> incorrect and should be fixed regardless of performance.
>>> 
>>> Or... this functionality should be removed if performance is more
>>> important. In case of incorrect behavior it is the best option.
>>> 
>>> My choice: correctness over performance.
>>> 
>>> On Mon, Jan 27, 2020 at 10:02 PM Nikolay Izhikov  
>>> wrote:
 
> I think it could be fixed easily by adding metricsEnabled flag to 
> TcpCommunicationSpi.
 
 We still can’t accept patches that badly affects the performance of 
 TcpCommuncationMetricsListener.
 So we should perform yardstick tests before the merge.
 
 I can help to run yardstick benchmarks if you don’t have free servers to 
 do it.
 
 
> 27 янв. 2020 г., в 21:47, Andrey Gura  написал(а):
> 
>>> "If it doesn’t work, it doesn’t matter how fast it doesn’t work." (c)
>> Please, clarify, what do you mean by «doesn’t work»?
>> Are there any unresolved bugs?
> 
> Obviously some communication metrics can't be monitored or analyzed
> retrospectively due to changing node ID during node restart. It's bug.
> 
>>> User can disable metrics if it will affect performance.
>> Users can’t disable TcpCommunicationListener nor in any release nor in 
>> current master so we should change this code carefully
> 
> This is another bug. I think it could be fixed easily by adding
> metricsEnabled flag to TcpCommunicationSpi.
> 
> On Mon, Jan 27, 2020 at 9:17 PM Nikolay Izhikov  
> wrote:
>> 
>> Andrey.
>> 
>>> "If it doesn’t work, it doesn’t matter how fast it doesn’t work." (c)
>> 
>> Please, clarify, what do you mean by «doesn’t work»?
>> Are there any unresolved bugs?
>> 
>>> IGINTE-12576 affects it minimally
>> 
>> All I asking for is to confirm this statement with the benchmark results.
>> 
>>> User can disable metrics if it will affect performance.
>> 
>> Users can’t disable TcpCommunicationListener nor in any release nor in 
>> current master so we should change this code carefully
>> 
>> https://github.com/apache/ignite/blob/ignite-2.7.6/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java#L1178
>> 
>>> 27 янв. 2020 г., в 20:40, Andrey Gura  написал(а):
>>> 
>>> Nikolay,
>>> 
 But, we must gather yardstick benchmark results for PR(comparing to 
 current master) before merge to ensure there is no performance drop.
>>> 
>>> "If it doesn’t work, it doesn’t matter how fast it doesn’t work." (c)
>>> 
>>> I believe that benchmarks ignite-2.7.6 vs ignite-2.8 will show
>>> 

Re: Apache Ignite 2.8 RELEASE [Time, Scope, Manager]

2020-01-28 Thread Maxim Muzafarov
Andrey,

I've looked through those changes [1] and now they look good to me.
Let's do the following:

1. Get a fresh TC.Bot visa
2. Merge these changes to the master branch.
3. After that and 3-day stabilization cherry-pick to 2.8

Should we wait for benchmarks? I think at this release stage any
additional benchmarks can eliminate our risks with extending scope.
We've already had one - [2] (2.7.6 compared to 2.8).


[1] https://issues.apache.org/jira/browse/IGNITE-12576
[2] 
https://cwiki.apache.org/confluence/display/IGNITE/Apache+Ignite+2.8#ApacheIgnite2.8-Benchmarks

On Mon, 27 Jan 2020 at 23:58, Nikolay Izhikov  wrote:
>
> Andrey.
>
> > My choice: correctness over performance
>
> I don’t think we should select performance OR correctness here.
> It seems we can got both.
>
> > May be we should rollback all metrics related changes because we don't have 
> > benchmark results
>
> I perform benchmarking for initial refactoring of 
> TcpCommunicationMetricsListener.
> Initial refactoring of TcpCommunicationMetricsListener doesn’t bring any 
> performance drop according to the results of the tests I performed.
>
> I want to perform benchmarking just to be sure everything OK.
> Please, wait while I gather benchmark results for this PR.
>
> > 27 янв. 2020 г., в 22:33, Andrey Gura  написал(а):
> >
> >> We still can’t accept patches that badly affects the performance of 
> >> TcpCommuncationMetricsListener.
> >> So we should perform yardstick tests before the merge.
> >
> > Absolutely all metrics are on the hot path. They inevitably affect
> > performance and this case is the same. May be we should rollback all
> > metrics related changes because we don't have benchmark results&
> >
> >> I can help to run yardstick benchmarks if you don’t have free servers to 
> >> do it.
> >
> > I don't need help in benchmarking. Once again, еhe current behavior is
> > incorrect and should be fixed regardless of performance.
> >
> > Or... this functionality should be removed if performance is more
> > important. In case of incorrect behavior it is the best option.
> >
> > My choice: correctness over performance.
> >
> > On Mon, Jan 27, 2020 at 10:02 PM Nikolay Izhikov  
> > wrote:
> >>
> >>> I think it could be fixed easily by adding metricsEnabled flag to 
> >>> TcpCommunicationSpi.
> >>
> >> We still can’t accept patches that badly affects the performance of 
> >> TcpCommuncationMetricsListener.
> >> So we should perform yardstick tests before the merge.
> >>
> >> I can help to run yardstick benchmarks if you don’t have free servers to 
> >> do it.
> >>
> >>
> >>> 27 янв. 2020 г., в 21:47, Andrey Gura  написал(а):
> >>>
> > "If it doesn’t work, it doesn’t matter how fast it doesn’t work." (c)
>  Please, clarify, what do you mean by «doesn’t work»?
>  Are there any unresolved bugs?
> >>>
> >>> Obviously some communication metrics can't be monitored or analyzed
> >>> retrospectively due to changing node ID during node restart. It's bug.
> >>>
> > User can disable metrics if it will affect performance.
>  Users can’t disable TcpCommunicationListener nor in any release nor in 
>  current master so we should change this code carefully
> >>>
> >>> This is another bug. I think it could be fixed easily by adding
> >>> metricsEnabled flag to TcpCommunicationSpi.
> >>>
> >>> On Mon, Jan 27, 2020 at 9:17 PM Nikolay Izhikov  
> >>> wrote:
> 
>  Andrey.
> 
> > "If it doesn’t work, it doesn’t matter how fast it doesn’t work." (c)
> 
>  Please, clarify, what do you mean by «doesn’t work»?
>  Are there any unresolved bugs?
> 
> > IGINTE-12576 affects it minimally
> 
>  All I asking for is to confirm this statement with the benchmark results.
> 
> > User can disable metrics if it will affect performance.
> 
>  Users can’t disable TcpCommunicationListener nor in any release nor in 
>  current master so we should change this code carefully
> 
>  https://github.com/apache/ignite/blob/ignite-2.7.6/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java#L1178
> 
> > 27 янв. 2020 г., в 20:40, Andrey Gura  написал(а):
> >
> > Nikolay,
> >
> >> But, we must gather yardstick benchmark results for PR(comparing to 
> >> current master) before merge to ensure there is no performance drop.
> >
> > "If it doesn’t work, it doesn’t matter how fast it doesn’t work." (c)
> >
> > I believe that benchmarks ignite-2.7.6 vs ignite-2.8 will show
> > noticeable drop in performance for ignite-2.8. But it is cumulative
> > effect and IGINTE-12576 affects it minimally.
> >
> >> Note, that these metrics updated on each communication message.
> >
> > Metrics are not free at all. User can disable metrics if it will
> > affect performance.
> >
> > On Mon, Jan 27, 2020 at 8:23 PM Nikolay Izhikov  
> > wrote:
> >>
> >> Hello, Andrey.
> >>
> >> 

Re: Internal classes are exposed in public API

2020-01-28 Thread Nikolay Izhikov
Maxim.

I’m +1 to do it.

> 1. Let's keep @deprecated annotation to notify users earlier.
> 2. Let's fix javadoc comments for this annotation (remove internal 
> references).

We also have a consensus to add IgniteExperimental annotation to the new 
metrics API.

> 28 янв. 2020 г., в 19:05, Maxim Muzafarov  написал(а):
> 
> Folks,
> 
> 
> Let me share my humble opinion over this thread. The first priority
> here is making Ignite better and taking the next step with releasing
> Ignite's 2.8 version for our users (we've already done a great job
> with metrics).
> 
> According to this point of view and from the user perspective I'd like
> to be notified about changing Ignite's architecture and concepts of
> using metrics as early as possible not only through the public
> documentation but through the code I write also.
> 
> So, I see nothing strange by keeping @deprecated annotation (Javadoc
> comments must be fixed, true):
> 1. it's just a hint for users (we will notify them as earlier as
> possible but they can still write a code using deprecated methods)
> 2. users will be notified about new JmxMetricExporterSpi through the
> code and documentation.
> 3. it's a recommendation for developers that they should not add new
> methods to the old facade.
> 
> I also see nothing strange by removing @deprecated annotation
> currently added to DataRegionMetrics interface. It's also OK if we are
> still developing new facade and do not want to share some public API
> changes with users because all the 2.8 release looks for me like an
> experimental.
> 
> 
> So, summarizing:
> 1. Let's keep @deprecated annotation to notify users earlier.
> 2. Let's fix javadoc comments for this annotation (remove internal 
> references).
> 3. Let's do not too much debate here. This question isn't too
> important compared to 23 critical release issues [1].
> 
> 
> Alexey, Andrey, Nikolay,
> 
> Can we proceed this way?
> 
> 
> P.S.
> From the release managers view, it's sad to see such a discussions
> about API changes and compatibility because we've discussed API at
> July 2019 [3] and all issues with monitoring activities at October
> 2019 [2].
> 
> 
> [1] 
> https://cwiki.apache.org/confluence/display/IGNITE/Apache+Ignite+2.8#ApacheIgnite2.8-Unresolvedissues(notrelatedtodocumentation)
> [2] 
> http://apache-ignite-developers.2346864.n4.nabble.com/Apache-Ignite-2-8-RELEASE-Time-Scope-Manager-tp43616p43807.html
> [3] https://issues.apache.org/jira/browse/IGNITE-11848
> 
> On Mon, 27 Jan 2020 at 22:23, Andrey Gura  wrote:
>> 
 I just want to remove the deprecations on the classes for which there is 
 no a well-defined replacement.
>>> Well-defined replacement for these classes exists.
>> 
>> Nikolay, statements like this are not arguments. At least because
>> there are people who disagree with this.
>> 
>> Current implementation is not well-defined due to API is not
>> well-defined enough. Also there are lack of functionality
>> (enabling/disabling metrics, requirement for end user to configure new
>> exporter in order to get a couple of new metrics while it is still
>> possible to use old MBeans but without this metrics) and potential
>> performance problems (that couldn't be solved because metrics couldn't
>> be switched off).
>> 
>> We are walking in a circle instead of moving forward. On comments
>> about API you provide new PRs that change API while denying problems
>> with the API. This is illogical and process doesn't converge because
>> it is attempt to close gaps in a hurry.
>> 
>> The best we can do now is stop, take a deep breath and follow the
>> offers of Alexey about deprecation, my proposal and Denis' idea about
>> one additional iteration.
>> 
>> On Mon, Jan 27, 2020 at 4:37 PM Nikolay Izhikov  wrote:
>>> 
 it's better to remove deprecation for the old APIs in AI 2.8
>>> 
>>> Are you suggest to have 2 concurrent metrics implementations(both not 
>>> deprecated)?
>>> 
 Let's say I am writing a custom exporter in binary format and I need to 
 write the number of exported metrics in a packet beforehand.
>>> 
>>> This an `MetricExporterSPI` implementation task.
>>> Exporter has the listeners that can be used to track all registry events - 
>>> creation, removal
>>> 
 There is no separation on public and internal metrics
>>> 
>>> I think we should write in the documentation that ANY metric can be changed.
>>> We will try to keep them, but if we found that some metric doesn’t required 
>>> any more or implemented in the wrong way - we can remove it.
>>> 
 Will we allow users to register their own metrics?
>>> 
>>> No. Why we should considering this feature?
>>> 
 It's still not clear how a user will map old interfaces and methods to the 
 new metric names.
>>> 
>>> With the documentation.
>>> We can write separate deprecation comment for each metric providing method.
>>> 
 I just want to remove the deprecations on the classes for which there is 
 no a well-defined replacement.
>>> 

Re: Internal classes are exposed in public API

2020-01-28 Thread Maxim Muzafarov
Folks,


Let me share my humble opinion over this thread. The first priority
here is making Ignite better and taking the next step with releasing
Ignite's 2.8 version for our users (we've already done a great job
with metrics).

According to this point of view and from the user perspective I'd like
to be notified about changing Ignite's architecture and concepts of
using metrics as early as possible not only through the public
documentation but through the code I write also.

So, I see nothing strange by keeping @deprecated annotation (Javadoc
comments must be fixed, true):
1. it's just a hint for users (we will notify them as earlier as
possible but they can still write a code using deprecated methods)
2. users will be notified about new JmxMetricExporterSpi through the
code and documentation.
3. it's a recommendation for developers that they should not add new
methods to the old facade.

I also see nothing strange by removing @deprecated annotation
currently added to DataRegionMetrics interface. It's also OK if we are
still developing new facade and do not want to share some public API
changes with users because all the 2.8 release looks for me like an
experimental.


So, summarizing:
1. Let's keep @deprecated annotation to notify users earlier.
2. Let's fix javadoc comments for this annotation (remove internal references).
3. Let's do not too much debate here. This question isn't too
important compared to 23 critical release issues [1].


Alexey, Andrey, Nikolay,

Can we proceed this way?


P.S.
>From the release managers view, it's sad to see such a discussions
about API changes and compatibility because we've discussed API at
July 2019 [3] and all issues with monitoring activities at October
2019 [2].


[1] 
https://cwiki.apache.org/confluence/display/IGNITE/Apache+Ignite+2.8#ApacheIgnite2.8-Unresolvedissues(notrelatedtodocumentation)
[2] 
http://apache-ignite-developers.2346864.n4.nabble.com/Apache-Ignite-2-8-RELEASE-Time-Scope-Manager-tp43616p43807.html
[3] https://issues.apache.org/jira/browse/IGNITE-11848

On Mon, 27 Jan 2020 at 22:23, Andrey Gura  wrote:
>
> >> I just want to remove the deprecations on the classes for which there is 
> >> no a well-defined replacement.
> > Well-defined replacement for these classes exists.
>
> Nikolay, statements like this are not arguments. At least because
> there are people who disagree with this.
>
> Current implementation is not well-defined due to API is not
> well-defined enough. Also there are lack of functionality
> (enabling/disabling metrics, requirement for end user to configure new
> exporter in order to get a couple of new metrics while it is still
> possible to use old MBeans but without this metrics) and potential
> performance problems (that couldn't be solved because metrics couldn't
> be switched off).
>
> We are walking in a circle instead of moving forward. On comments
> about API you provide new PRs that change API while denying problems
> with the API. This is illogical and process doesn't converge because
> it is attempt to close gaps in a hurry.
>
> The best we can do now is stop, take a deep breath and follow the
> offers of Alexey about deprecation, my proposal and Denis' idea about
> one additional iteration.
>
> On Mon, Jan 27, 2020 at 4:37 PM Nikolay Izhikov  wrote:
> >
> > > it's better to remove deprecation for the old APIs in AI 2.8
> >
> > Are you suggest to have 2 concurrent metrics implementations(both not 
> > deprecated)?
> >
> > > Let's say I am writing a custom exporter in binary format and I need to 
> > > write the number of exported metrics in a packet beforehand.
> >
> > This an `MetricExporterSPI` implementation task.
> > Exporter has the listeners that can be used to track all registry events - 
> > creation, removal
> >
> > > There is no separation on public and internal metrics
> >
> > I think we should write in the documentation that ANY metric can be changed.
> > We will try to keep them, but if we found that some metric doesn’t required 
> > any more or implemented in the wrong way - we can remove it.
> >
> > > Will we allow users to register their own metrics?
> >
> > No. Why we should considering this feature?
> >
> > > It's still not clear how a user will map old interfaces and methods to 
> > > the new metric names.
> >
> > With the documentation.
> > We can write separate deprecation comment for each metric providing method.
> >
> > > I just want to remove the deprecations on the classes for which there is 
> > > no a well-defined replacement.
> >
> > Well-defined replacement for these classes exists.
> >
> > > 27 янв. 2020 г., в 16:21, Alexey Goncharuk  
> > > написал(а):
> > >
> > > Nikolay,
> > >
> > > I've reviewed your changes and I tend to agree with Andrey, it's better to
> > > remove deprecation for the old APIs in AI 2.8 and discuss and merge the 
> > > new
> > > facade (IGNITE-12553) in a more calm and structured way. My observations 
> > > on
> > > the changes:
> > >
> > >   - I am not sure if 

Cache 6 suite is broken

2020-01-28 Thread Zhenya Stanilovsky


Looks like i found problem root cause, first run completed on TC, hope it would 
be ok with other builds.
 
>
>
>--- Forwarded message ---
>From: "Ivan Pavlukhin" < vololo...@gmail.com >
>To: dev < dev@ignite.apache.org >
>Cc:
>Subject: Re: Cache 6 suite is broken
>Date: Fri, 20 Dec 2019 10:04:07 +0300
>
>FYI
>
>I applied the patch.
>
>ср, 18 дек. 2019 г. в 14:46, Ivan Pavlukhin < vololo...@gmail.com >:
>>
>> So, if nobody objects, I will merge PR [1] on Friday.
>>
>> [1]  https://github.com/apache/ignite/pull/7142
>>
>> ср, 18 дек. 2019 г. в 13:13, Dmitriy Pavlov < dpav...@apache.org >:
>> >
>> > Hi Ivan, Igniters,
>> >
>> > My proposal is to apply PR and take a look to wider statistics in the
>> > master branch. WDYT?
>> >
>> > Sincerely,
>> > Dmitriy Pavlov
>> >
>> > ср, 18 дек. 2019 г. в 09:36, Ivan Pavlukhin < vololo...@gmail.com >:
>> >
>> > > Igniters,
>> > >
>> > > I run tests several times for my PR [1] and results [2] looks somehow
>> > > better than in master [3]. But the problematic test seems too flaky.
>> > > So, I cannot decide between 2 options:
>> > > 1. Apply PR [1].
>> > > 2. Ignore the problematic test.
>> > > (Unfortunately do not have a chance to investigate and fix)
>> > >
>> > > Someone's opinion would be helpful here.
>> > >
>> > > [1]  https://github.com/apache/ignite/pull/7142
>> > > [2]
>> > >
>>  
>> https://ci.ignite.apache.org/buildConfiguration/IgniteTests24Java8_Cache6?branch=pull%2F7142%2Fhead=overview
>> > > [3]
>> > >
>>  
>> https://ci.ignite.apache.org/buildConfiguration/IgniteTests24Java8_Cache6?branch=%3Cdefault%3E=overview
>> > >
>> > > пн, 16 дек. 2019 г. в 13:38, Ivan Pavlukhin < vololo...@gmail.com >:
>> > > >
>> > > > An update. After increasing NetworkTimeout [1] the test passes
>> rarely
>> > > [2].
>> > > >
>> > > > [1]  https://github.com/apache/ignite/pull/7142/files
>> > > > [2]
>> > >
>>  
>> https://ci.ignite.apache.org/buildConfiguration/IgniteTests24Java8_Cache6?branch=pull%2F7142%2Fhead=overview
>> > > >
>> > > > пн, 16 дек. 2019 г. в 09:07, Ivan Pavlukhin < vololo...@gmail.com >:
>> > > > >
>> > > > > Hi,
>> > > > >
>> > > > > I noticied that Cache 6 suite finishes badly (exit code 137)
>> almost
>> > > > > everytime [1] on master. It started recently. A problematic test
>> > > > > inside is IgniteCache150ClientsTest. I made some attempts to fix
>> the
>> > > > > test (including reverting recent commits), but had no luck. And
>> a hard
>> > > > > part here is that I do not know whether the issue was caused by
>> code
>> > > > > changes or it is infrastructural one. My best attempt was
>> increasing
>> > > > > NetworkTimeout in test IgniteConfiguration [2]. After that the
>> suite
>> > > > > was able to finish, but IgniteCache150ClientsTest failed. Also,
>> the
>> > > > > problematic test seems so flaky, there are many failures in
>> history.
>> > > > >
>> > > > > Do not have any really good solution in my mind. I see following
>> > > options:
>> > > > > 1. Use workaround in PR [2].
>> > > > > 2. Ignore test and dig deeper in scope of a separate ticket.
>> > > > >
>> > > > > What do you think?
>> > > > >
>> > > > > [1]
>> > >
>>  
>> https://ci.ignite.apache.org/buildConfiguration/IgniteTests24Java8_Cache6?branch=%3Cdefault%3E=overview
>> > > > > [2]  https://github.com/apache/ignite/pull/7142/files
>> > > > > --
>> > > > > Best regards,
>> > > > > Ivan Pavlukhin
>> > > >
>> > > >
>> > > >
>> > > > --
>> > > > Best regards,
>> > > > Ivan Pavlukhin
>> > >
>> > >
>> > >
>> > > --
>> > > Best regards,
>> > > Ivan Pavlukhin
>> > >
>>
>>
>>
>> --
>> Best regards,
>> Ivan Pavlukhin 
 
 
 
 

[DISCUSS] Relevance of CacheConfiguration.DefaultLockTimeout

2020-01-28 Thread Ivan Pavlukhin
Hi,

I failed to find where CacheConfiguration.DefaultLockTimeout property
is used. Does anyone know how is it used? If it is not used I suppose
we can mark this property deprecated.

Please share your thoughts!

-- 
Best regards,
Ivan Pavlukhin


[jira] [Created] (IGNITE-12597) IgniteTxStoreExceptionAbstractSelfTest

2020-01-28 Thread Vladimir Steshin (Jira)
Vladimir Steshin created IGNITE-12597:
-

 Summary: IgniteTxStoreExceptionAbstractSelfTest
 Key: IGNITE-12597
 URL: https://issues.apache.org/jira/browse/IGNITE-12597
 Project: Ignite
  Issue Type: Sub-task
Reporter: Vladimir Steshin
Assignee: Vladimir Steshin


org.apache.ignite.internal.processors.cache.GridCacheColocatedTxStoreExceptionSelfTest
 might be parametrized. Extending classes wear only params and are executed in 
a row



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-12596) Parametrization of IgniteCacheAbstractExecutionContextTest

2020-01-28 Thread Vladimir Steshin (Jira)
Vladimir Steshin created IGNITE-12596:
-

 Summary: Parametrization of IgniteCacheAbstractExecutionContextTest
 Key: IGNITE-12596
 URL: https://issues.apache.org/jira/browse/IGNITE-12596
 Project: Ignite
  Issue Type: Sub-task
 Environment: 
org.apache.ignite.internal.processors.cache.context.IgniteCacheAbstractExecutionContextTest
 is activated 3 times with just various params via inheritance. The problem is 
that the extending classes are included in the target test suits not always 
with entire combinations of params. Sometimes only 2 extendins classes are 
involved within tests, sometimes 3. I think of using subclasses of 
IgniteCacheAbstractExecutionContextTest as set of params.
Reporter: Vladimir Steshin
Assignee: Vladimir Steshin






--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-12595) Parametrization of GridCacheSetAbstractSelfTest

2020-01-28 Thread Vladimir Steshin (Jira)
Vladimir Steshin created IGNITE-12595:
-

 Summary: Parametrization of GridCacheSetAbstractSelfTest
 Key: IGNITE-12595
 URL: https://issues.apache.org/jira/browse/IGNITE-12595
 Project: Ignite
  Issue Type: Sub-task
Reporter: Vladimir Steshin
Assignee: Vladimir Steshin


org.apache.ignite.internal.processors.cache.datastructures.GridCacheSetAbstractSelfTest
 might be used with params. Not the best candidate, but is still able to reduce 
tests code base.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


Re: Ignite-spring-boot-autoconfigurer

2020-01-28 Thread Nikolay Izhikov
Merged to master [1]

Igniters, I want to release both modules I added.
Do we have documentation, how it should be done for ignite-extensions?

[1]
https://github.com/apache/ignite-extensions/commit/575ec510e4d48b1e0c2ec7e4cf8d596e7de82f70

пн, 27 янв. 2020 г. в 13:06, Nikolay Izhikov :

> Hello, Alexey Kuznetsov.
>
> I have two approvals from Saikat Maitra and Maxim Stepachov.
> I have plans to merge spring-boot autoconfigure modules to
> ignite-extensions. [1]
> Do you want to perform additional review?
>
> [1] https://github.com/apache/ignite-extensions/pull/6
>
> пт, 24 янв. 2020 г. в 07:41, Saikat Maitra :
>
>> Hi Nikolay,
>>
>> Thank you for updating the PR, the changes looks good.
>>
>> Regards,
>> Saikat
>>
>> On Wed, Jan 22, 2020 at 1:33 PM Николай Ижиков 
>> wrote:
>>
>> > Hello, Saikat.
>> >
>> > Thank you so much for the review.
>> >
>> > I answered your questions and resolve all the comments.
>> > Please, take a look, one more time.
>> >
>> > > 22 янв. 2020 г., в 07:58, Saikat Maitra 
>> > написал(а):
>> > >
>> > > Hi Nikolay,
>> > >
>> > > I have reviewed the PR and shared comments.
>> > >
>> > > Please let me know if you have any feedback.
>> > >
>> > > Regards,
>> > > Saikat
>> > >
>> > > On Mon, Jan 20, 2020 at 2:42 PM Николай Ижиков 
>> > wrote:
>> > >
>> > >> Hello, Saikat.
>> > >>
>> > >> Thanks, for feedback.
>> > >>
>> > >> I raised a PR [1] to `ignite-extensions`.
>> > >>
>> > >> You can find description of the new module below(examples can be
>> found
>> > at
>> > >> [2]):
>> > >>
>> > >> Module provides the ability to integrate `Ignite` into you
>> spring-boot
>> > >> application with zero(or minimal) configuration.
>> > >>
>> > >> After you add this module as a dependency to your spring-boot
>> > application
>> > >> `Ignite` node will be configured and injected into `BeanFactory`.
>> > >>
>> > >> Algorithm to configure `Ignite` is the following:
>> > >>  1. If `IgniteConfiguration` bean exists in the `BeanFactory` it
>> will be
>> > >> used.
>> > >>  2. If `IgniteConfiguration` bean doesn't exist following rules are
>> > >> applied:
>> > >>2.1. Default `Ignite` configuration created.
>> > >>2.2. If `IgniteConfigurer` bean exists in `BeanFactory` it will be
>> > >> used to customize `IgniteConfiguration`.
>> > >> If a user wants to set custom SPI instances or similar
>> hardcoded
>> > >> values
>> > >> one should do it with `IgniteConfigurer` implementation.
>> > >>2.3  Application properties applied to `IgniteConfiguration`.
>> Prefix
>> > >> for the properties is `ignite`.
>> > >>
>> > >>
>> > >> [1] https://github.com/apache/ignite-extensions/pull/6
>> > >> [2]
>> > https://github.com/nizhikov/ignite-spring-boot-autoconfigure-example
>> > >>
>> > >>
>> > >>> 18 янв. 2020 г., в 06:44, Saikat Maitra 
>> > >> написал(а):
>> > >>>
>> > >>> Hi Nikolay,
>> > >>>
>> > >>> Thank you for your email. As part of Ignite Extensions migration we
>> are
>> > >> migrating Ignite Extensions to following repo.
>> > >>>
>> > >>> https://github.com/apache/ignite-extensions
>> > >>>
>> > >>> We have added flink and pub-sub modules and few additional modules
>> are
>> > >> open in PR.
>> > >>>
>> > >>> You can refer to this PR to see how we are migrating the modules
>> > >> https://github.com/apache/ignite-extensions/pull/5
>> > >>>
>> > >>> I wanted to connect and discuss the changes to understand the spring
>> > >> boot auto configure feature. We currently have an ignite spring
>> module
>> > that
>> > >> allows resource injection capabilities and provides a parser for
>> Spring
>> > >> based xml configuration files. Can you please review and share if the
>> > >> changes you are proposing can be added as part of Ignite spring
>> module
>> > or
>> > >> it make sense to make it a separate spring boot auto configure
>> module.
>> > >>>
>> > >>> https://github.com/apache/ignite/tree/master/modules/spring
>> > >>>
>> > >>> Regards,
>> > >>> Saikat
>> > >>>
>> > >>>
>> > >>>
>> > >>>
>> > >>>
>> > >>>
>> > >>>
>> > >>> On Fri, Jan 17, 2020 at 3:12 AM Николай Ижиков > >
>> > >> wrote:
>> > >>> Tests added.
>> > >>> Please, review.
>> > >>>
>> > >>> Saikat, can you help with this PR [1]?
>> > >>>
>> > >>> I think it should be added as a separate module as we do with the
>> flink
>> > >> integration.
>> > >>> Can you help me with it?
>> > >>> Do we have some how-to for it?
>> > >>>
>> > >>> [1] https://github.com/apache/ignite/pull/7237
>> > >>>
>> >  16 янв. 2020 г., в 16:51, Николай Ижиков 
>> > >> написал(а):
>> > 
>> >  Hello, Denis.
>> > 
>> >  Thanks, for the feedback.
>> > 
>> >  Alexey, it seems, PR is ready to be reviewed, but I need some
>> time(a
>> > >> day or two) to write tests.
>> >  You can start with the core code review if you wish.
>> > 
>> >  Here are autoconfigurer requirements:
>> > 
>> >  1. Start usage of Ignite with minimal(or zero) configuration.
>> >  2. Configure Ignite configuration properties with 

[jira] [Created] (IGNITE-12594) Deadlock between GridCacheDataStore#purgeExpiredInternal and GridNearTxLocal#enlistWriteEntry

2020-01-28 Thread Anton Kalashnikov (Jira)
Anton Kalashnikov created IGNITE-12594:
--

 Summary: Deadlock between GridCacheDataStore#purgeExpiredInternal 
and GridNearTxLocal#enlistWriteEntry
 Key: IGNITE-12594
 URL: https://issues.apache.org/jira/browse/IGNITE-12594
 Project: Ignite
  Issue Type: Bug
Reporter: Anton Kalashnikov
Assignee: Anton Kalashnikov


The deadlock is reproduced occasionally in PDS3 suite and can be seen in the 
thread dump below.
One thread attempts to unwind evicts, acquires checkpoint read lock and then 
locks {{GridCacheMapEntry}}. Another thread does {{GridCacheMapEntry#unswap}}, 
determines that the entry is expired and acquires checkpoint read lock to 
remove the entry from the store. 
We should not acquire checkpoint read lock inside of a locked 
{{GridCacheMapEntry}}.

{code:java}Thread [name="updater-1", id=29900, state=WAITING, blockCnt=2, 
waitCnt=4450]
Lock 
[object=java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync@2fc51685, 
ownerName=null, ownerId=-1]
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:967)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1283)
at 
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:727)
at 
o.a.i.i.processors.cache.persistence.GridCacheDatabaseSharedManager.checkpointReadLock(GridCacheDatabaseSharedManager.java:1632)
   <- CP read lock
at 
o.a.i.i.processors.cache.GridCacheMapEntry.onExpired(GridCacheMapEntry.java:4081)
at 
o.a.i.i.processors.cache.GridCacheMapEntry.unswap(GridCacheMapEntry.java:559)
at 
o.a.i.i.processors.cache.GridCacheMapEntry.unswap(GridCacheMapEntry.java:519)   
   <- locked entry
at 
o.a.i.i.processors.cache.distributed.near.GridNearTxLocal.enlistWriteEntry(GridNearTxLocal.java:1437)
at 
o.a.i.i.processors.cache.distributed.near.GridNearTxLocal.enlistWrite(GridNearTxLocal.java:1303)
at 
o.a.i.i.processors.cache.distributed.near.GridNearTxLocal.putAllAsync0(GridNearTxLocal.java:957)
at 
o.a.i.i.processors.cache.distributed.near.GridNearTxLocal.putAllAsync(GridNearTxLocal.java:491)
at 
o.a.i.i.processors.cache.GridCacheAdapter$29.inOp(GridCacheAdapter.java:2526)
at 
o.a.i.i.processors.cache.GridCacheAdapter$SyncInOp.op(GridCacheAdapter.java:4727)
at 
o.a.i.i.processors.cache.GridCacheAdapter.syncOp(GridCacheAdapter.java:3740)
at 
o.a.i.i.processors.cache.GridCacheAdapter.putAll0(GridCacheAdapter.java:2524)
at 
o.a.i.i.processors.cache.GridCacheAdapter.putAll(GridCacheAdapter.java:2513)
at 
o.a.i.i.processors.cache.IgniteCacheProxyImpl.putAll(IgniteCacheProxyImpl.java:1264)
at 
o.a.i.i.processors.cache.GatewayProtectedCacheProxy.putAll(GatewayProtectedCacheProxy.java:863)
at 
o.a.i.i.processors.cache.persistence.IgnitePdsContinuousRestartTest$1.call(IgnitePdsContinuousRestartTest.java:291)
at o.a.i.testframework.GridTestThread.run(GridTestThread.java:83)

Locked synchronizers:
java.util.concurrent.locks.ReentrantLock$NonfairSync@762613f7


Thread 
[name="sys-stripe-0-#24086%persistence.IgnitePdsContinuousRestartTestWithExpiryPolicy0%",
 id=29617, state=WAITING, blockCnt=2, waitCnt=65381]
Lock [object=java.util.concurrent.locks.ReentrantLock$NonfairSync@762613f7, 
ownerName=updater-1, ownerId=29900]
at sun.misc.Unsafe.park(Native Method)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
at 
java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209)
at 
java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285)   
<- lock entry
at 
o.a.i.i.processors.cache.GridCacheMapEntry.lockEntry(GridCacheMapEntry.java:5017)
at 
o.a.i.i.processors.cache.GridCacheMapEntry.markObsoleteVersion(GridCacheMapEntry.java:2799)
at 
o.a.i.i.processors.cache.distributed.dht.topology.GridDhtLocalPartition.removeVersionedEntry(GridDhtLocalPartition.java:392)
at 

[jira] [Created] (IGNITE-12593) Corruption of B+Tree caused by byte array values and TTL

2020-01-28 Thread Anton Kalashnikov (Jira)
Anton Kalashnikov created IGNITE-12593:
--

 Summary: Corruption of B+Tree caused by byte array values and TTL
 Key: IGNITE-12593
 URL: https://issues.apache.org/jira/browse/IGNITE-12593
 Project: Ignite
  Issue Type: Bug
Reporter: Anton Kalashnikov
Assignee: Anton Kalashnikov


It seems that the following set of parameters may lead to a corruption of 
B+Tree:
 - persistence is enabled
 - TTL is enabled 
 - Expiry policy - AccessedExpiryPolicy 1 sec.
 - cache value type is byte[]
 - all caches belong to the same cache group

Example of the stack trace:
{code:java}
[2019-07-16 
21:13:19,288][ERROR][sys-stripe-2-#46%db.IgnitePdsWithTtlDeactivateOnHighloadTest1%][IgniteTestResources]
 Critical system error detected. Will be handled accordingly to configured 
handler [hnd=NoOpFailureHandler [super=AbstractFailureHandler 
[ignoredFailureTypes=UnmodifiableSet [SYSTEM_WORKER_BLOCKED, 
SYSTEM_CRITICAL_OPERATION_TIMEOUT]]], failureCtx=FailureContext 
[type=CRITICAL_ERROR, err=class 
o.a.i.i.processors.cache.persistence.tree.CorruptedTreeException: B+Tree is 
corrupted [pages(groupId, pageId)=[IgniteBiTuple [val1=-1237460590, 
val2=281586645860358]], msg=Runtime failure on search row: SearchRow 
[key=KeyCacheObjectImpl [part=26, val=378, hasValBytes=true], hash=378, 
cacheId=-1806498247
class 
org.apache.ignite.internal.processors.cache.persistence.tree.CorruptedTreeException:
 B+Tree is corrupted [pages(groupId, pageId)=[IgniteBiTuple [val1=-1237460590, 
val2=281586645860358]], msg=Runtime failure on search row: SearchRow 
[key=KeyCacheObjectImpl [part=26, val=378, hasValBytes=true], hash=378, 
cacheId=-1806498247]]
at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.corruptedTreeException(BPlusTree.java:5910)
at 
org.apache.ignite.internal.processors.cache.persistence.tree.BPlusTree.invoke(BPlusTree.java:1859)
at 
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.invoke0(IgniteCacheOffheapManagerImpl.java:1662)
at 
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl$CacheDataStoreImpl.invoke(IgniteCacheOffheapManagerImpl.java:1645)
at 
org.apache.ignite.internal.processors.cache.persistence.GridCacheOffheapManager$GridCacheDataStore.invoke(GridCacheOffheapManager.java:2410)
at 
org.apache.ignite.internal.processors.cache.IgniteCacheOffheapManagerImpl.invoke(IgniteCacheOffheapManagerImpl.java:445)
at 
org.apache.ignite.internal.processors.cache.GridCacheMapEntry.innerUpdate(GridCacheMapEntry.java:2309)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateSingle(GridDhtAtomicCache.java:2570)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.update(GridDhtAtomicCache.java:2030)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal0(GridDhtAtomicCache.java:1848)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.updateAllAsyncInternal(GridDhtAtomicCache.java:1668)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.processNearAtomicUpdateRequest(GridDhtAtomicCache.java:3235)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache.access$400(GridDhtAtomicCache.java:139)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$5.apply(GridDhtAtomicCache.java:273)
at 
org.apache.ignite.internal.processors.cache.distributed.dht.atomic.GridDhtAtomicCache$5.apply(GridDhtAtomicCache.java:268)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.processMessage(GridCacheIoManager.java:1141)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.onMessage0(GridCacheIoManager.java:591)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:392)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.handleMessage(GridCacheIoManager.java:318)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager.access$100(GridCacheIoManager.java:109)
at 
org.apache.ignite.internal.processors.cache.GridCacheIoManager$1.onMessage(GridCacheIoManager.java:308)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.invokeListener(GridIoManager.java:1558)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.processRegularMessage0(GridIoManager.java:1186)
at 
org.apache.ignite.internal.managers.communication.GridIoManager.access$4200(GridIoManager.java:125)
at 

[jira] [Created] (IGNITE-12592) Calcite integration. Query load balancing.

2020-01-28 Thread Igor Seliverstov (Jira)
Igor Seliverstov created IGNITE-12592:
-

 Summary: Calcite integration. Query load balancing.
 Key: IGNITE-12592
 URL: https://issues.apache.org/jira/browse/IGNITE-12592
 Project: Ignite
  Issue Type: Task
Reporter: Igor Seliverstov


Currently all query tasks execute in a query pool. The pool contains a limited 
number of threads, so, in case of long running scan operation other query tasks 
will starve.

We need to limit time a thread spends inside {{ScanNode#requestInternal 
method}}.

See appropriate TODO



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-12591) Scan query scans invalid partitions on unstable topology

2020-01-28 Thread Ivan Pavlukhin (Jira)
Ivan Pavlukhin created IGNITE-12591:
---

 Summary: Scan query scans invalid partitions on unstable topology
 Key: IGNITE-12591
 URL: https://issues.apache.org/jira/browse/IGNITE-12591
 Project: Ignite
  Issue Type: Bug
  Components: cache
Affects Versions: 2.8
Reporter: Ivan Pavlukhin


Apparently scan query {{ScanQuery}} (without specifying explicit partition) 
does not reserve partitions. Consequently when there is a partition movement 
(unstable topology, e.g. new node joins the cluster) query can read from an 
invalid (e.g. already destroyed) partition.

It is easy to catch "java.lang.IllegalStateException: Tree is being 
concurrently destroyed". As it is a consequence of a race condition other 
exceptions might be possible. See attached reproducer.

One possible solution here is to reserve partitions properly. Other approach is 
to consider some optimistic strategy.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


Re: Add user attributes to thin clients

2020-01-28 Thread Andrey Kuznetsov
Igor,

I see nothing criminal in attribute visibility to internal Ignite
components. It could be a hole if attributes were available through public
API.


вт, 28 янв. 2020 г., 13:07 Igor Sapego :

> Ilya,
>
> The fact that we have some security holes does not sound to me
> like a good reason to create a new one.
>
> Best Regards,
> Igor
>
>
> On Tue, Jan 28, 2020 at 12:22 PM Ilya Kasnacheev <
> ilya.kasnach...@gmail.com>
> wrote:
>
> > Hello!
> >
> > We already have several "security contexts" and we even have some code
> > which tries to clear sensitive data from it.
> >
> > However, it is no good for authenticating nodes anyway, since discovery
> > message have to travel via ring, so all server nodes will have access to
> > sensitive information.
> >
> > Regards,
> > --
> > Ilya Kasnacheev
> >
> >
> > вт, 28 янв. 2020 г. в 11:41, Igor Sapego :
> >
> > > Dmitrii,
> > >
> > > I'm not a security expert, but I have a concern about the usage
> > > of common purpose mechanism for authentication purposes.
> > >
> > > I mean any other component seem to be able to get this data which
> > > should be private. Looks like a dangerous hack to me, to be honest.
> > >
> > > Maybe we should create and use some kind of "security context" for
> > > this purpose with limited access.
> > >
> > > Best Regards,
> > > Igor
> > >
> > >
> > > On Mon, Jan 27, 2020 at 3:29 PM Dmitrii Ryabov 
> > > wrote:
> > >
> > > > Ok, if no one have objections, I will restrict a map by strings only.
> > > >
> > > > чт, 23 янв. 2020 г., 17:20 Pavel Tupitsyn :
> > > >
> > > > > >  Well, my understanding was a binary object with compact footer =
> > > false
> > > > > is totally standalone entity and can be read without any external
> > > > metadata
> > > > > Not exactly: type name and field names are unknown, you only have
> > > typeId,
> > > > > field ids and positions.
> > > > > There is one more Marshaller "mode": UNREGISTERED_TYPE_ID. In this
> > > mode,
> > > > > full type name is included in the binary object.
> > > > > However, field names are still missing and the class needs to be
> > > present
> > > > to
> > > > > deserialize.
> > > > > That's why arbitrary objects should not be allowed in the
> handshake:
> > in
> > > > > most cases they can't be decoded.
> > > > >
> > > > > On Thu, Jan 23, 2020 at 2:27 PM Dmitrii Ryabov <
> > somefire...@gmail.com>
> > > > > wrote:
> > > > >
> > > > > > Alexei, yes, compactFooter is used only in 1 place.
> > > > > >
> > > > > > ```
> > > > > >
> > > > > > BinaryWriterExImpl.marshal0() {
> > > > > >
> > > > > >   BinaryClassDescriptor desc = ctx.descriptorForClass(cls);
> > > > > >
> > > > > >   // descriptor transportation fails here
> > > > > >
> > > > > >   ...
> > > > > >
> > > > > >   desc.write(obj, this); // compactFooter here
> > > > > >
> > > > > > }
> > > > > >
> > > > > > ```
> > > > > >
> > > > > > чт, 23 янв. 2020 г., 14:15 Pavel Tupitsyn  >:
> > > > > >
> > > > > > > > If we support only strings it will be necessary to encode
> > binary
> > > > > values
> > > > > > > to
> > > > > > > > something like BASE64 which is not sounds good from usability
> > > side
> > > > > > >
> > > > > > > There should be no need to put binary values to attributes.
> > What's
> > > > the
> > > > > > use
> > > > > > > case?
> > > > > > >
> > > > > > > On Thu, Jan 23, 2020 at 2:08 PM Alexei Scherbakov <
> > > > > > > alexey.scherbak...@gmail.com> wrote:
> > > > > > >
> > > > > > > > > Footer is checked in postWrite - much later class
> descriptor
> > > > check.
> > > > > > > >
> > > > > > > > Well, my understanding was a binary object with compact
> footer
> > =
> > > > > false
> > > > > > is
> > > > > > > > totally standalone entity and can be read without any
> external
> > > > > > metadata.
> > > > > > > > Dmitrii Ryabov can you double check ?
> > > > > > > >
> > > > > > > > If we support only strings it will be necessary to encode
> > binary
> > > > > values
> > > > > > > to
> > > > > > > > something like BASE64 which is not sounds good from usability
> > > side.
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > чт, 23 янв. 2020 г. в 13:26, Nikita Amelchev <
> > > nsamelc...@gmail.com
> > > > >:
> > > > > > > >
> > > > > > > > > +1 for the hardcoded String type only
> > > > > > > > >
> > > > > > > > > чт, 23 янв. 2020 г. в 13:15, Pavel Tupitsyn <
> > > > ptupit...@apache.org
> > > > > >:
> > > > > > > > > >
> > > > > > > > > > - Cross-platform binary objects are totally possible, all
> > > those
> > > > > > thin
> > > > > > > > > > clients support them.
> > > > > > > > > > - User attributes can be useful, no objections here
> > > > > > > > > >
> > > > > > > > > > However, I don't think we should allow arbitrary objects
> in
> > > > user
> > > > > > > > > attributes.
> > > > > > > > > > Let's make them string only, much less to worry about.
> > > > > > > > > >
> > > > > > > > > > And using attributes for authentication still seems weird
> > and
> > > > > > dirty.
> > > > > > > > > >
> > > > > > 

[jira] [Created] (IGNITE-12590) MERGE INTO query is failing on Ignite client node

2020-01-28 Thread Taras Ledkov (Jira)
Taras Ledkov created IGNITE-12590:
-

 Summary: MERGE INTO query is failing on Ignite client node
 Key: IGNITE-12590
 URL: https://issues.apache.org/jira/browse/IGNITE-12590
 Project: Ignite
  Issue Type: Bug
  Components: sql
Affects Versions: 2.7
Reporter: Taras Ledkov
Assignee: Taras Ledkov
 Fix For: 2.9


Precondition: server nodes (any amount), webconsole is running.

1. Create the table as following:

CREATE TABLE USERPUBSTATICDATA (BOOK VARCHAR, DESK VARCHAR, TRADERS VARCHAR, 
REGION VARCHAR, LOB VARCHAR, EXCLUDE VARCHAR, TRANSIT VARCHAR, 
MAPBOOKTOTHISBOOK VARCHAR, CONSTRAINT USERPUBSTATICDATA_PK PRIMARY KEY 
(BOOK,DESK)) WITH "template=replicated"

2. Execute merge into query:

MERGE INTO USERPUBSTATICDATA(BOOK, DESK, TRADERS, REGION, LOB, EXCLUDE, 
TRANSIT, MAPBOOKTOTHISBOOK) VALUES('CADOIS', 'FRT TOR', 'Robin Das/Dave 
Carlson', 'Toronto', 'FRT', null, null, 'CADOIS');

Step 2 is successfull on Web Console and called on IgniteCache from the server 
node, but fails when called from the Ignite client node with exception:
{code}
javax.cache.CacheException: Invalid column name in KEYS clause of MERGE - it 
may include only key and/or affinity columns: BOOK
{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


Re: [ANNOUNCE] New Apache Ignite PMC member: Igor Sapego

2020-01-28 Thread Igor Sapego
Thanks guys,

It's a pleasure to be a part of this great community

Best Regards,
Igor


On Mon, Jan 27, 2020 at 9:26 PM Denis Magda  wrote:

> Igor, thanks for being an invaluable member of the community all this time!
> Congrats!
>
> -
> Denis
>
>
> On Sun, Jan 26, 2020 at 9:58 PM Ivan Pavlukhin 
> wrote:
>
> > Hello Ignite Community,
> >
> > The Project Management Committee (PMC) for Apache Ignite has invited
> > Igor Sapego to join the PMC as a new member and we are pleased to
> > announce that he has accepted.
> >
> > Igor is an active Community member for a long time. He made a
> > worthless contribution in Ignite C++ development and continues to do
> > it today. Moreover he drives thin clients development for other
> > programming languages. Additionally, always helpful on users mailing
> > list. Wrote blog posts and spoke publicly about Ignite.
> >
> > Being a PMC member enables assistance with the management and to guide
> > the direction of the project.
> >
> > Please join me in congratulating Igor!
> >
> > Best regards,
> > Ivan Pavlukhin
> > on behalf of Apache Ignite PMC
> >
>


Re: Add user attributes to thin clients

2020-01-28 Thread Igor Sapego
Ilya,

The fact that we have some security holes does not sound to me
like a good reason to create a new one.

Best Regards,
Igor


On Tue, Jan 28, 2020 at 12:22 PM Ilya Kasnacheev 
wrote:

> Hello!
>
> We already have several "security contexts" and we even have some code
> which tries to clear sensitive data from it.
>
> However, it is no good for authenticating nodes anyway, since discovery
> message have to travel via ring, so all server nodes will have access to
> sensitive information.
>
> Regards,
> --
> Ilya Kasnacheev
>
>
> вт, 28 янв. 2020 г. в 11:41, Igor Sapego :
>
> > Dmitrii,
> >
> > I'm not a security expert, but I have a concern about the usage
> > of common purpose mechanism for authentication purposes.
> >
> > I mean any other component seem to be able to get this data which
> > should be private. Looks like a dangerous hack to me, to be honest.
> >
> > Maybe we should create and use some kind of "security context" for
> > this purpose with limited access.
> >
> > Best Regards,
> > Igor
> >
> >
> > On Mon, Jan 27, 2020 at 3:29 PM Dmitrii Ryabov 
> > wrote:
> >
> > > Ok, if no one have objections, I will restrict a map by strings only.
> > >
> > > чт, 23 янв. 2020 г., 17:20 Pavel Tupitsyn :
> > >
> > > > >  Well, my understanding was a binary object with compact footer =
> > false
> > > > is totally standalone entity and can be read without any external
> > > metadata
> > > > Not exactly: type name and field names are unknown, you only have
> > typeId,
> > > > field ids and positions.
> > > > There is one more Marshaller "mode": UNREGISTERED_TYPE_ID. In this
> > mode,
> > > > full type name is included in the binary object.
> > > > However, field names are still missing and the class needs to be
> > present
> > > to
> > > > deserialize.
> > > > That's why arbitrary objects should not be allowed in the handshake:
> in
> > > > most cases they can't be decoded.
> > > >
> > > > On Thu, Jan 23, 2020 at 2:27 PM Dmitrii Ryabov <
> somefire...@gmail.com>
> > > > wrote:
> > > >
> > > > > Alexei, yes, compactFooter is used only in 1 place.
> > > > >
> > > > > ```
> > > > >
> > > > > BinaryWriterExImpl.marshal0() {
> > > > >
> > > > >   BinaryClassDescriptor desc = ctx.descriptorForClass(cls);
> > > > >
> > > > >   // descriptor transportation fails here
> > > > >
> > > > >   ...
> > > > >
> > > > >   desc.write(obj, this); // compactFooter here
> > > > >
> > > > > }
> > > > >
> > > > > ```
> > > > >
> > > > > чт, 23 янв. 2020 г., 14:15 Pavel Tupitsyn :
> > > > >
> > > > > > > If we support only strings it will be necessary to encode
> binary
> > > > values
> > > > > > to
> > > > > > > something like BASE64 which is not sounds good from usability
> > side
> > > > > >
> > > > > > There should be no need to put binary values to attributes.
> What's
> > > the
> > > > > use
> > > > > > case?
> > > > > >
> > > > > > On Thu, Jan 23, 2020 at 2:08 PM Alexei Scherbakov <
> > > > > > alexey.scherbak...@gmail.com> wrote:
> > > > > >
> > > > > > > > Footer is checked in postWrite - much later class descriptor
> > > check.
> > > > > > >
> > > > > > > Well, my understanding was a binary object with compact footer
> =
> > > > false
> > > > > is
> > > > > > > totally standalone entity and can be read without any external
> > > > > metadata.
> > > > > > > Dmitrii Ryabov can you double check ?
> > > > > > >
> > > > > > > If we support only strings it will be necessary to encode
> binary
> > > > values
> > > > > > to
> > > > > > > something like BASE64 which is not sounds good from usability
> > side.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > чт, 23 янв. 2020 г. в 13:26, Nikita Amelchev <
> > nsamelc...@gmail.com
> > > >:
> > > > > > >
> > > > > > > > +1 for the hardcoded String type only
> > > > > > > >
> > > > > > > > чт, 23 янв. 2020 г. в 13:15, Pavel Tupitsyn <
> > > ptupit...@apache.org
> > > > >:
> > > > > > > > >
> > > > > > > > > - Cross-platform binary objects are totally possible, all
> > those
> > > > > thin
> > > > > > > > > clients support them.
> > > > > > > > > - User attributes can be useful, no objections here
> > > > > > > > >
> > > > > > > > > However, I don't think we should allow arbitrary objects in
> > > user
> > > > > > > > attributes.
> > > > > > > > > Let's make them string only, much less to worry about.
> > > > > > > > >
> > > > > > > > > And using attributes for authentication still seems weird
> and
> > > > > dirty.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > On Thu, Jan 23, 2020 at 12:40 PM Dmitrii Ryabov <
> > > > > > somefire...@gmail.com
> > > > > > > >
> > > > > > > > > wrote:
> > > > > > > > >
> > > > > > > > > > > Even if compact footer is disabled ?
> > > > > > > > > > Footer is checked in postWrite - much later class
> > descriptor
> > > > > check.
> > > > > > > > > >
> > > > > > > > > > чт, 23 янв. 2020 г., 12:23 Alexei Scherbakov <
> > > > > > > > alexey.scherbak...@gmail.com
> > > > > > > > > > >:
> > > > > > > > > >

Re: Add user attributes to thin clients

2020-01-28 Thread Ilya Kasnacheev
Hello!

We already have several "security contexts" and we even have some code
which tries to clear sensitive data from it.

However, it is no good for authenticating nodes anyway, since discovery
message have to travel via ring, so all server nodes will have access to
sensitive information.

Regards,
-- 
Ilya Kasnacheev


вт, 28 янв. 2020 г. в 11:41, Igor Sapego :

> Dmitrii,
>
> I'm not a security expert, but I have a concern about the usage
> of common purpose mechanism for authentication purposes.
>
> I mean any other component seem to be able to get this data which
> should be private. Looks like a dangerous hack to me, to be honest.
>
> Maybe we should create and use some kind of "security context" for
> this purpose with limited access.
>
> Best Regards,
> Igor
>
>
> On Mon, Jan 27, 2020 at 3:29 PM Dmitrii Ryabov 
> wrote:
>
> > Ok, if no one have objections, I will restrict a map by strings only.
> >
> > чт, 23 янв. 2020 г., 17:20 Pavel Tupitsyn :
> >
> > > >  Well, my understanding was a binary object with compact footer =
> false
> > > is totally standalone entity and can be read without any external
> > metadata
> > > Not exactly: type name and field names are unknown, you only have
> typeId,
> > > field ids and positions.
> > > There is one more Marshaller "mode": UNREGISTERED_TYPE_ID. In this
> mode,
> > > full type name is included in the binary object.
> > > However, field names are still missing and the class needs to be
> present
> > to
> > > deserialize.
> > > That's why arbitrary objects should not be allowed in the handshake: in
> > > most cases they can't be decoded.
> > >
> > > On Thu, Jan 23, 2020 at 2:27 PM Dmitrii Ryabov 
> > > wrote:
> > >
> > > > Alexei, yes, compactFooter is used only in 1 place.
> > > >
> > > > ```
> > > >
> > > > BinaryWriterExImpl.marshal0() {
> > > >
> > > >   BinaryClassDescriptor desc = ctx.descriptorForClass(cls);
> > > >
> > > >   // descriptor transportation fails here
> > > >
> > > >   ...
> > > >
> > > >   desc.write(obj, this); // compactFooter here
> > > >
> > > > }
> > > >
> > > > ```
> > > >
> > > > чт, 23 янв. 2020 г., 14:15 Pavel Tupitsyn :
> > > >
> > > > > > If we support only strings it will be necessary to encode binary
> > > values
> > > > > to
> > > > > > something like BASE64 which is not sounds good from usability
> side
> > > > >
> > > > > There should be no need to put binary values to attributes. What's
> > the
> > > > use
> > > > > case?
> > > > >
> > > > > On Thu, Jan 23, 2020 at 2:08 PM Alexei Scherbakov <
> > > > > alexey.scherbak...@gmail.com> wrote:
> > > > >
> > > > > > > Footer is checked in postWrite - much later class descriptor
> > check.
> > > > > >
> > > > > > Well, my understanding was a binary object with compact footer =
> > > false
> > > > is
> > > > > > totally standalone entity and can be read without any external
> > > > metadata.
> > > > > > Dmitrii Ryabov can you double check ?
> > > > > >
> > > > > > If we support only strings it will be necessary to encode binary
> > > values
> > > > > to
> > > > > > something like BASE64 which is not sounds good from usability
> side.
> > > > > >
> > > > > >
> > > > > >
> > > > > > чт, 23 янв. 2020 г. в 13:26, Nikita Amelchev <
> nsamelc...@gmail.com
> > >:
> > > > > >
> > > > > > > +1 for the hardcoded String type only
> > > > > > >
> > > > > > > чт, 23 янв. 2020 г. в 13:15, Pavel Tupitsyn <
> > ptupit...@apache.org
> > > >:
> > > > > > > >
> > > > > > > > - Cross-platform binary objects are totally possible, all
> those
> > > > thin
> > > > > > > > clients support them.
> > > > > > > > - User attributes can be useful, no objections here
> > > > > > > >
> > > > > > > > However, I don't think we should allow arbitrary objects in
> > user
> > > > > > > attributes.
> > > > > > > > Let's make them string only, much less to worry about.
> > > > > > > >
> > > > > > > > And using attributes for authentication still seems weird and
> > > > dirty.
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > On Thu, Jan 23, 2020 at 12:40 PM Dmitrii Ryabov <
> > > > > somefire...@gmail.com
> > > > > > >
> > > > > > > > wrote:
> > > > > > > >
> > > > > > > > > > Even if compact footer is disabled ?
> > > > > > > > > Footer is checked in postWrite - much later class
> descriptor
> > > > check.
> > > > > > > > >
> > > > > > > > > чт, 23 янв. 2020 г., 12:23 Alexei Scherbakov <
> > > > > > > alexey.scherbak...@gmail.com
> > > > > > > > > >:
> > > > > > > > >
> > > > > > > > > > чт, 23 янв. 2020 г. в 12:17, Dmitrii Ryabov <
> > > > > somefire...@gmail.com
> > > > > > >:
> > > > > > > > > >
> > > > > > > > > > > > The protocol must be language-agnostic. If we add
> some
> > > > > features
> > > > > > > > > there,
> > > > > > > > > > > let's make sure they are usable from anywhere.
> > > > > > > > > > >
> > > > > > > > > > > That's why I want to allow primitives only. Any
> language
> > > can
> > > > > send
> > > > > > > > > numbers
> > > > > > > > > > > and strings.
> > > > 

[jira] [Created] (IGNITE-12589) Remote thin client operations are not authorized correctly.

2020-01-28 Thread PetrovMikhail (Jira)
PetrovMikhail created IGNITE-12589:
--

 Summary: Remote thin client operations are not authorized 
correctly.
 Key: IGNITE-12589
 URL: https://issues.apache.org/jira/browse/IGNITE-12589
 Project: Ignite
  Issue Type: Bug
Affects Versions: 2.7.6
Reporter: PetrovMikhail


In the current Ignite security approach security subject id is considered to be 
a node id (see IgniteSecurityProcessor:107). In the case of thin clients, this 
approach doesn't work correctly. If some operation is executed on behalf of a 
thin client on a remote node (node that is different from one to which thin 
client connection was established), it's impossible in the same way as for a 
node obtain a thin client security subject information.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


Re: Add user attributes to thin clients

2020-01-28 Thread Igor Sapego
Dmitrii,

I'm not a security expert, but I have a concern about the usage
of common purpose mechanism for authentication purposes.

I mean any other component seem to be able to get this data which
should be private. Looks like a dangerous hack to me, to be honest.

Maybe we should create and use some kind of "security context" for
this purpose with limited access.

Best Regards,
Igor


On Mon, Jan 27, 2020 at 3:29 PM Dmitrii Ryabov 
wrote:

> Ok, if no one have objections, I will restrict a map by strings only.
>
> чт, 23 янв. 2020 г., 17:20 Pavel Tupitsyn :
>
> > >  Well, my understanding was a binary object with compact footer = false
> > is totally standalone entity and can be read without any external
> metadata
> > Not exactly: type name and field names are unknown, you only have typeId,
> > field ids and positions.
> > There is one more Marshaller "mode": UNREGISTERED_TYPE_ID. In this mode,
> > full type name is included in the binary object.
> > However, field names are still missing and the class needs to be present
> to
> > deserialize.
> > That's why arbitrary objects should not be allowed in the handshake: in
> > most cases they can't be decoded.
> >
> > On Thu, Jan 23, 2020 at 2:27 PM Dmitrii Ryabov 
> > wrote:
> >
> > > Alexei, yes, compactFooter is used only in 1 place.
> > >
> > > ```
> > >
> > > BinaryWriterExImpl.marshal0() {
> > >
> > >   BinaryClassDescriptor desc = ctx.descriptorForClass(cls);
> > >
> > >   // descriptor transportation fails here
> > >
> > >   ...
> > >
> > >   desc.write(obj, this); // compactFooter here
> > >
> > > }
> > >
> > > ```
> > >
> > > чт, 23 янв. 2020 г., 14:15 Pavel Tupitsyn :
> > >
> > > > > If we support only strings it will be necessary to encode binary
> > values
> > > > to
> > > > > something like BASE64 which is not sounds good from usability side
> > > >
> > > > There should be no need to put binary values to attributes. What's
> the
> > > use
> > > > case?
> > > >
> > > > On Thu, Jan 23, 2020 at 2:08 PM Alexei Scherbakov <
> > > > alexey.scherbak...@gmail.com> wrote:
> > > >
> > > > > > Footer is checked in postWrite - much later class descriptor
> check.
> > > > >
> > > > > Well, my understanding was a binary object with compact footer =
> > false
> > > is
> > > > > totally standalone entity and can be read without any external
> > > metadata.
> > > > > Dmitrii Ryabov can you double check ?
> > > > >
> > > > > If we support only strings it will be necessary to encode binary
> > values
> > > > to
> > > > > something like BASE64 which is not sounds good from usability side.
> > > > >
> > > > >
> > > > >
> > > > > чт, 23 янв. 2020 г. в 13:26, Nikita Amelchev  >:
> > > > >
> > > > > > +1 for the hardcoded String type only
> > > > > >
> > > > > > чт, 23 янв. 2020 г. в 13:15, Pavel Tupitsyn <
> ptupit...@apache.org
> > >:
> > > > > > >
> > > > > > > - Cross-platform binary objects are totally possible, all those
> > > thin
> > > > > > > clients support them.
> > > > > > > - User attributes can be useful, no objections here
> > > > > > >
> > > > > > > However, I don't think we should allow arbitrary objects in
> user
> > > > > > attributes.
> > > > > > > Let's make them string only, much less to worry about.
> > > > > > >
> > > > > > > And using attributes for authentication still seems weird and
> > > dirty.
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > On Thu, Jan 23, 2020 at 12:40 PM Dmitrii Ryabov <
> > > > somefire...@gmail.com
> > > > > >
> > > > > > > wrote:
> > > > > > >
> > > > > > > > > Even if compact footer is disabled ?
> > > > > > > > Footer is checked in postWrite - much later class descriptor
> > > check.
> > > > > > > >
> > > > > > > > чт, 23 янв. 2020 г., 12:23 Alexei Scherbakov <
> > > > > > alexey.scherbak...@gmail.com
> > > > > > > > >:
> > > > > > > >
> > > > > > > > > чт, 23 янв. 2020 г. в 12:17, Dmitrii Ryabov <
> > > > somefire...@gmail.com
> > > > > >:
> > > > > > > > >
> > > > > > > > > > > The protocol must be language-agnostic. If we add some
> > > > features
> > > > > > > > there,
> > > > > > > > > > let's make sure they are usable from anywhere.
> > > > > > > > > >
> > > > > > > > > > That's why I want to allow primitives only. Any language
> > can
> > > > send
> > > > > > > > numbers
> > > > > > > > > > and strings.
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > > In general it's possible to have cross-platform complex
> data
> > > > > > structures,
> > > > > > > > > for example see protobuf.
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > Binary marshaller, before packing object to byte[], will
> > try
> > > to
> > > > > use
> > > > > > > > > > discovery processor and send message containing class
> > > > descriptor.
> > > > > > But
> > > > > > > > > thin
> > > > > > > > > > clients don't have discovery. Furthermore, if we write
> > binary
> > > > > > > > marshaller
> > > > > > > > > > without class descriptor synchronization, we can get
> > objects
> > > > with

[jira] [Created] (IGNITE-12588) Failed to run MLeap or Spark examples

2020-01-28 Thread Stepan Pilschikov (Jira)
Stepan Pilschikov created IGNITE-12588:
--

 Summary: Failed to run MLeap or Spark examples
 Key: IGNITE-12588
 URL: https://issues.apache.org/jira/browse/IGNITE-12588
 Project: Ignite
  Issue Type: Bug
  Components: ml, spark
Affects Versions: 2.8
 Environment: Java 8
Ubuntu/Win 10
Reporter: Stepan Pilschikov


New release build comes with missed class 
org.apache.ignite.ml.mleap.MLeapModelParser
 Now i can't build any spark examples

Steps:
 - Try to mvn clean package -P scala

Actual:
 - 
{code:java}
[ERROR] COMPILATION ERROR : 
[INFO] -
[ERROR] 
/apache-ignite-2.8.0-bin/examples/src/main/spark/org/apache/ignite/examples/ml/mleap/MLeapModelParserExample.java:[34,34]
 package org.apache.ignite.ml.mleap does not exist
[ERROR] 
/apache-ignite-2.8.0-bin/examples/src/main/spark/org/apache/ignite/examples/ml/mleap/MLeapModelParserExample.java:[45,26]
 cannot find symbol
  symbol:   class MLeapModelParser
  location: class org.apache.ignite.examples.ml.mleap.MLeapModelParserExample
[ERROR] 
/apache-ignite-2.8.0-bin/examples/src/main/spark/org/apache/ignite/examples/ml/mleap/MLeapModelParserExample.java:[45,56]
 cannot find symbol
  symbol:   class MLeapModelParser
  location: class org.apache.ignite.examples.ml.mleap.MLeapModelParserExample
{code}
 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


[jira] [Created] (IGNITE-12587) ML examples failed on start

2020-01-28 Thread Stepan Pilschikov (Jira)
Stepan Pilschikov created IGNITE-12587:
--

 Summary: ML examples failed on start
 Key: IGNITE-12587
 URL: https://issues.apache.org/jira/browse/IGNITE-12587
 Project: Ignite
  Issue Type: Bug
  Components: ml
Affects Versions: 2.8
 Environment: Java 8

Linux/Win
Reporter: Stepan Pilschikov


New release build comes with lost data sets for ML 2.8

Steps:
- Try to run any ML examples used MLSandboxDatasets 
(org.apache.ignite.examples.ml.environment.TrainingWithCustomPreprocessorsExample
 for examples)

Actual:
- FileNotFoundException
{code}
Exception in thread "main" java.io.FileNotFoundException: 
modules/ml/src/main/resources/datasets/boston_housing_dataset.txt
at 
org.apache.ignite.ml.util.SandboxMLCache.fillCacheWith(SandboxMLCache.java:119)
at 
org.apache.ignite.examples.ml.environment.TrainingWithCustomPreprocessorsExample.main(TrainingWithCustomPreprocessorsExample.java:62)
{code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)


Re: AWS EBS Discovery: Contributor Wanted

2020-01-28 Thread Sergey Chugunov
Denis, Emmanouil,

Sure, I'll take a look at the code shortly.

--
Thank you,
Sergey.

On Mon, Jan 27, 2020 at 8:59 PM Denis Magda  wrote:

> I support the idea of triggering such tests on demand. We can create a wiki
> page with instructions on how to run the tests. Unless there is a more
> elegant solution.
>
> Sergey, would you be able to review Emmanouil's changes in the IP Finder
> source code?
> https://issues.apache.org/jira/browse/IGNITE-8617
>
> -
> Denis
>
>
> On Sun, Jan 26, 2020 at 2:22 AM Emmanouil Gkatziouras <
> gkatzio...@gmail.com>
> wrote:
>
> > Hi all!
> >
> > I do believe being able to execute some AWS integration tests on demand
> > would be of value, especially for reviewers who cannot have an AWS stack
> > created on demand.
> > More than happy to help on that.
> >
> > Kind regards
> > *Emmanouil Gkatziouras*
> > https://egkatzioura.com/ |
> > https://www.linkedin.com/in/gkatziourasemmanouil/
> > https://github.com/gkatzioura
> >
> >
> > On Fri, 24 Jan 2020 at 15:15, Sergey Chugunov  >
> > wrote:
> >
> > > Hello Emmanouil,
> > >
> > > It would be great if we have at least basic integration tests in real
> AWS
> > > environment. Even though they may require more work to keep them green
> (I
> > > mean here AWS quotas and additional configuration/reconfiguration
> > efforts)
> > > it worth it because these tests can also be useful as an examples.
> > >
> > > As the same time as IpFinder is such a basic component I don't think we
> > > need to include them in constantly triggered suites like Run All but to
> > > trigger them manually before/right after merging them to master branch
> or
> > > when developing something in related code.
> > >
> > > What do you think?
> > >
> > > --
> > > Thank you,
> > > Sergey Chugunov.
> > >
> > > On Thu, Jan 23, 2020 at 5:32 PM Emmanouil Gkatziouras <
> > > gkatzio...@gmail.com>
> > > wrote:
> > >
> > > > Hi all!
> > > >
> > > > Yes It seems possible to get some free quota for integration tests on
> > AWS
> > > > [1] however most probably they are not gonna last forever.
> > > >
> > > > [1]
> > > >
> > > >
> > >
> >
> https://aws.amazon.com/blogs/opensource/aws-promotional-credits-open-source-projects/
> > > >
> > > > King Regards
> > > > *Emmanouil Gkatziouras*
> > > > https://egkatzioura.com/ |
> > > > https://www.linkedin.com/in/gkatziourasemmanouil/
> > > > https://github.com/gkatzioura
> > > >
> > > >
> > > > On Wed, 22 Jan 2020 at 16:48, Denis Magda  wrote:
> > > >
> > > > > Hi Emmanouil,
> > > > >
> > > > > Thanks for preparing a pull-request for Application Load Balancer:
> > > > > https://issues.apache.org/jira/browse/IGNITE-8617
> > > > >
> > > > > Igniters, who is willing to step in as a primary reviewer?
> > > > >
> > > > > As for automated testing on AWS, are you aware of any sponsorship
> > > program
> > > > > of AWS for open source projects of our kind? It will be ideal to
> have
> > > > real
> > > > > testing on AWS but someone needs to pay.
> > > > >
> > > > > -
> > > > > Denis
> > > > >
> > > > >
> > > > > On Sun, Jan 19, 2020 at 6:45 AM Emmanouil Gkatziouras <
> > > > > gkatzio...@gmail.com>
> > > > > wrote:
> > > > >
> > > > > > Hi all!
> > > > > >
> > > > > > I have spinned up an Application Load Balancer and an autoscaling
> > > group
> > > > > on
> > > > > > AWS and the Ignite discovery using TcpDiscoveryAlbIpFinder works
> as
> > > > > > expected.
> > > > > >
> > > > > >- On startup nodes discover each other.
> > > > > >- On ec2 node down, connection is lost and the cluster
> > decreases.
> > > > > >- On an extra node addition the cluster size increases
> > > > > >
> > > > > > This contribution is essential since the Previous ELB based
> > discovery
> > > > > uses
> > > > > > the Classic Load Balancer which is still available however
> > > > > > AWS advices users to use the Application one. [1]
> > > > > > While my pull request gets reviewed I will also have a look at
> > > > > > the IGNITE-12398 [2] issue which has to do with the S3 discovery.
> > > > > > Another idea would also be to implement a `TCP Load Balancer
> based`
> > > > > > discovery.
> > > > > >
> > > > > > In order to test this issue and future ones I implemented some
> > > > terraform
> > > > > > scripts (which I shall use for other issues too) [3].
> > > > > > If some automated e2e testing on AWS is being considered they
> might
> > > be
> > > > of
> > > > > > value.
> > > > > > I can help on implementing those tests by provisioning the
> > > > infrastructure
> > > > > > in an automated way and validate the discovery.
> > > > > >
> > > > > > [1]
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
> https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/migrate-to-application-load-balancer.html
> > > > > > [2] https://issues.apache.org/jira/browse/IGNITE-12398
> > > > > > [3] https://github.com/gkatzioura/ignite-aws-deploy
> > > > > >
> > > > > > Kind regards,
> > > > > > *Emmanouil Gkatziouras*
> > > > > > https://egkatzioura.com/ |
> > >