Re: [VOTE] Define Apache Ignite as a Distributed Database

2020-11-23 Thread Pavel Tupitsyn
+1

On Tue, Nov 24, 2020 at 3:25 AM Saikat Maitra 
wrote:

> +1
>
> On Mon, Nov 23, 2020 at 4:55 PM Valentin Kulichenko <
> valentin.kuliche...@gmail.com> wrote:
>
> > +1
> >
> > On Mon, Nov 23, 2020 at 2:44 PM Denis Magda  wrote:
> >
> > > Igniters,
> > >
> > > With this vote, I'd like to formally wrap up our discussion on defining
> > > Ignite as a "distributed database" instead of an "in-memory computing"
> > > platform. See the following discussion for the rationale and context:
> > >
> > >
> >
> http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Renaming-Ignite-s-product-category-td49246.html
> > >
> > > If the vote passes, the website will define Ignite as "a distributed
> > > database for in-memory speed at petabyte scale" to underscore our
> > in-memory
> > > origins (and the primary reason why the project is selected) but not
> > > diminishing our persistence capabilities. All prominent use cases such
> as
> > > caching, high-performance computing, etc. will remain visible on the
> > > website. There is nothing wrong if a distributed database is used as a
> > > cache or high-performance compute cluster; it's up to an application
> > > developer to decide.
> > >
> > > Overall, please cast your vote for defining Ignite as a "distributed
> > > database":
> > > +1 - support the change
> > > -1 - disagree with the change, explain why
> > > 0 - neutral
> > >
> > > This is a majority vote that is open for the next 7 days and to be
> closed
> > > on Monday, Nov 30th:
> > > https://www.timeanddate.com/countdown/to?year=2020=11=30
> > >
> > > -
> > > Denis
> > >
> >
>


[jira] [Created] (IGNITE-13746) Document partition-aware data loading

2020-11-23 Thread Pavel Tupitsyn (Jira)
Pavel Tupitsyn created IGNITE-13746:
---

 Summary: Document partition-aware data loading
 Key: IGNITE-13746
 URL: https://issues.apache.org/jira/browse/IGNITE-13746
 Project: Ignite
  Issue Type: Improvement
  Components: documentation
Reporter: Pavel Tupitsyn
Assignee: Denis A. Magda


Document the fact that CacheStore.loadCache discards non-primary entries, and 
how to deal with that properly. Old documentation has this section:
https://apacheignite.readme.io/docs/data-loading#partition-aware-data-loading

And a callout:
{code}
In case of partitioned caches and 3rd party persistence such as a relational 
database, keys that are not mapped to this node, either as primary or backups, 
will be automatically discarded.

This is not relevant for Ignite Persistent Store where every node stores only 
that data for which the node is either a primary or backup.
{code}

Additionally, it would be great to mention non-primary entries being discarded 
in CacheStore Javadoc (and .NET XMLDoc):
* 
https://github.com/apache/ignite/blob/master/modules/core/src/main/java/org/apache/ignite/cache/store/CacheStore.java
* 
https://github.com/apache/ignite/blob/master/modules/platforms/dotnet/Apache.Ignite.Core/Cache/Store/ICacheStore.cs



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


Re: [DISCUSS] Ignite 3.0 development approach

2020-11-23 Thread Valentin Kulichenko
Folks,

I went ahead and created the repository [1]. I also configured a TeamCity
project [2] that runs all available JUnit tests on every PR creation or
update. It also sends the status update to GitHub so that it's reflected in
the PR itself so that we can do merges directly from GitHub. Basic steps to
make a change are described on the Wiki page [3].

Let me know if you have any questions.

[1] https://github.com/apache/ignite-3
[2] https://ci.ignite.apache.org/project/ignite3
[3]
https://cwiki.apache.org/confluence/display/IGNITE/Apache+Ignite+3.0#ApacheIgnite3.0-DevelopmentProcess

-Val

On Wed, Nov 18, 2020 at 4:24 PM Valentin Kulichenko <
valentin.kuliche...@gmail.com> wrote:

> Thanks, guys. It looks like we are much closer to the consensus now. I
> totally on board with the plan, but I would also like to address the
> short-term needs. As I've already mentioned earlier, there are several
> active IEPs, but we still don't have even a preliminary technical process
> for working on these IEPs. I believe this might be frustrating for the
> folks who would like to commit code.
>
> The scope we agreed on is quite big, and it will surely take significant
> time to implement all the changes and stabilize them. Therefore, it's clear
> to me that we will have to maintain 2.x and 3.x in parallel for quite some
> time - this needs to be addressed somehow. I'm convinced that having a
> separate repo is the ONLY way to do that, and so far, I haven't heard any
> clear alternatives or reasons why we shouldn't do this.
>
> That said, I'm inclined to proceed with this in the next few days - I will
> create a repo and describe the process (which we, of course, can discuss
> and modify going forward). Let's, at the very least, try and see where it
> leads us.
>
> If someone has any concrete alternative options on how to we can maintain
> two major versions in parallel, let's have another voice discussion this
> Friday. If we do the meeting, we should set it up with a clear goal to make
> a decision. Please let me know if there is interest in this.
>
> -Val
>
> On Mon, Nov 16, 2020 at 6:31 AM Alexey Goncharuk <
> alexey.goncha...@gmail.com> wrote:
>
>> Good,
>>
>> I think we have an intermediate agreement on the scope and significance of
>> the changes we want to make. I suggest creating separate discussion
>> streams
>> and calls for each of the suggested topics so that:
>>
>>- It is clear for the community what is the motivation of the stream
>>(this includes both functional targets and technical debt issues
>> pointed
>>out by Sergey)
>>- Who is planning to take an active part in each of the streams (i.e.
>>the 'design committee', as Sergey suggested)
>>- What are the intermediate and final goals for each of the streams
>>- What are the cross-stream interactions and how we integrate them
>>- How each of the streams will be integrated with the current codebase
>>based on the above (here is where we will see whether drop-in or
>>incremental approaches make more sense)
>>
>


[GitHub] [ignite-3] vkulichenko closed pull request #1: test module

2020-11-23 Thread GitBox


vkulichenko closed pull request #1:
URL: https://github.com/apache/ignite-3/pull/1


   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




[GitHub] [ignite-3] vkulichenko commented on pull request #1: test module

2020-11-23 Thread GitBox


vkulichenko commented on pull request #1:
URL: https://github.com/apache/ignite-3/pull/1#issuecomment-732547333


   Test PR, will close.



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




Re: [VOTE] Define Apache Ignite as a Distributed Database

2020-11-23 Thread Saikat Maitra
+1

On Mon, Nov 23, 2020 at 4:55 PM Valentin Kulichenko <
valentin.kuliche...@gmail.com> wrote:

> +1
>
> On Mon, Nov 23, 2020 at 2:44 PM Denis Magda  wrote:
>
> > Igniters,
> >
> > With this vote, I'd like to formally wrap up our discussion on defining
> > Ignite as a "distributed database" instead of an "in-memory computing"
> > platform. See the following discussion for the rationale and context:
> >
> >
> http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Renaming-Ignite-s-product-category-td49246.html
> >
> > If the vote passes, the website will define Ignite as "a distributed
> > database for in-memory speed at petabyte scale" to underscore our
> in-memory
> > origins (and the primary reason why the project is selected) but not
> > diminishing our persistence capabilities. All prominent use cases such as
> > caching, high-performance computing, etc. will remain visible on the
> > website. There is nothing wrong if a distributed database is used as a
> > cache or high-performance compute cluster; it's up to an application
> > developer to decide.
> >
> > Overall, please cast your vote for defining Ignite as a "distributed
> > database":
> > +1 - support the change
> > -1 - disagree with the change, explain why
> > 0 - neutral
> >
> > This is a majority vote that is open for the next 7 days and to be closed
> > on Monday, Nov 30th:
> > https://www.timeanddate.com/countdown/to?year=2020=11=30
> >
> > -
> > Denis
> >
>


Re: [VOTE][EXTENSION] Release Apache Ignite Streaming extensions 1.0.0 RC1

2020-11-23 Thread Saikat Maitra
+1

Denis, Alex

I have raised PR for the docs for Maven artifactIds and versions on the
documentation pages of the integrations.

PR :  https://github.com/apache/ignite/pull/8488

Jira : https://issues.apache.org/jira/browse/IGNITE-12951

Please review and share if any further changes are required.

Regards,
Saikat



On Mon, Nov 23, 2020 at 5:50 PM Denis Magda  wrote:

> +1
>
> Alex, could you please update Maven artifactIds and versions on the
> documentation pages of the integrations? Commit to the master and
> cherry-pick to ignite-2.9-docs, and I'll publish the changes to the
> website.
>
> -
> Denis
>
>
> On Mon, Nov 23, 2020 at 10:52 AM Alexey Goncharuk 
> wrote:
>
> > Dear Ignite Community,
> >
> > I have uploaded a release candidate of the following extension modules:
> > ignite-camel-ext
> > ignite-flink-ext
> > ignite-flume-ext
> > ignite-jms11-ext
> > ignite-kafka-ext
> > ignite-mqtt-ext
> > ignite-pub-sub-ext
> > ignite-rocketmq-ext
> > ignite-storm-ext
> > ignite-twitter-ext
> > ignite-zeromq-ext
> >
> > The following staging can be used for testing:
> > https://repository.apache.org/content/repositories/orgapacheignite-1489
> >
> > Tags were created:
> > ignite-camel-ext-1.0.0-rc1
> > ignite-flink-ext-1.0.0-rc1
> > ignite-flume-ext-1.0.0-rc1
> > ignite-jms11-ext-1.0.0-rc1
> > ignite-kafka-ext-1.0.0-rc1
> > ignite-mqtt-ext-1.0.0-rc1
> > ignite-pub-sub-ext-1.0.0-rc1
> > ignite-rocketmq-ext-1.0.0-rc1
> > ignite-storm-ext-1.0.0-rc1
> > ignite-twitter-ext-1.0.0-rc1
> > ignite-zeromq-ext-1.0.0-rc1
> >
> >
> https://gitbox.apache.org/repos/asf?p=ignite-extensions.git;a=commit;h=3f45b3e32d617b652e08af614a90aad6b9ff945d
> >
> > RELEASE NOTES:
> >
> >
> https://gitbox.apache.org/repos/asf?p=ignite-extensions.git;a=blob;f=RELEASE_NOTES.txt;h=8451780d53af3eea926fbd3235cc535d76888fa9;hb=refs/heads/streaming-all-ext-1.0.0
> >
> > Release 1.0.0 contains the initial state of the modules migrated from the
> > Apache Ignite main repository according to the IEP (includes the list of
> > resolved issues):
> >
> https://cwiki.apache.org/confluence/display/IGNITE/IEP-36%3A+Modularization
> >
> > The vote is formal, see voting guidelines
> > https://www.apache.org/foundation/voting.html
> >
> > +1 - to accept all the Apache Ignite streaming extensions 1.0.0-rc1
> listed
> > in the thread
> > 0 - don't care either way
> > -1 - DO NOT accept either of the Apache Ignite streaming extensions
> > 1.0.0-rc1 (explain why)
> >
> > Given the large list of extensions, the vote will hold for 7 days and
> will
> > end on Monday, November 30th 19:00 UTC:
> >
> >
> https://www.timeanddate.com/countdown/generic?iso=20201130T22=166=cursive=1
> >
>


[GitHub] [ignite-3] vkulichenko opened a new pull request #1: test module

2020-11-23 Thread GitBox


vkulichenko opened a new pull request #1:
URL: https://github.com/apache/ignite-3/pull/1


   



This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org




Re: IEP-54: Schema-first approach for 3.0

2020-11-23 Thread Denis Magda
Andrey, thanks for the update,

Does any of the serializers take into consideration the
native-image-generation feature of GraalVM?
https://www.graalvm.org/reference-manual/native-image/

With the current binary marshaller, we can't even generate a native image
for the code using our thin client APIs.

-
Denis


On Mon, Nov 23, 2020 at 4:39 AM Andrey Mashenkov 
wrote:

> Hi Igniters,
>
> I'd like to continue discussion of IEP-54 (Schema-first approach).
>
> Hope everyone who is interested had a chance to get familiar with the
> proposal [1].
> Please, do not hesitate to ask questions and share your ideas.
>
> I've prepared a prototype of serializer [2] for the data layout described
> in the proposal.
> In prototy, I compared 2 approaches to (de)serialize objects, the first one
> uses java reflection/unsafe API and similar to one we already use in Ignite
> and the second one generates serializer for particular user class and uses
> Janino library for compilation.
> Second one shows better results in benchmarks.
> I think we can go with it as default serializer and have reflection-based
> implementation as a fallback if someone will have issues with the first
> one.
> WDYT?
>
> There are a number of tasks under the umbrella ticket [3] waiting for the
> assignee.
>
> BTW, I'm going to create more tickets for schema manager modes
> implementation, but would like to clarify some details.
>
> I thought schemaManager on each node should held:
>   1. Local mapping of "schema version" <--> validated local key/value
> classes pair.
>   2. Cluster-wide schema changes history.
> On the client side. Before any key-value API operation we should validate a
> schema for a given key-value pair.
> If there is no local-mapping exists for a given key-value pair or if a
> cluster wide schema has a more recent version then the key-value pair
> should be validated against the latest version and local mapping should be
> updated/actualized.
> If an object doesn't fit to the latest schema then it depends on schema
> mode: either fail the operation ('strict' mode) or a new mapping should be
> created and a new schema version should be propagated to the cluster.
>
> On the server side we usually have no key-value classes and we operate with
> tuples.
> As schema change history is available and a tuple has schema version, then
> it is possible to upgrade any received tuple to the last version without
> desialization.
> Thus we could allow nodes to send key-value pairs of previous versions (if
> they didn't receive a schema update yet) without reverting schema changes
> made by a node with newer classes.
>
> Alex, Val, Ivan did you mean the same?
>
>
> [1]
>
> https://cwiki.apache.org/confluence/display/IGNITE/IEP-54%3A+Schema-first+Approach
> [2] https://github.com/apache/ignite/tree/ignite-13618/modules/commons
> [3] https://issues.apache.org/jira/browse/IGNITE-13616
>
> On Thu, Sep 17, 2020 at 9:21 AM Ivan Pavlukhin 
> wrote:
>
> > Folks,
> >
> > Please do not ignore history. We had a thread [1] with many bright
> > ideas. We can resume it.
> >
> > [1]
> >
> http://apache-ignite-developers.2346864.n4.nabble.com/Applicability-of-term-cache-to-Apache-Ignite-td36541.html
> >
> > 2020-09-10 0:08 GMT+03:00, Denis Magda :
> > > Val, makes sense, thanks for explaining.
> > >
> > > Agree that we need to have a separate discussion thread for the "table"
> > and
> > > "cache" terms substitution. I'll appreciate it if you start the thread
> > > sharing pointers to any relevant IEPs and reasoning behind the
> suggested
> > > change.
> > >
> > > -
> > > Denis
> > >
> > >
> > > On Tue, Sep 8, 2020 at 6:01 PM Valentin Kulichenko <
> > > valentin.kuliche...@gmail.com> wrote:
> > >
> > >> Hi Denis,
> > >>
> > >> I guess the wording in the IEP is a little bit confusing. All it means
> > is
> > >> that you should not create nested POJOs, but rather inline fields
> into a
> > >> single POJO that is mapped to a particular schema. In other words,
> > nested
> > >> POJOs are not supported.
> > >>
> > >> Alex, is this correct? Please let me know if I'm missing something.
> > >>
> > >> As for the "cache" term, I agree that it is outdated, but I'm not sure
> > >> what we can replace it with. "Table" is tightly associated with SQL,
> but
> > >> SQL is optional in our case. Do you want to create a separate
> discussion
> > >> about this?
> > >>
> > >> -Val
> > >>
> > >> On Tue, Sep 8, 2020 at 4:37 PM Denis Magda  wrote:
> > >>
> > >>> Val,
> > >>>
> > >>> I've checked the IEP again and have a few questions.
> > >>>
> > >>> Arbitrary nested objects and collections are not allowed as column
> > >>> values.
> > >>> > Nested POJOs should either be inlined into schema, or stored as
> BLOBs
> > >>>
> > >>>
> > >>> Could you provide a DDL code snippet showing how the inlining of
> POJOs
> > >>> is
> > >>> supposed to work?
> > >>>
> > >>> Also, we keep using the terms "cache" and "table" throughout the IEP.
> > Is
> > >>> it
> > >>> the right time to discuss an 

Re: [VOTE][EXTENSION] Release Apache Ignite Streaming extensions 1.0.0 RC1

2020-11-23 Thread Denis Magda
+1

Alex, could you please update Maven artifactIds and versions on the
documentation pages of the integrations? Commit to the master and
cherry-pick to ignite-2.9-docs, and I'll publish the changes to the website.

-
Denis


On Mon, Nov 23, 2020 at 10:52 AM Alexey Goncharuk 
wrote:

> Dear Ignite Community,
>
> I have uploaded a release candidate of the following extension modules:
> ignite-camel-ext
> ignite-flink-ext
> ignite-flume-ext
> ignite-jms11-ext
> ignite-kafka-ext
> ignite-mqtt-ext
> ignite-pub-sub-ext
> ignite-rocketmq-ext
> ignite-storm-ext
> ignite-twitter-ext
> ignite-zeromq-ext
>
> The following staging can be used for testing:
> https://repository.apache.org/content/repositories/orgapacheignite-1489
>
> Tags were created:
> ignite-camel-ext-1.0.0-rc1
> ignite-flink-ext-1.0.0-rc1
> ignite-flume-ext-1.0.0-rc1
> ignite-jms11-ext-1.0.0-rc1
> ignite-kafka-ext-1.0.0-rc1
> ignite-mqtt-ext-1.0.0-rc1
> ignite-pub-sub-ext-1.0.0-rc1
> ignite-rocketmq-ext-1.0.0-rc1
> ignite-storm-ext-1.0.0-rc1
> ignite-twitter-ext-1.0.0-rc1
> ignite-zeromq-ext-1.0.0-rc1
>
> https://gitbox.apache.org/repos/asf?p=ignite-extensions.git;a=commit;h=3f45b3e32d617b652e08af614a90aad6b9ff945d
>
> RELEASE NOTES:
>
> https://gitbox.apache.org/repos/asf?p=ignite-extensions.git;a=blob;f=RELEASE_NOTES.txt;h=8451780d53af3eea926fbd3235cc535d76888fa9;hb=refs/heads/streaming-all-ext-1.0.0
>
> Release 1.0.0 contains the initial state of the modules migrated from the
> Apache Ignite main repository according to the IEP (includes the list of
> resolved issues):
> https://cwiki.apache.org/confluence/display/IGNITE/IEP-36%3A+Modularization
>
> The vote is formal, see voting guidelines
> https://www.apache.org/foundation/voting.html
>
> +1 - to accept all the Apache Ignite streaming extensions 1.0.0-rc1 listed
> in the thread
> 0 - don't care either way
> -1 - DO NOT accept either of the Apache Ignite streaming extensions
> 1.0.0-rc1 (explain why)
>
> Given the large list of extensions, the vote will hold for 7 days and will
> end on Monday, November 30th 19:00 UTC:
>
> https://www.timeanddate.com/countdown/generic?iso=20201130T22=166=cursive=1
>


Re: [VOTE] Define Apache Ignite as a Distributed Database

2020-11-23 Thread Valentin Kulichenko
+1

On Mon, Nov 23, 2020 at 2:44 PM Denis Magda  wrote:

> Igniters,
>
> With this vote, I'd like to formally wrap up our discussion on defining
> Ignite as a "distributed database" instead of an "in-memory computing"
> platform. See the following discussion for the rationale and context:
>
> http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Renaming-Ignite-s-product-category-td49246.html
>
> If the vote passes, the website will define Ignite as "a distributed
> database for in-memory speed at petabyte scale" to underscore our in-memory
> origins (and the primary reason why the project is selected) but not
> diminishing our persistence capabilities. All prominent use cases such as
> caching, high-performance computing, etc. will remain visible on the
> website. There is nothing wrong if a distributed database is used as a
> cache or high-performance compute cluster; it's up to an application
> developer to decide.
>
> Overall, please cast your vote for defining Ignite as a "distributed
> database":
> +1 - support the change
> -1 - disagree with the change, explain why
> 0 - neutral
>
> This is a majority vote that is open for the next 7 days and to be closed
> on Monday, Nov 30th:
> https://www.timeanddate.com/countdown/to?year=2020=11=30
>
> -
> Denis
>


[VOTE] Define Apache Ignite as a Distributed Database

2020-11-23 Thread Denis Magda
Igniters,

With this vote, I'd like to formally wrap up our discussion on defining
Ignite as a "distributed database" instead of an "in-memory computing"
platform. See the following discussion for the rationale and context:
http://apache-ignite-developers.2346864.n4.nabble.com/DISCUSSION-Renaming-Ignite-s-product-category-td49246.html

If the vote passes, the website will define Ignite as "a distributed
database for in-memory speed at petabyte scale" to underscore our in-memory
origins (and the primary reason why the project is selected) but not
diminishing our persistence capabilities. All prominent use cases such as
caching, high-performance computing, etc. will remain visible on the
website. There is nothing wrong if a distributed database is used as a
cache or high-performance compute cluster; it's up to an application
developer to decide.

Overall, please cast your vote for defining Ignite as a "distributed
database":
+1 - support the change
-1 - disagree with the change, explain why
0 - neutral

This is a majority vote that is open for the next 7 days and to be closed
on Monday, Nov 30th:
https://www.timeanddate.com/countdown/to?year=2020=11=30

-
Denis


[VOTE][EXTENSION] Release Apache Ignite Streaming extensions 1.0.0 RC1

2020-11-23 Thread Alexey Goncharuk
Dear Ignite Community,

I have uploaded a release candidate of the following extension modules:
ignite-camel-ext
ignite-flink-ext
ignite-flume-ext
ignite-jms11-ext
ignite-kafka-ext
ignite-mqtt-ext
ignite-pub-sub-ext
ignite-rocketmq-ext
ignite-storm-ext
ignite-twitter-ext
ignite-zeromq-ext

The following staging can be used for testing:
https://repository.apache.org/content/repositories/orgapacheignite-1489

Tags were created:
ignite-camel-ext-1.0.0-rc1
ignite-flink-ext-1.0.0-rc1
ignite-flume-ext-1.0.0-rc1
ignite-jms11-ext-1.0.0-rc1
ignite-kafka-ext-1.0.0-rc1
ignite-mqtt-ext-1.0.0-rc1
ignite-pub-sub-ext-1.0.0-rc1
ignite-rocketmq-ext-1.0.0-rc1
ignite-storm-ext-1.0.0-rc1
ignite-twitter-ext-1.0.0-rc1
ignite-zeromq-ext-1.0.0-rc1
https://gitbox.apache.org/repos/asf?p=ignite-extensions.git;a=commit;h=3f45b3e32d617b652e08af614a90aad6b9ff945d

RELEASE NOTES:
https://gitbox.apache.org/repos/asf?p=ignite-extensions.git;a=blob;f=RELEASE_NOTES.txt;h=8451780d53af3eea926fbd3235cc535d76888fa9;hb=refs/heads/streaming-all-ext-1.0.0

Release 1.0.0 contains the initial state of the modules migrated from the
Apache Ignite main repository according to the IEP (includes the list of
resolved issues):
https://cwiki.apache.org/confluence/display/IGNITE/IEP-36%3A+Modularization

The vote is formal, see voting guidelines
https://www.apache.org/foundation/voting.html

+1 - to accept all the Apache Ignite streaming extensions 1.0.0-rc1 listed
in the thread
0 - don't care either way
-1 - DO NOT accept either of the Apache Ignite streaming extensions
1.0.0-rc1 (explain why)

Given the large list of extensions, the vote will hold for 7 days and will
end on Monday, November 30th 19:00 UTC:
https://www.timeanddate.com/countdown/generic?iso=20201130T22=166=cursive=1


Re: Hello [ New to apache ignite]

2020-11-23 Thread Denis Magda
Hello Amit,

Welcome to the community! Glad to see you are ready to contribute to Ignite.

Please check the "Code Contributions" and "Contributing to Ignite Core"
sections on this page: https://ignite.apache.org/community/contribute.html
We put and grouped together some tasks that you might be interested in.

Also, if you haven't used Ignite before, try to launch and build the first
applications becoming familiar with the capabilities of the project:
https://ignite.apache.org/docs/latest/quick-start/java

Send us any questions you might have.

-
Denis


On Sun, Nov 22, 2020 at 4:07 AM Amit Chavan  wrote:

> Hello everyone,
>
> My name is Amit Chavan. I found the community after I watched [Live coding
> distributed system in java] on youtube. A little bit about myself. I have
> over 10 years of development experience in ad-tech industry. Recently I
> joined the AWS S3 team in the user security space based on VA. I am
> interested in writing protocol servers, distributed systems and database.
> Outside of work I contribute to some open-source projects such as Armeria
> and herddb. I can start anywhere on the project where help is needed. I can
> pick up some newbie issues to familiarize myself. My jira-id is
> achav...@gmail.com. I look forward to working with everyone.
>
> Thanks,
> Amit
>


Re: IEP-54: Schema-first approach for 3.0

2020-11-23 Thread Andrey Mashenkov
Hi Igniters,

I'd like to continue discussion of IEP-54 (Schema-first approach).

Hope everyone who is interested had a chance to get familiar with the
proposal [1].
Please, do not hesitate to ask questions and share your ideas.

I've prepared a prototype of serializer [2] for the data layout described
in the proposal.
In prototy, I compared 2 approaches to (de)serialize objects, the first one
uses java reflection/unsafe API and similar to one we already use in Ignite
and the second one generates serializer for particular user class and uses
Janino library for compilation.
Second one shows better results in benchmarks.
I think we can go with it as default serializer and have reflection-based
implementation as a fallback if someone will have issues with the first one.
WDYT?

There are a number of tasks under the umbrella ticket [3] waiting for the
assignee.

BTW, I'm going to create more tickets for schema manager modes
implementation, but would like to clarify some details.

I thought schemaManager on each node should held:
  1. Local mapping of "schema version" <--> validated local key/value
classes pair.
  2. Cluster-wide schema changes history.
On the client side. Before any key-value API operation we should validate a
schema for a given key-value pair.
If there is no local-mapping exists for a given key-value pair or if a
cluster wide schema has a more recent version then the key-value pair
should be validated against the latest version and local mapping should be
updated/actualized.
If an object doesn't fit to the latest schema then it depends on schema
mode: either fail the operation ('strict' mode) or a new mapping should be
created and a new schema version should be propagated to the cluster.

On the server side we usually have no key-value classes and we operate with
tuples.
As schema change history is available and a tuple has schema version, then
it is possible to upgrade any received tuple to the last version without
desialization.
Thus we could allow nodes to send key-value pairs of previous versions (if
they didn't receive a schema update yet) without reverting schema changes
made by a node with newer classes.

Alex, Val, Ivan did you mean the same?


[1]
https://cwiki.apache.org/confluence/display/IGNITE/IEP-54%3A+Schema-first+Approach
[2] https://github.com/apache/ignite/tree/ignite-13618/modules/commons
[3] https://issues.apache.org/jira/browse/IGNITE-13616

On Thu, Sep 17, 2020 at 9:21 AM Ivan Pavlukhin  wrote:

> Folks,
>
> Please do not ignore history. We had a thread [1] with many bright
> ideas. We can resume it.
>
> [1]
> http://apache-ignite-developers.2346864.n4.nabble.com/Applicability-of-term-cache-to-Apache-Ignite-td36541.html
>
> 2020-09-10 0:08 GMT+03:00, Denis Magda :
> > Val, makes sense, thanks for explaining.
> >
> > Agree that we need to have a separate discussion thread for the "table"
> and
> > "cache" terms substitution. I'll appreciate it if you start the thread
> > sharing pointers to any relevant IEPs and reasoning behind the suggested
> > change.
> >
> > -
> > Denis
> >
> >
> > On Tue, Sep 8, 2020 at 6:01 PM Valentin Kulichenko <
> > valentin.kuliche...@gmail.com> wrote:
> >
> >> Hi Denis,
> >>
> >> I guess the wording in the IEP is a little bit confusing. All it means
> is
> >> that you should not create nested POJOs, but rather inline fields into a
> >> single POJO that is mapped to a particular schema. In other words,
> nested
> >> POJOs are not supported.
> >>
> >> Alex, is this correct? Please let me know if I'm missing something.
> >>
> >> As for the "cache" term, I agree that it is outdated, but I'm not sure
> >> what we can replace it with. "Table" is tightly associated with SQL, but
> >> SQL is optional in our case. Do you want to create a separate discussion
> >> about this?
> >>
> >> -Val
> >>
> >> On Tue, Sep 8, 2020 at 4:37 PM Denis Magda  wrote:
> >>
> >>> Val,
> >>>
> >>> I've checked the IEP again and have a few questions.
> >>>
> >>> Arbitrary nested objects and collections are not allowed as column
> >>> values.
> >>> > Nested POJOs should either be inlined into schema, or stored as BLOBs
> >>>
> >>>
> >>> Could you provide a DDL code snippet showing how the inlining of POJOs
> >>> is
> >>> supposed to work?
> >>>
> >>> Also, we keep using the terms "cache" and "table" throughout the IEP.
> Is
> >>> it
> >>> the right time to discuss an alternate name that would replace those
> >>> too?
> >>> Personally, the "table" should stay and the "cache" should go
> >>> considering
> >>> that SQL is one of the primary APIs in Ignite and that DDL is supported
> >>> out-of-the-box.
> >>>
> >>>
> >>> -
> >>> Denis
> >>>
> >>>
> >>> On Mon, Sep 7, 2020 at 12:26 PM Valentin Kulichenko <
> >>> valentin.kuliche...@gmail.com> wrote:
> >>>
> >>> > Ivan,
> >>> >
> >>> > I see your point. I agree that with the automatic updates we step
> into
> >>> the
> >>> > schema-last territory.
> >>> >
> >>> > Actually, if we support automatic evolution, we can as well support
> 

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

2020-11-23 Thread dpavlov . tasks
Hi Igniters,

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

 *New Critical Failure in master Thin client: Node.js 
https://ci.ignite.apache.org/buildConfiguration/IgniteTests24Java8_ThinClientNodeJs?branch=%3Cdefault%3E
 No changes in the build

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

Best Regards,
Apache Ignite TeamCity Bot 
https://github.com/apache/ignite-teamcity-bot
Notification generated at 15:22:39 23-11-2020 


[jira] [Created] (IGNITE-13745) Add release notes for streaming extensions release 1.0.0

2020-11-23 Thread Alexey Goncharuk (Jira)
Alexey Goncharuk created IGNITE-13745:
-

 Summary: Add release notes for streaming extensions release 1.0.0
 Key: IGNITE-13745
 URL: https://issues.apache.org/jira/browse/IGNITE-13745
 Project: Ignite
  Issue Type: Sub-task
Reporter: Alexey Goncharuk






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


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

2020-11-23 Thread dpavlov . tasks
Hi Igniters,

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

 *New Critical Failure in master Thin client: Node.js 
https://ci.ignite.apache.org/buildConfiguration/IgniteTests24Java8_ThinClientNodeJs?branch=%3Cdefault%3E
 No changes in the build

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

Best Regards,
Apache Ignite TeamCity Bot 
https://github.com/apache/ignite-teamcity-bot
Notification generated at 14:52:40 23-11-2020 


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

2020-11-23 Thread dpavlov . tasks
Hi Igniters,

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

 *New Critical Failure in master Thin client: Node.js 
https://ci.ignite.apache.org/buildConfiguration/IgniteTests24Java8_ThinClientNodeJs?branch=%3Cdefault%3E
 No changes in the build

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

Best Regards,
Apache Ignite TeamCity Bot 
https://github.com/apache/ignite-teamcity-bot
Notification generated at 14:37:40 23-11-2020 


Re: IEP-61 Technical discussion

2020-11-23 Thread Alexey Goncharuk
Thanks, Ivan,

Another protocol for group membership worth checking out is RAPID [1] (a
recent one). Not sure though if there are any available implementations for
it already.

[1] https://www.usenix.org/system/files/conference/atc18/atc18-suresh.pdf

пн, 23 нояб. 2020 г. в 10:46, Ivan Daschinsky :

> Also, here is some interesting reading about gossip, SWIM etc.
>
> 1 --
> http://www.cs.cornell.edu/Info/Projects/Spinglass/public_pdfs/SWIM.pdf
> 2 --
> http://www.antonkharenko.com/2015/09/swim-distributed-group-membership.html
> 3 -- https://github.com/hashicorp/memberlist (Foundation library of
> hashicorp serf)
> 4 -- https://github.com/scalecube/scalecube-cluster -- (Java
> implementation
> of SWIM)
>
> чт, 19 нояб. 2020 г. в 16:35, Ivan Daschinsky :
>
> > >> Friday, Nov 27th work for you? If ok, let's have an open call then.
> > Yes, great
> > >> As for the protocol port - we will not be dealing with the
> > concurrency...
> > >>Judging by the Rust port, it seems fairly straightforward.
> > Yes, they chose split transport and logic. But original Go package from
> > etcd (see raft/node.go) contains some  heartbeats mechanism etc.
> > I agree with you, this seems not to be a huge deal to port.
> >
> > чт, 19 нояб. 2020 г. в 16:13, Alexey Goncharuk <
> alexey.goncha...@gmail.com
> > >:
> >
> >> Ivan,
> >>
> >> Agree, let's have a call to discuss the IEP. I have some more thoughts
> >> regarding how the replication infrastructure works with
> >> atomic/transactional caches, will put this info to the IEP. Does next
> >> Friday, Nov 27th work for you? If ok, let's have an open call then.
> >>
> >> As for the protocol port - we will not be dealing with the concurrency
> >> model if we choose this way, this is what I like about their code
> >> structure. Essentially, the raft module is a single-threaded automata
> >> which
> >> has a callback to process a message, process a tick (timeout) and
> produces
> >> messages that should be sent and log entries that should be persisted.
> >> Judging by the Rust port, it seems fairly straightforward. Will be happy
> >> to
> >> discuss this and other alternatives on the call as well.
> >>
> >> чт, 19 нояб. 2020 г. в 14:41, Ivan Daschinsky :
> >>
> >> > > Any existing library that can be used to avoid re-implementing the
> >> > protocol ourselves? Perhaps, porting the existing implementation to
> Java
> >> > Personally, I like this idea. Go libraries (either raft module of etcd
> >> or
> >> > serf by Hashicorp) are famous for clean code, good design, stability,
> >> not
> >> > enormous size.
> >> > But, on other side, Go has different model for concurrency and porting
> >> > probably will not be so straightforward.
> >> >
> >> >
> >> >
> >> > чт, 19 нояб. 2020 г. в 13:48, Ivan Daschinsky :
> >> >
> >> > > I'd suggest to discuss this IEP and technical details in open ZOOM
> >> > > meeting.
> >> > >
> >> > > чт, 19 нояб. 2020 г. в 13:47, Ivan Daschinsky  >:
> >> > >
> >> > >>
> >> > >>
> >> > >> -- Forwarded message -
> >> > >> От: Ivan Daschinsky 
> >> > >> Date: чт, 19 нояб. 2020 г. в 13:02
> >> > >> Subject: Re: IEP-61 Technical discussion
> >> > >> To: Alexey Goncharuk 
> >> > >>
> >> > >>
> >> > >> Alexey, let's arise another question. Specifically, how nodes
> >> initially
> >> > >> find each other (discovery) and how they detect failures.
> >> > >>
> >> > >> I suppose, that gossip protocol is an ideal candidate. For example,
> >> > >> consul [1] uses this approach, using serf [2] library to discover
> >> > members
> >> > >> of cluster.
> >> > >> Then consul forms raft ensemble (server nodes) and client use raft
> >> > >> ensemble only as lock service.
> >> > >>
> >> > >> PacificA suggests internal heartbeats mechanism for failure
> >> detection of
> >> > >> replicated group, but it says nothing about initial discovery of
> >> nodes.
> >> > >>
> >> > >> WDYT?
> >> > >>
> >> > >> [1] -- https://www.consul.io/docs/architecture/gossip
> >> > >> [2] -- https://www.serf.io/
> >> > >>
> >> > >> чт, 19 нояб. 2020 г. в 12:46, Alexey Goncharuk <
> >> > >> alexey.goncha...@gmail.com>:
> >> > >>
> >> > >>> Following up the Ignite 3.0 scope/development approach threads,
> >> this is
> >> > >>> a separate thread to discuss technical aspects of the IEP.
> >> > >>>
> >> > >>> Let's reiterate one more time on the questions raised by Ivan and
> >> also
> >> > >>> see if there are any other thoughts on the IEP:
> >> > >>>
> >> > >>>- *Whether to deploy metastorage on a separate subset of the
> >> nodes
> >> > >>>or allow Ignite to choose these nodes automatically.* I think
> it
> >> is
> >> > >>>feasible to maintain both modes: by default, Ignite will choose
> >> > >>>metastorage nodes automatically which essentially will provide
> >> the
> >> > same
> >> > >>>seamless user experience as TCP discovery SPI - no separate
> >> roles,
> >> > >>>simplistic deployment. For deployments where people want to
> have
> >> > more
> >> > >>>fine-grained 

Re: Hello [ New to apache ignite]

2020-11-23 Thread Ilya Kasnacheev
Hello!

It seems that you were already assigned a Contributor role. Please try
assigning tickets to yourself.

Please read
https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute
https://cwiki.apache.org/confluence/display/IGNITE/Coding+Guidelines

and familiarize yourself with https://mtcga.gridgain.com/ bot.

Regards,
-- 
Ilya Kasnacheev


вс, 22 нояб. 2020 г. в 15:08, Amit Chavan :

> Hello everyone,
>
> My name is Amit Chavan. I found the community after I watched [Live coding
> distributed system in java] on youtube. A little bit about myself. I have
> over 10 years of development experience in ad-tech industry. Recently I
> joined the AWS S3 team in the user security space based on VA. I am
> interested in writing protocol servers, distributed systems and database.
> Outside of work I contribute to some open-source projects such as Armeria
> and herddb. I can start anywhere on the project where help is needed. I can
> pick up some newbie issues to familiarize myself. My jira-id is
> achav...@gmail.com. I look forward to working with everyone.
>
> Thanks,
> Amit
>


[jira] [Created] (IGNITE-13744) Use Table spool for IgniteNestedLoopJoin

2020-11-23 Thread Taras Ledkov (Jira)
Taras Ledkov created IGNITE-13744:
-

 Summary: Use Table spool for IgniteNestedLoopJoin
 Key: IGNITE-13744
 URL: https://issues.apache.org/jira/browse/IGNITE-13744
 Project: Ignite
  Issue Type: Bug
  Components: sql
Reporter: Taras Ledkov
Assignee: Taras Ledkov


Now {{NestedLoopJoinNode}} uses internal buffer to save all rows of the right 
input.
We have to do refactoring {{IgniteNestedLoopJoin}} to use rewind of the right 
input and use TableSpool for not rewindable inputs.

This refactoring separates implementation the join logic from materialization 
of the right input if it is needed. In the future we can use disk offload for 
TableSpool etc.



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


[jira] [Created] (IGNITE-13743) Defragmentation JMX API for schedule/cancel/status

2020-11-23 Thread Ivan Bessonov (Jira)
Ivan Bessonov created IGNITE-13743:
--

 Summary: Defragmentation JMX API for schedule/cancel/status
 Key: IGNITE-13743
 URL: https://issues.apache.org/jira/browse/IGNITE-13743
 Project: Ignite
  Issue Type: Sub-task
Reporter: Ivan Bessonov
Assignee: Semyon Danilov






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


Re[2]: [DISCUSS] Page replacement improvement

2020-11-23 Thread Zhenya Stanilovsky


Nikolay, i hope such case ignite users already observed)
I suggest to: put data bigger then available, full scan, get data only for 
available inmem data in loop, check PageReplacement metric, how match 
iterations will bring to zero this metric. 
 
>Hello, Alex.
>
>> Perhaps we can implement a special benchmark for this case with manually 
>> triggered "batch page replacement" using yardstick (but I'm not sure if 
>> ducktape can help here).
>
>I think we should carefully describe the issues with the current approach and 
>then we can choose right tool to benchmark improvements.
>You said:
>
>> we use Random-LRU algorithm … it has many disadvantages and affects 
>> performance very much when replacement is started
>
>Can you list disadvantages of the Random-LRU?
>
>AFAIU the first benchmark should be:
>
>1. Start cluster with persistence and put data bigger then available RAM to it.
>2. Measure performance of the queries that selects one entry from the cache.
>3. Make some queries that will iterate throw all data - `SELECT SUM(x) FROM t` 
>or something similar.
>4. Repeat step 2. in this time performance of random queries should be lower 
>due to the page replacement.
>
>Is this scenario correct?
>
>> 23 нояб. 2020 г., в 09:12, Alex Plehanov < plehanov.a...@gmail.com > 
>> написал(а):
>>
>> Nikolay, Zhenya,
>>
>> Benchmark from IGNITE-13034 is fully synthetic, it makes random puts
>> uniformly. It can be used to compare different page replacement algorithms
>> (random-LRU vs segmented-LRU), but it is totally inapplicable to benchmark
>> batch page replacement.
>> Perhaps we can implement a special benchmark for this case with manually
>> triggered "batch page replacement" using yardstick (but I'm not sure
>> if ducktape can help here).
>>
>>> I understand case you described, but who will pull the switch ? Human,
>> artificial intelligence ?
>> As I described before, we can implement both manual and automatic "batch
>> page replacement" triggering. For automatic triggering, there is no
>> artificial intelligence needed, just several conditions with reasonable
>> thresholds. Automatic triggering also can be disabled by default.
>>
>> пт, 20 нояб. 2020 г. в 13:32, Zhenya Stanilovsky < arzamas...@mail.ru.invalid
>>> :
>>
>>>
>>>
>>>
>>>
>>>
>>>
 Zhenya,

> Alexey, we already have changes that partially fixes this issue [1]
 IGNITE-13086 it's a minor improvement. We still have major problems with
 our page replacement algorithm (slow page selection and non-optimal
 page-fault rate). I think changing from random 5 pages to 7 will make
 things even worse (it's better for page-fault rate, but page selection
>>> will
 be slower).
>>> All this words above need to be proven, i hope. + 1 with Nikolay, we need
>>> correct reproduces or some graphs from 2.9 ver.
>>>

> This approach still not applicable for real life
 Why do you think batch replacement is not applicable for real-life? It can
 be applied for workloads, where some big amount of data periodically used,
 but not very often. For example, when OLAP request over historical data
 raised pages to page-memory, and after such request this data is not
>>> needed
 for a long time. Or when OLTP transactions mostly add new data and process
 recent data but rarely touch historical data. In these cases with the
 current approach, we will enter "page replacement mode" after some period
 of time and never leave it. With batch page replacement there is a chance
 to prevent random-LRU page replacement or postpone it.
>>> I understand case you described, but who will pull the switch ? Human,
>>> artificial intelligence ?
>>> You approach assume some triggering from inner, i don`t like this.
>>>

> But request once more, do you really observe such problems with 2.9 ver
>>> ?
 Any graphs maybe ?
 I don't have production usage feedback after IGNITE-13086, but I doubt
 something changed significantly.
>>>
>>> Lets wait ?:) In any case (Nikolay, Alex) IGNITE-13086 includes yardstik
>>> bench for PR proven, we can use it once more.
>>>
>>> Thanks !


 чт, 19 нояб. 2020 г. в 09:18, Zhenya Stanilovsky <
>>>  arzamas...@mail.ru.invalid
> :

>
> Alexey, we already have changes that partially fixes this issue [1]
> Easy way:
> Looks like we already have converge in page replacement.
> If we change 5 times touch iterator from random lru algo into, for
> example — 7 we will obtain fast improvement from scratch.
>
> » Batch page replacement
> This approach still not applicable for real life if you wan`t to observe
> ugly people for threshold (i.e. 12 h) interval. And, of course, you
> understand that dramatically reduce of such interval gives nothing?
>
> » Change the page replacement algorithm.
> That`s way i vote for ) But request once more, do you really observe
>>> such
> problems with 2.9 ver ? Any