[ignite-3] branch ignite-14647 updated: IGNITE-14647 Describe no-logging native persistence

2021-05-03 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-14647
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/ignite-14647 by this push:
 new 37a1fa7  IGNITE-14647 Describe no-logging native persistence
37a1fa7 is described below

commit 37a1fa71e1b8136137415e3e182d235760f57a70
Author: Alexey Goncharuk 
AuthorDate: Mon May 3 23:46:46 2021 +0300

IGNITE-14647 Describe no-logging native persistence
---
 modules/vault/README.md | 96 +
 1 file changed, 96 insertions(+)

diff --git a/modules/vault/README.md b/modules/vault/README.md
new file mode 100644
index 000..93d961f
--- /dev/null
+++ b/modules/vault/README.md
@@ -0,0 +1,96 @@
+# Apache Ignite Native Persistence (nextgen)
+This document describes the architecture of Apache Ignite 3.x native 
persistence and highlights key differencies 
+compared to the Apache Ignite 2.x native perisitence architecture.
+
+## Replication log as recovery journal 
+Apache Ignite 3.x uses log-based replication protocol (currently, Raft) to 
ensure data consistency on different nodes
+in the cluster. This very same log is used as a logical WAL for local state 
machine recovery. This change allows for
+several optimizations in the page memory persistence mechanics.
+
+This document describes the architecture of the replication log as well as the 
optimized version of the native 
+persistence.
+
+## Replication log
+The Raft log represents a key-value storage for which key is always a 
contiguously growing unbounded integer number.
+In practice, it is sufficient to limit the key by a 64-bit unsigned integer. 
The key range consists of two segments:
+committed entries (the larger part of the log) cannot be changed and are 
immutable, and not-yet-committed entries that 
+can be truncated and be overwritten. The non-committed entries are rarely 
overwritten in practice. Additionally, the 
+Raft log can be compacted: entries with key smaller than lower bound are 
thrown away as they were made durable in the
+state machine and are no longer needed.
+
+The replication log storage is based on WiscKey approach of log-structured 
storages. Multiple Raft group logs can be 
+stored in a single storage, however, it is not neccessary to have a single 
storage for all Raft groups. The storage and
+WAL of Raft log are combined and use immutable append-only segments containing 
log indices and state machine commands.
+Segment header may contain a dictionary to reduce the size of Raft group IDs 
written in the segment. Each log entry 
+contains the log index, Raft group ID and command payload (the payload itself 
also contains the log entry term which 
+is essential to Raft protocol). Schematically, the segment structure can be 
represented as follows:
+
+
+++++-+
+|| Entry 1| Entry 2
| ... |
+++++-+
+| Segment header | Log index | Group ID | Payload | Log index | Group ID | 
Payload | ... |
+++++-+
+
+
+New entries are always written to the end of the segment, even if it is an 
overwrite entry with the log index which
+was already written to the same Raft group. The Raft log maintains an index of 
log entries for each Raft log group
+which is represented as a simple array of entry offsets from the beginning of 
the file. The array is complemented with
+the base index of the first entry in the segment. The in-memory index is 
flushed on disk (checkpointed) only when all
+entries in the segment are committed. Schematically, the index structure may 
be represented as follows:
+
+
+++--+--+-+
+||Group 1 Index |  
  Group 2 Index | ... |
+++--+--+-+
+|  Index header  | Len | Index Base | Offset 1 | Offset 2 | ... | Len | Index 
Base | Offset 1 | Offset 2 | ... | ... | 
+++--+--+-+
+
+
+Upon recovery, the Raft log component reads all log entries from 
non-checkpointed segments and repopulates the in-memory
+index which will be later checkpointed.
+
+## No-logging native persistence
+Given that the Raft log is available as a separate component, we can now see 
how the page memory-based native 
+perisitence uses the external log to avoid any WAL logging for recovery.
+
+Similar to Ignite 2.x native persistence, all data

[ignite-3] branch ignite-14647 created (now c9fa5ec)

2021-04-24 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to branch ignite-14647
in repository https://gitbox.apache.org/repos/asf/ignite-3.git.


  at c9fa5ec  IGNITE-14647 Describe Raft-based rebalance process

This branch includes the following new commits:

 new c9fa5ec  IGNITE-14647 Describe Raft-based rebalance process

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[ignite-3] 01/01: IGNITE-14647 Describe Raft-based rebalance process

2021-04-24 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-14647
in repository https://gitbox.apache.org/repos/asf/ignite-3.git

commit c9fa5ec4dfd62ac9f0c7caa6350c4bcd5051f2e8
Author: Alexey Goncharuk 
AuthorDate: Sat Apr 24 13:11:38 2021 +0300

IGNITE-14647 Describe Raft-based rebalance process
---
 modules/affinity/README.md | 86 ++
 1 file changed, 86 insertions(+)

diff --git a/modules/affinity/README.md b/modules/affinity/README.md
new file mode 100644
index 000..2c2db7c
--- /dev/null
+++ b/modules/affinity/README.md
@@ -0,0 +1,86 @@
+# Partitioning approach
+
+## Hash-based partitioning
+
+## Range-based partitioning
+
+# Data migration (rebalance)
+There is a significant difference between the rebalance approach in Ignite 2.x 
and rebalance approach in Ignite 3.x.
+
+Ignite 2.x implemented rebalance process with updates being applied to the 
storage concurrently with data migration
+process. This results in a complex interaction between the rebalance process 
and data update protocol (the necessity
+to compare key-value versions during data migration, different entry processor 
application paths for cases when 
+rebalance is active and not active, uncertain partition state during recovery, 
etc).
+
+Ignite 3.x relies on common replication infrastructure for data replication 
between nodes, thus the rebalance should
+be handled by means of the replication protocols.
+
+## Raft
+Raft consensus protocol does not have a concept of rebalance. Instead, it 
relies on two underlying mechanisms in order
+to have an ability to catch offline nodes up-to-speed and bootstrap new Raft 
group members: Raft log and Snapshots.
+These mechanisms handle both delta (when a local node has relevant enough 
local state so it can be brought up to speed
+by sending only recent Raft log commands) and full (when a Raft group does not 
have sufficient Raft log to catch up the
+node, so the full state machine snapshot should be sent to the local node) 
rebalance scenarios. The choice between
+snapshot and log-based catch-up is based on Raft log availability, however, 
this logic can be adjusted to a more 
+sophisticated heuristic. The underlying state machine should only provide the 
snapshot functionality. This functionality
+differs for in-memory and persistent tables.
+
+### In-memory tables
+In-memory tables do not save partitions in isolated memory regions. Instead, 
the partition data is written to a shared
+memory pool in order to provide efficient memory utilization (otherwise, an 
assigned memory chunk would remain assigned
+to a partition and would not be eligible for other partitions for reuse). This 
makes it impossible to create partition 
+memory snapshots on phycial level, so we need to maintain a snapshot on tuple 
basis.
+
+At any moment in time at most one in-memory partition snapshot can be 
maintained.
+
+ Alternative 1
+To create an in-memory snapshot, we use an MVCC-like approach with 
copy-on-write technique. The partition tree is 
+extended to support keeping two versions of a tuple for the same key: one is 
the most relevant version, and another one 
+is snapshot version. The snapshot tuple contains snapshot ID additionally to 
the regular tuple data. Snapshot tuples are 
+only available to the snapshot iterator and must be filtered out from regular 
data access paths.  
+
+When a snapshot for an in-memory partition is requested, the partition state 
machine checks that there is no another 
+active snapshot and assigns a new snapshot ID which will be used for 
copy-on-write tuples. When the snapshot iterator
+is traversing a tree, it attempts to read both up-to-date and snapshot version 
of the key. If the snapshot version of 
+the key with the current snapshot ID exists, it must be used in the iterator. 
If the snapshot version of the key with 
+the current snapshot ID does not exist, the up-to-date version of the tuple 
must be used in the iterator.
+
+Each partition state machine update checks if there is a snapshot that is 
being maintained. If there is no active 
+snapshot, the update operation should clean an old snapshot tuple version, if 
any, and do the regular tuple update. If 
+there is an active snapshot, the update operation must first clean an old 
snapshot tuple version, if any. Then, if a 
+snapshot tuple version with the current snapshot ID does not exist, the update 
operation copies the current tuple value
+to the snapshot version, and then completes the update (it does not copy the 
current value if a relevant snapshot 
+version already exists).
+
+When snapshot is no longer needed, an asynchronous process can clean up the 
snapshot versions from the partition.
+
+This approach does not induce any memory overhead when no snapshot is 
maintained, but may require up to 2x of partition
+size under heavy load (because the whole partition may be copied to the 
snapshot versions

[ignite-3] branch gg-33019 deleted (was 01379be)

2021-04-07 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to branch gg-33019
in repository https://gitbox.apache.org/repos/asf/ignite-3.git.


 was 01379be  GG-33019 Introduce ProjectableFilterableTableScan for native 
storage integration

This change permanently discards the following revisions:

 discard 01379be  GG-33019 Introduce ProjectableFilterableTableScan for native 
storage integration


[ignite-3] 01/01: GG-33019 Introduce ProjectableFilterableTableScan for native storage integration

2021-04-07 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch gg-33019
in repository https://gitbox.apache.org/repos/asf/ignite-3.git

commit 01379be2c57335fd08605dbfe8314e3317b03030
Author: Alexey Goncharuk 
AuthorDate: Wed Apr 7 15:08:38 2021 +0300

GG-33019 Introduce ProjectableFilterableTableScan for native storage 
integration
---
 modules/sql/pom.xml| 81 ++
 .../ignite/internal/sql/rel/IgniteTableScan.java   | 36 ++
 .../sql/rel/ProjectableFilterableTableScan.java| 66 ++
 parent/pom.xml | 19 +
 pom.xml|  1 +
 5 files changed, 203 insertions(+)

diff --git a/modules/sql/pom.xml b/modules/sql/pom.xml
new file mode 100644
index 000..d9a245f
--- /dev/null
+++ b/modules/sql/pom.xml
@@ -0,0 +1,81 @@
+
+
+
+
+http://maven.apache.org/POM/4.0.0;
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance;
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd;>
+4.0.0
+
+
+org.apache.ignite
+ignite-parent
+1
+../../parent/pom.xml
+
+
+ignite-sql
+3.0.0-SNAPSHOT
+
+
+
+org.apache.ignite
+ignite-api
+${project.version}
+
+
+
+org.apache.ignite
+ignite-schema
+${project.version}
+
+
+
+org.jetbrains
+annotations
+
+
+
+org.apache.calcite
+calcite-core
+
+
+
+org.apache.calcite
+calcite-babel
+
+
+
+org.apache.calcite
+calcite-linq4j
+
+
+
+
+org.junit.jupiter
+junit-jupiter-engine
+test
+
+
+
+org.junit.jupiter
+junit-jupiter-params
+test
+
+
+
diff --git 
a/modules/sql/src/main/java/org/apache/ignite/internal/sql/rel/IgniteTableScan.java
 
b/modules/sql/src/main/java/org/apache/ignite/internal/sql/rel/IgniteTableScan.java
new file mode 100644
index 000..6609cb0
--- /dev/null
+++ 
b/modules/sql/src/main/java/org/apache/ignite/internal/sql/rel/IgniteTableScan.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.sql.rel;
+
+import java.util.List;
+import org.apache.calcite.rex.RexNode;
+import org.apache.calcite.util.ImmutableBitSet;
+import org.jetbrains.annotations.Nullable;
+
+/**
+ *
+ */
+public class IgniteTableScan extends ProjectableFilterableTableScan {
+public IgniteTableScan(
+@Nullable List proj,
+@Nullable RexNode cond,
+@Nullable ImmutableBitSet reqColumns
+) {
+super(proj, cond, reqColumns);
+}
+}
diff --git 
a/modules/sql/src/main/java/org/apache/ignite/internal/sql/rel/ProjectableFilterableTableScan.java
 
b/modules/sql/src/main/java/org/apache/ignite/internal/sql/rel/ProjectableFilterableTableScan.java
new file mode 100644
index 000..bd876f0
--- /dev/null
+++ 
b/modules/sql/src/main/java/org/apache/ignite/internal/sql/rel/ProjectableFilterableTableScan.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+

[ignite-3] branch gg-33019 created (now 01379be)

2021-04-07 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to branch gg-33019
in repository https://gitbox.apache.org/repos/asf/ignite-3.git.


  at 01379be  GG-33019 Introduce ProjectableFilterableTableScan for native 
storage integration

This branch includes the following new commits:

 new 01379be  GG-33019 Introduce ProjectableFilterableTableScan for native 
storage integration

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[ignite-3] branch ignite-14393 deleted (was f6ac843)

2021-04-07 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to branch ignite-14393
in repository https://gitbox.apache.org/repos/asf/ignite-3.git.


 was f6ac843  Merge branch 'main' of 
https://gitbox.apache.org/repos/asf/ignite-3 into ignite-14393

This change permanently discards the following revisions:

 discard f6ac843  Merge branch 'main' of 
https://gitbox.apache.org/repos/asf/ignite-3 into ignite-14393
 discard 2687266  IGNITE-14393 Components interaction
 discard 558a98b  IGNITE-14393 Get rid of multi-key update for table creation
 discard 0026274  IGNITE-14393 Updated image
 discard 5ba6651  IGNITE-14393 Components interactions workflow draft


[ignite-3] branch main updated: IGNITE-14393 Modules interaction description

2021-04-07 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
 new 4018647  IGNITE-14393 Modules interaction description
4018647 is described below

commit 4018647b9c3522b64e914da71c873c547cbfb0be
Author: Alexey Goncharuk 
AuthorDate: Wed Apr 7 13:21:21 2021 +0300

IGNITE-14393 Modules interaction description
---
 modules/runner/README.md | 166 +++
 1 file changed, 166 insertions(+)

diff --git a/modules/runner/README.md b/modules/runner/README.md
new file mode 100644
index 000..47a1927
--- /dev/null
+++ b/modules/runner/README.md
@@ -0,0 +1,166 @@
+# Ignite cluster & node lifecycle
+This document describes user-level and component-level cluster lifecycles and 
their mutual interaction.
+
+## Node lifecycle
+A node maintains its' local state in the local persistent key-value storage 
named vault. The data stored in the vault is 
+semantically divided in the following categories:
+ * User-level local configuration properties (such as memory limits, network 
timeouts, etc). User-level configuration
+ properties can be written both at runtime (not all properties will be applied 
at runtime, however, - some of them will
+ require a full node restart) and when a node is shut down (in order to be 
able to change properties that prevent node
+ startup for some reason)
+ * System-level private properties (such as computed local statistics, 
node-local commin paths, etc). System-level 
+ private properties are computed locally based on the information available at 
node locally (not based on metastorage 
+ watched values)
+ * System-level distributed metastorage projected properties (such as paths to 
partition files, etc). System-level 
+ projected properties are associated with one or more metastorage properties 
and are computed based on the local node 
+ state and the metastorage properties values. System-level projected 
properties values are semantically bound to a 
+ particular revision of the dependee properties and must be recalculated when 
dependees are changed (see 
+ [reliable watch processing](#reliable-watch-processing)). 
+
+The vault is created during the first node startup and optionally populated 
with the paremeters from the configuration 
+file passed in to the ``ignite node start`` [command](TODO link to CLI 
readme). Only user-level properties can be 
+written via the provided file. 
+
+System-level properties are written to the storage during the first vault 
initialization by the node start process. 
+Projected properties are not initialized during the initial node startup 
because at this point the local node is not 
+aware of the distributed metastorage. The node remains in a 'zombie' state 
until after it learns that there is an 
+initialized metastorage (either via the ``ignite cluster init`` [command](TODO 
link to CLI readme) during the initial 
+cluster initialization) or from the group membershup service via gossip 
(implying that group membership protocol is 
+working at this point).
+
+### Node components startup
+For testability purposes, we require that component dependencies are defined 
upfront and provided at the construction
+time. This additionaly requires that component dependencies form no cycles. 
Therefore, components form an acyclic 
+directed graph that is constructed in topological sort order wrt root. 
+
+Components created and initialized also in an order consistent with a 
topological sort of the components graph. This 
+enforces serveral rules related to the components interaction: 
+ * Since metastorage watches can only be added during the component startup, 
the watch notification order is consistent
+ with the component initialization order. I.e. if a component `B` depdends on 
a component `A`, then `A` receives watch
+ notification prior to `B`.
+ * Dependent component can directly call an API method on a dependee component 
(because it can obtain the dependee 
+ reference during construction). Direct inverse calls are prohibited (this is 
enforced by only acquiring component 
+ references during the components construction). Nevertheless, inverse call 
can be implemented by means of listeners or 
+ callbacks: the dependent component installs a listener to a dependeee, which 
can be later invoked.
+ 
+
+![Components dependency 
graph](http://www.plantuml.com/plantuml/svg/TP7DJiCm48Jl-nHv0KjG_f68oWytuD1Mt9t4AGOdbfoD46-FwiJRYQnUrflPp-jePZsm3ZnsZdprRMekFlNec68jxWiV6XEAX-ASqlpDrzez-xwrUu8Us9Mm7uP_VVYX-GJcGfYDRfaE1QQNCdqth0VsGUyDGG_ibR0lTk1Wgv5DC_zVfi2zQxatmnbn8yIJ7eoplQ7K07Khr6FRsjxo7wK6g3kXjlMNwJHD1pfy9iXELyvGh0WSCzYyRdTqA3XUqI8FrQXo2bFiZn8ma-rAbH8KMgp2gO4gOsfeBpwAcQ6EBwEUvoO-vmkNayIBuncF4-6NegIRGicMW2vFndYY9C63bc861HQAd9oSmbIo_lWTILgRlXaxzmy0)
+
+The diagram above shows the component dependency diagram and provides an o

[ignite-3] branch ignite-14393 updated (2687266 -> f6ac843)

2021-04-05 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to branch ignite-14393
in repository https://gitbox.apache.org/repos/asf/ignite-3.git.


from 2687266  IGNITE-14393 Components interaction
 add a8919fe  IGNITE-14403 Added ignite-core module and IgniteUuid class
 add cb518de  IGNITE-14149 RAFT client module. (#59)
 add 96b8e3a  IGNITE-14035: Table access API. (#33)
 add 53e870d  IGNITE-14198 Meta storage client interface
 add 8cf0bb2  IGNITE-14442 Fixed NPE in IgniteRunner caused by broken REST 
module. (#77)
 add 4d82a7e  IGNITE-14438 Added README.md for cli and cli-common modules. 
Fixes #75
 add e9ef6d4  IGNITE-14295 Network messages refactored to have a common 
interface and proper serializers/deserializers. (#70)
 add 297468b  IGNITE-14180 Implemented the ability to subscribe to 
configuration updates. (#76)
 add ed2b820  IGNITE-14460 Single-node RAFT server (#80).
 add 15166f8  IGNITE-14457 Update Ignite 3 binary build structure (#79)
 new f6ac843  Merge branch 'main' of 
https://gitbox.apache.org/repos/asf/ignite-3 into ignite-14393

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 assembly/NOTICE|   0
 assembly/README|   0
 assembly/assembly.xml  |  50 +++
 check-rules/checkstyle-rules.xml   |  11 +-
 modules/README.md  |   7 +-
 modules/api/pom.xml|  38 +-
 .../BinaryObject.java} |  11 +-
 .../java/org/apache/ignite/lang/IgniteFuture.java} |  14 +-
 .../org/apache/ignite/table/InvocationContext.java |  68 +++
 .../org/apache/ignite/table/InvokeProcessor.java   |  47 +++
 .../ignite/table/InvokeProcessorException.java}|   9 +-
 .../KeyValueBinaryView.java}   |  18 +-
 .../java/org/apache/ignite/table/KeyValueView.java | 349 
 .../java/org/apache/ignite/table/RecordView.java   |  42 ++
 .../main/java/org/apache/ignite/table/Table.java   |  92 +
 .../java/org/apache/ignite/table/TableView.java| 309 ++
 .../main/java/org/apache/ignite/table/Tuple.java   | 100 +
 .../TableIndex.java => table/TupleBuilder.java}|  20 +-
 .../org/apache/ignite/table/mapper/KeyMapper.java} |   7 +-
 .../org/apache/ignite/table/mapper/Mappers.java}   |  37 +-
 .../apache/ignite/table/mapper/RecordMapper.java}  |  19 +-
 .../apache/ignite/table/mapper/ValueMapper.java}   |  24 +-
 .../java/org/apache/ignite/table/package-info.java |  10 +-
 .../presto/bytecode/DynamicClassLoader.java|   9 -
 .../expression/ConstantBytecodeExpression.java |   2 +-
 modules/cli-common/README.md   |   5 +
 modules/cli/README.md  |  32 ++
 modules/configuration-annotation-processor/pom.xml |  12 -
 .../processor/internal/Processor.java  |  31 +-
 .../configuration/processor/internal/Utils.java| 109 +
 .../storage => }/ConfigurationChangerTest.java |  28 +-
 .../internal/util/ConfigurationUtilTest.java   |  82 +++-
 .../internal/validation/ValidationUtilTest.java|   2 +-
 .../notifications/ConfigurationListenerTest.java   | 245 +++
 .../sample/LocalConfigurationSchema.java   |   2 +-
 .../sample/NetworkConfigurationSchema.java |   2 +-
 .../ignite/configuration/sample/UsageTest.java |  16 +-
 .../storage/TestConfigurationStorage.java  |  25 +-
 modules/configuration/pom.xml  |  13 -
 .../ignite/configuration/ConfigurationChanger.java | 209 ++
 .../configuration/ConfigurationProperty.java   |  14 +-
 .../configuration/ConfigurationRegistry.java   |  59 ++-
 .../ignite/configuration/ConfigurationTree.java|   4 +-
 .../ignite/configuration/ConfigurationValue.java   |   6 +-
 .../configuration/NamedConfigurationTree.java  |   9 +-
 .../ignite/configuration/PropertyListener.java |  61 ---
 .../configuration/internal/ConfigurationNode.java  |  19 +-
 .../internal/DynamicConfiguration.java |   9 +-
 .../configuration/internal/DynamicProperty.java|  16 +-
 .../internal/NamedListConfiguration.java   |  25 +-
 .../ConfigurationNotificationEventImpl.java}   |  41 +-
 .../util/ConfigurationNotificationsUtil.java   | 184 +
 .../internal/util/ConfigurationUtil.java   |  42 ++
 .../notifications/ConfigurationListener.java}  |  20 +-
 .../ConfigurationNamedListListener.java}   |  45 +-
 .../ConfigurationNotificationEvent.java}   |  52 +--
 .../storage/ConfigurationStorage.java  |  16 +-
 .../storage/ConfigurationStora

[ignite-3] 01/01: Merge branch 'main' of https://gitbox.apache.org/repos/asf/ignite-3 into ignite-14393

2021-04-05 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-14393
in repository https://gitbox.apache.org/repos/asf/ignite-3.git

commit f6ac843ccf1de28c923aa6333d505ac577c8d900
Merge: 2687266 15166f8
Author: Alexey Goncharuk 
AuthorDate: Mon Apr 5 13:07:46 2021 +0300

Merge branch 'main' of https://gitbox.apache.org/repos/asf/ignite-3 into 
ignite-14393

 assembly/NOTICE|   0
 assembly/README|   0
 assembly/assembly.xml  |  50 +++
 check-rules/checkstyle-rules.xml   |  11 +-
 modules/README.md  |   7 +-
 modules/api/pom.xml|  38 +-
 .../org/apache/ignite/binary/BinaryObject.java}|  12 +-
 .../java/org/apache/ignite/lang/IgniteFuture.java} |  14 +-
 .../org/apache/ignite/table/InvocationContext.java |  68 +++
 .../org/apache/ignite/table/InvokeProcessor.java   |  47 +++
 .../ignite/table/InvokeProcessorException.java}|   9 +-
 .../apache/ignite/table/KeyValueBinaryView.java}   |  15 +-
 .../java/org/apache/ignite/table/KeyValueView.java | 349 
 .../java/org/apache/ignite/table/RecordView.java   |  42 ++
 .../main/java/org/apache/ignite/table/Table.java   |  92 +
 .../java/org/apache/ignite/table/TableView.java| 309 ++
 .../main/java/org/apache/ignite/table/Tuple.java   | 100 +
 .../org/apache/ignite/table/TupleBuilder.java} |  21 +-
 .../org/apache/ignite/table/mapper/KeyMapper.java} |   8 +-
 .../org/apache/ignite/table/mapper/Mappers.java}   |  37 +-
 .../apache/ignite/table/mapper/RecordMapper.java}  |  20 +-
 .../apache/ignite/table/mapper/ValueMapper.java}   |  22 +-
 .../org/apache/ignite/table}/package-info.java |   5 +-
 .../presto/bytecode/DynamicClassLoader.java|   9 -
 .../expression/ConstantBytecodeExpression.java |   2 +-
 modules/cli-common/README.md   |   5 +
 modules/cli/README.md  |  32 ++
 modules/configuration-annotation-processor/pom.xml |  12 -
 .../processor/internal/Processor.java  |  31 +-
 .../configuration/processor/internal/Utils.java| 109 +
 .../storage => }/ConfigurationChangerTest.java |  28 +-
 .../internal/util/ConfigurationUtilTest.java   |  82 +++-
 .../internal/validation/ValidationUtilTest.java|   2 +-
 .../notifications/ConfigurationListenerTest.java   | 245 +++
 .../sample/LocalConfigurationSchema.java   |   2 +-
 .../sample/NetworkConfigurationSchema.java |   2 +-
 .../ignite/configuration/sample/UsageTest.java |  16 +-
 .../storage/TestConfigurationStorage.java  |  25 +-
 modules/configuration/pom.xml  |  13 -
 .../ignite/configuration/ConfigurationChanger.java | 209 ++
 .../configuration/ConfigurationProperty.java   |  14 +-
 .../configuration/ConfigurationRegistry.java   |  59 ++-
 .../ignite/configuration/ConfigurationTree.java|   4 +-
 .../ignite/configuration/ConfigurationValue.java   |   6 +-
 .../configuration/NamedConfigurationTree.java  |   9 +-
 .../ignite/configuration/PropertyListener.java |  61 ---
 .../configuration/internal/ConfigurationNode.java  |  19 +-
 .../internal/DynamicConfiguration.java |   9 +-
 .../configuration/internal/DynamicProperty.java|  16 +-
 .../internal/NamedListConfiguration.java   |  25 +-
 .../ConfigurationNotificationEventImpl.java}   |  41 +-
 .../util/ConfigurationNotificationsUtil.java   | 184 +
 .../internal/util/ConfigurationUtil.java   |  42 ++
 .../ConfigurationListener.java}|  28 +-
 .../ConfigurationNamedListListener.java}   |  37 +-
 .../ConfigurationNotificationEvent.java}   |  45 +-
 .../storage/ConfigurationStorage.java  |  16 +-
 .../storage/ConfigurationStorageListener.java  |   1 +
 .../apache/ignite/configuration/storage/Data.java  |  22 +-
 .../ignite/configuration/tree/NamedListNode.java   |   5 +
 .../ignite/configuration/tree/NamedListView.java   |   5 +
 modules/{configuration => core}/pom.xml|  36 +-
 .../java/org/apache/ignite/lang/IgniteUuid.java| 135 ++
 .../apache/ignite/lang/IgniteUuidGenerator.java|  84 
 .../java/org/apache/ignite/lang/LogWrapper.java|  80 
 modules/metastorage-client/pom.xml |  42 ++
 .../metastorage/client/MetaStorageService.java | 345 
 .../ignite/metastorage/client}/package-info.java   |   5 +-
 modules/metastorage-common/pom.xml |  47 +++
 .../metastorage/common/CompactedException.java |  59 +++
 .../ignite/metastorage/common/Condition.java   | 356 
 .../ignite/metastorage/common/Conditions.java} |  46 +--
 .../apache/ignite/metastorage/common/Cursor.java}  |  14 +-
 .../apache/ignite/metastorage/

[ignite-3] branch ignite-14393 updated: IGNITE-14393 Components interaction

2021-04-05 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-14393
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/ignite-14393 by this push:
 new 2687266  IGNITE-14393 Components interaction
2687266 is described below

commit 26872663e3bcf574bd05507b08f68f6f5db0b14b
Author: Alexey Goncharuk 
AuthorDate: Mon Apr 5 13:04:56 2021 +0300

IGNITE-14393 Components interaction
---
 modules/runner/README.md | 55 ++--
 1 file changed, 39 insertions(+), 16 deletions(-)

diff --git a/modules/runner/README.md b/modules/runner/README.md
index 6776168..47a1927 100644
--- a/modules/runner/README.md
+++ b/modules/runner/README.md
@@ -46,10 +46,9 @@ enforces serveral rules related to the components 
interaction:
 
-![Example components dependency 
graph](http://www.plantuml.com/plantuml/svg/VP7F2i8m3CRlVOeUzR22Vxm8Ze5ud1V5UxO6dNQjT9c-lcMwactWfMto_KBIBrb3uAcjZN357KkI5sWDYUwKM-cyHYztSY5w_OZqTluXVZTZbf79aQ0Xv-6AWhqPkuhigRnX3JdO07WnY1Y_ZlmP2eCzpW9ERyIWRPAaSMnUqGaCd8XVCoRflpF7ikXGecEAezFs8rbfbSf-4V2izc3CR3xucMe3CZB1L0sXHQ-SFRpGKYZ9qEgmuWy0)
+![Components dependency 
graph](http://www.plantuml.com/plantuml/svg/TP7DJiCm48Jl-nHv0KjG_f68oWytuD1Mt9t4AGOdbfoD46-FwiJRYQnUrflPp-jePZsm3ZnsZdprRMekFlNec68jxWiV6XEAX-ASqlpDrzez-xwrUu8Us9Mm7uP_VVYX-GJcGfYDRfaE1QQNCdqth0VsGUyDGG_ibR0lTk1Wgv5DC_zVfi2zQxatmnbn8yIJ7eoplQ7K07Khr6FRsjxo7wK6g3kXjlMNwJHD1pfy9iXELyvGh0WSCzYyRdTqA3XUqI8FrQXo2bFiZn8ma-rAbH8KMgp2gO4gOsfeBpwAcQ6EBwEUvoO-vmkNayIBuncF4-6NegIRGicMW2vFndYY9C63bc861HQAd9oSmbIo_lWTILgRlXaxzmy0)
 
-The diagram above shows an example component dependency diagram and provides 
an order in which compomnents may be 
-initialized.
+The diagram above shows the component dependency diagram and provides an order 
in which compomnents may be initialized.
 
 ## Cluster lifecycle
 For a cluster to become operational, the metastorage instance must be 
initialized first. The initialization command 
@@ -58,7 +57,27 @@ initialization command, it either creates a bootstrapped 
Raft instance with the
 group node), or writes the metastorage group member IDs to the vault as a 
private system-level property.
 
 After the metastorage is initialized, components start to receive and process 
watch events, updating the local state 
-according to the changes received from the watch.   
+according to the changes received from the watch.
+
+An entry point to user-initiated cluster state changes is [cluster 
configuration](../configuration/README.md). 
+Configuration module provides convenient ways for managing configuration both 
as Java API, as well as from ``ignite`` 
+command line utility.
+
+## Reliable configuration changes
+Any configuration change is translated to a metastorage multi-update and has a 
single configuration change ID. This ID
+is used to enforce CAS-style configuration changes and to ensure no duplicate 
configuration changes are executed during
+the cluster runtime. To reliably process cluster configuration changes, we 
introduce an additional metastorage key
+
+```
+internal.configuration.applied=
+```
+
+that indicates the configuration change ID that was already processed and 
corresponding changes are written to the 
+metastorage. Whenever a node processes a configuration change, it must also 
conditionally update the 
+``internal.configuration.applied`` value checking that the previous value is 
smaller than the change ID being applied.
+This prevents configuration changes being processed more than once. Any 
metastorage update that processes configuration
+change must update this key to indicate that this configuraion change has been 
already processed. It is safe to process
+the same configuration change more than once since only one update will be 
applied. 
 
 ## Reliable watch processing
 All cluster state is written and maintained in the metastorage. Nodes may 
update some state in the metastorage, which
@@ -92,30 +111,34 @@ of the watch, and not processed events are replayed.
 We require that each Ignite table is assigned a globally unique ID (the ID 
must not repeat even after the table is 
 dropped, so we use the metastorage key revision to assign table IDs).
 
-When a table is created, Ignite first checks that a table with the given name 
does not exist, then attempts to create 
-the following key-value pair in the metastorage via the conditional update 
ensuring atomic `putIfAbsent` semantics:
+To create a table, a user makes a change in the configuration tree by 
introducing the corresponding configuration 
+object. This can be done either via public [configuration API](TODO link to 
configuration API) or via the ``ignite`` 
+[configuration command](TODO link to CLI readme). Configuration validator 
checks that a table with the same name does
+not exist (and performs other necessary checks) and writes the change to the 
metastorage. If the update succeeds, Ignite

[ignite-3] branch ignite-14393 updated: IGNITE-14393 Get rid of multi-key update for table creation

2021-03-29 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-14393
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/ignite-14393 by this push:
 new 558a98b  IGNITE-14393 Get rid of multi-key update for table creation
558a98b is described below

commit 558a98b08fc9fe26a28873cb5d00d490c4e126e5
Author: Alexey Goncharuk 
AuthorDate: Mon Mar 29 19:59:09 2021 +0300

IGNITE-14393 Get rid of multi-key update for table creation
---
 modules/runner/README.md | 32 +++-
 1 file changed, 15 insertions(+), 17 deletions(-)

diff --git a/modules/runner/README.md b/modules/runner/README.md
index 7226377..6776168 100644
--- a/modules/runner/README.md
+++ b/modules/runner/README.md
@@ -90,34 +90,32 @@ of the watch, and not processed events are replayed.
 
 ### Example: `CREATE TABLE` flow
 We require that each Ignite table is assigned a globally unique ID (the ID 
must not repeat even after the table is 
-dropped, so we use a growing `long` counter to assign table IDs).
+dropped, so we use the metastorage key revision to assign table IDs).
 
-When a table is created, Ignite first checks that a table with the given name 
does not exist, chooses the next available 
-table ID ``idNext`` and attempts to create the following pair of key-value 
pairs in the metastorage via the conditional 
-multi-update:
+When a table is created, Ignite first checks that a table with the given name 
does not exist, then attempts to create 
+the following key-value pair in the metastorage via the conditional update 
ensuring atomic `putIfAbsent` semantics:
 
 ```
-internal.tables.names.=
-internal.tables.=name
+internal.tables.names.=
 ```  
 
-If the multi-update succeeds, Ignite considers the table created. If the 
multi-update fails, then either the table with
-the same name was concurrently created (the operation fails in this case) or 
the ``idNext`` was assigned to another 
-table with a different name (Ignite retries the operation in this case).
+If the update succeeds, Ignite considers the table created and uses the 
returned key-value pair revision as the table 
+ID. If the update fails, then the table with the same name was concurrently 
created (the operation fails in this case).
 
 In order to process affinity calculations and assignments, the affinity 
manager creates a reliable watch for the 
 following keys on metastorage group members:
 
 ```
-internal.tables.
+internal.tables.names.*
 internal.baseline
 ``` 
 
 Whenever a watch is fired, the affinity manager checks which key was updated. 
If the watch is triggered for 
-``internal.tables.`` key, it calculates a new affinity for the table with 
the given ``ID``. If the watch is 
-triggered for ``internal.baseline`` key, the manager recalculates affinity for 
all tables exsiting at the watch revision
-(this can be done using the metastorage ``range(keys, upperBound)`` method 
providing the watch event revision as the 
-upper bound). The calculated affinity is written to the 
``internal.tables..affinity`` key.
+``internal.tables.names.`` key, it calculates a new affinity for the 
table with the given name (using key revision 
+as the table ID). If the watch is triggered for ``internal.baseline`` key, the 
manager recalculates affinity for all 
+tables exsiting at the watch revision (this can be done using the metastorage 
``range(keys, upperBound)`` method 
+providing the watch event revision as the upper bound). The calculated 
affinity is written to the 
+``internal.tables.affinity.`` key.
 
 > Note that ideally the watch should only be processed on metastorage group 
 > leader, thus eliminating unnecessary network
 > trips. Theoretically, we could have embedded this logic to the state 
 > machine, but this would enormously complicate 
@@ -127,7 +125,7 @@ To handle partition assignments, partition manager creates 
a reliable watch for
 nodes:
 
 ```
-internal.tables..affinity
+internal.tables.affinity.
 ```
 
 Whenever a watch is fired, the node checks whether there exist new partitions 
assigned to the local node, and if there 
@@ -135,8 +133,8 @@ are, the node bootstraps corresponding Raft partition 
servers (i.e. allocates pa
 The allocation information is written to projected vault keys:
 
 ```
-local.tables...logpath=/path/to/raft/log
-local.tables...storagepath=/path/to/storage/file
+local.tables.partition...logpath=/path/to/raft/log
+local.tables.partition...storagepath=/path/to/storage/file
 ``` 
 
 Once the projected keys are synced to the vault, the partition manager can 
create partition Raft servers (initialize 


[ignite-3] branch ignite-14393 updated: IGNITE-14393 Updated image

2021-03-25 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-14393
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/ignite-14393 by this push:
 new 0026274  IGNITE-14393 Updated image
0026274 is described below

commit 0026274db523b38e999219be2981c11a0f31d681
Author: Alexey Goncharuk 
AuthorDate: Thu Mar 25 10:50:56 2021 +0300

IGNITE-14393 Updated image
---
 modules/runner/README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules/runner/README.md b/modules/runner/README.md
index a182dd9..7226377 100644
--- a/modules/runner/README.md
+++ b/modules/runner/README.md
@@ -46,7 +46,7 @@ enforces serveral rules related to the components interaction:
 
-![Example components dependency 
graph](http://www.plantuml.com/plantuml/svg/TO_Fpi8W4CJlF0N7xpkKn3zUJ3HDZCTwqNZVjXkjKZ1qqTUND6rbCLw0tVbDXiax0aU-rSAMDwn87f1Urjt5SCkrjAv69pTo9aRc35wJwCz8dqzwWGGTMGSN5D4xOXSJUwoks4819W1Ei2dYbnD_WbBZY7y6Hgy4YysoxLYBENeX0h_4eMYw_lrdPaltF2kHLQq6N-W1ZsO7Ml_zinhA1oHfh9kEqA1JrkoVQ2XOSZIrR_KR)
+![Example components dependency 
graph](http://www.plantuml.com/plantuml/svg/VP7F2i8m3CRlVOeUzR22Vxm8Ze5ud1V5UxO6dNQjT9c-lcMwactWfMto_KBIBrb3uAcjZN357KkI5sWDYUwKM-cyHYztSY5w_OZqTluXVZTZbf79aQ0Xv-6AWhqPkuhigRnX3JdO07WnY1Y_ZlmP2eCzpW9ERyIWRPAaSMnUqGaCd8XVCoRflpF7ikXGecEAezFs8rbfbSf-4V2izc3CR3xucMe3CZB1L0sXHQ-SFRpGKYZ9qEgmuWy0)
 
 The diagram above shows an example component dependency diagram and provides 
an order in which compomnents may be 
 initialized.


[ignite-3] branch ignite-14393 created (now 5ba6651)

2021-03-24 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to branch ignite-14393
in repository https://gitbox.apache.org/repos/asf/ignite-3.git.


  at 5ba6651  IGNITE-14393 Components interactions workflow draft

This branch includes the following new commits:

 new 5ba6651  IGNITE-14393 Components interactions workflow draft

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



[ignite-3] 01/01: IGNITE-14393 Components interactions workflow draft

2021-03-24 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-14393
in repository https://gitbox.apache.org/repos/asf/ignite-3.git

commit 5ba6651a0da7b4637fc901efe384796bf4b5a75e
Author: Alexey Goncharuk 
AuthorDate: Wed Mar 24 20:36:38 2021 +0300

IGNITE-14393 Components interactions workflow draft
---
 modules/runner/README.md | 145 +++
 1 file changed, 145 insertions(+)

diff --git a/modules/runner/README.md b/modules/runner/README.md
new file mode 100644
index 000..a182dd9
--- /dev/null
+++ b/modules/runner/README.md
@@ -0,0 +1,145 @@
+# Ignite cluster & node lifecycle
+This document describes user-level and component-level cluster lifecycles and 
their mutual interaction.
+
+## Node lifecycle
+A node maintains its' local state in the local persistent key-value storage 
named vault. The data stored in the vault is 
+semantically divided in the following categories:
+ * User-level local configuration properties (such as memory limits, network 
timeouts, etc). User-level configuration
+ properties can be written both at runtime (not all properties will be applied 
at runtime, however, - some of them will
+ require a full node restart) and when a node is shut down (in order to be 
able to change properties that prevent node
+ startup for some reason)
+ * System-level private properties (such as computed local statistics, 
node-local commin paths, etc). System-level 
+ private properties are computed locally based on the information available at 
node locally (not based on metastorage 
+ watched values)
+ * System-level distributed metastorage projected properties (such as paths to 
partition files, etc). System-level 
+ projected properties are associated with one or more metastorage properties 
and are computed based on the local node 
+ state and the metastorage properties values. System-level projected 
properties values are semantically bound to a 
+ particular revision of the dependee properties and must be recalculated when 
dependees are changed (see 
+ [reliable watch processing](#reliable-watch-processing)). 
+
+The vault is created during the first node startup and optionally populated 
with the paremeters from the configuration 
+file passed in to the ``ignite node start`` [command](TODO link to CLI 
readme). Only user-level properties can be 
+written via the provided file. 
+
+System-level properties are written to the storage during the first vault 
initialization by the node start process. 
+Projected properties are not initialized during the initial node startup 
because at this point the local node is not 
+aware of the distributed metastorage. The node remains in a 'zombie' state 
until after it learns that there is an 
+initialized metastorage (either via the ``ignite cluster init`` [command](TODO 
link to CLI readme) during the initial 
+cluster initialization) or from the group membershup service via gossip 
(implying that group membership protocol is 
+working at this point).
+
+### Node components startup
+For testability purposes, we require that component dependencies are defined 
upfront and provided at the construction
+time. This additionaly requires that component dependencies form no cycles. 
Therefore, components form an acyclic 
+directed graph that is constructed in topological sort order wrt root. 
+
+Components created and initialized also in an order consistent with a 
topological sort of the components graph. This 
+enforces serveral rules related to the components interaction: 
+ * Since metastorage watches can only be added during the component startup, 
the watch notification order is consistent
+ with the component initialization order. I.e. if a component `B` depdends on 
a component `A`, then `A` receives watch
+ notification prior to `B`.
+ * Dependent component can directly call an API method on a dependee component 
(because it can obtain the dependee 
+ reference during construction). Direct inverse calls are prohibited (this is 
enforced by only acquiring component 
+ references during the components construction). Nevertheless, inverse call 
can be implemented by means of listeners or 
+ callbacks: the dependent component installs a listener to a dependeee, which 
can be later invoked.
+ 
+
+![Example components dependency 
graph](http://www.plantuml.com/plantuml/svg/TO_Fpi8W4CJlF0N7xpkKn3zUJ3HDZCTwqNZVjXkjKZ1qqTUND6rbCLw0tVbDXiax0aU-rSAMDwn87f1Urjt5SCkrjAv69pTo9aRc35wJwCz8dqzwWGGTMGSN5D4xOXSJUwoks4819W1Ei2dYbnD_WbBZY7y6Hgy4YysoxLYBENeX0h_4eMYw_lrdPaltF2kHLQq6N-W1ZsO7Ml_zinhA1oHfh9kEqA1JrkoVQ2XOSZIrR_KR)
+
+The diagram above shows an example component dependency diagram and provides 
an order in which compomnents may be 
+initialized.
+
+## Cluster lifecycle
+For a cluster to become operational, the metastorage instance must be 
initialized first. The initialization command 
+chooses a set of nodes (normally, 3 - 5 nodes) to host the distrib

[ignite-3] branch ignite-13618 updated: IGNITE-13618 Correct README.md

2021-03-17 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-13618
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/ignite-13618 by this push:
 new ab6bae6  IGNITE-13618 Correct README.md
ab6bae6 is described below

commit ab6bae6ba6fb4e3b3e5baa9d292f91ccfa66f727
Author: Alexey Goncharuk 
AuthorDate: Wed Mar 17 12:24:09 2021 +0300

IGNITE-13618 Correct README.md
---
 modules/schema/README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/modules/schema/README.md b/modules/schema/README.md
index e640252..e5f396f 100644
--- a/modules/schema/README.md
+++ b/modules/schema/README.md
@@ -1,6 +1,6 @@
 # Schema module
 
-This module provides API and implementation for schema management components:
+This module provides implementation for schema management components:
 
 * Public API for schema definition and evolution
 * Schema manager component that implements necessary machinary to translate 
schema management commands to corresponding



[ignite-3] branch main updated: IGNITE-14315 Use maven-flatten plugin (#68)

2021-03-15 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
 new 497ac43  IGNITE-14315 Use maven-flatten plugin (#68)
497ac43 is described below

commit 497ac43c9e4985085daa96cdc2d73b57e61dd626
Author: Peter Ivanov 
AuthorDate: Mon Mar 15 13:12:31 2021 +0300

IGNITE-14315 Use maven-flatten plugin (#68)
---
 .gitignore |   1 +
 parent/pom.xml | 146 +++--
 pom.xml|  84 -
 3 files changed, 133 insertions(+), 98 deletions(-)

diff --git a/.gitignore b/.gitignore
index c3484a1..457eacc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
 *.iml
 target
 .DS_Store
+.flattened-pom.xml
diff --git a/parent/pom.xml b/parent/pom.xml
index 3af2fbf..dc55047 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -84,6 +84,7 @@
 3.8.1
 2.8.2
 3.0.0-M5
+1.2.2
 3.14.0
 3.2.1
 3.0.0-M5
@@ -357,23 +358,18 @@
 maven-pmd-plugin
 ${maven.pmd.plugin.version}
 
+
+
+org.codehaus.mojo
+flatten-maven-plugin
+${maven.flatten.plugin.version}
+
 
 
 
 
- 
-org.apache.maven.plugins
-maven-pmd-plugin
-
-true
-
-
${project.basedir}/check-rules/pmd-rules.xml
-
-
-
-
 
 
 org.codehaus.mojo
@@ -409,7 +405,7 @@
 
 
 
 
 org.apache.maven.plugins
@@ -422,7 +418,7 @@
 
 
 
 
 org.apache.maven.plugins
@@ -437,6 +433,128 @@
 
 
 
+
+
+
+org.codehaus.mojo
+flatten-maven-plugin
+
+
+
+
+flatten
+process-resources
+
+flatten
+
+
+
+
+
+flatten.clean.before
+clean
+
+clean
+
+
+
+
+
+
+
+org.apache.maven.plugins
+maven-checkstyle-plugin
+
+
+
${project.build.sourceDirectory}
+
${project.build.testSourceDirectory}
+
+true
+true
+true
+true
+
${project.build.directory}/checkstyle.xml
+
${project.basedir}/check-rules/checkstyle-rules.xml
+
${project.basedir}/check-rules/checkstyle-suppressions.xml
+
true
+**/generated/**/*
+
+
+
+com.puppycrawl.tools
+checkstyle
+${checkstyle.puppycrawl.version}
+
+
+
+
+
+
+org.apache.rat
+apache-rat-plugin
+
+true
+
+
+
IAL20
+Ignite Apache License 
2.0
+
+Licensed to the Apache Software Foundation 
(ASF) under one or more
+contributor license agreements.  See the 
NOTICE file distributed with
+this work for additional information regarding 
copyright ownership.
+The ASF licenses this file to You under the 
Apache License, Version 2.0
+(the "License"); you may not use this file 
except in compliance with
+the License.  You may obtain a copy of the 
License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to 
in writing, software
+distributed under the License is distributed 
on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 
either express or implied.
+   

[ignite-3] 01/01: Merge branch 'main' of https://gitbox.apache.org/repos/asf/ignite-3 into ignite-14315

2021-03-15 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-14315
in repository https://gitbox.apache.org/repos/asf/ignite-3.git

commit 51c946db74d9eada278ecd992b77b50410b877f8
Merge: c14637b 4afdbb3
Author: Alexey Goncharuk 
AuthorDate: Mon Mar 15 13:06:53 2021 +0300

Merge branch 'main' of https://gitbox.apache.org/repos/asf/ignite-3 into 
ignite-14315

 DEVNOTES.md| 164 -
 parent/pom.xml |   1 +
 2 files changed, 93 insertions(+), 72 deletions(-)

diff --cc parent/pom.xml
index 925ed4b,3af2fbf..dc55047
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@@ -433,127 -437,6 +433,128 @@@
  
  
  
 +
 +
 +
 +org.codehaus.mojo
 +flatten-maven-plugin
 +
 +
 +
 +
 +flatten
 +process-resources
 +
 +flatten
 +
 +
 +
 +
 +
 +flatten.clean.before
 +clean
 +
 +clean
 +
 +
 +
 +
 +
 +
 +
 +org.apache.maven.plugins
 +maven-checkstyle-plugin
 +
 +
 +
${project.build.sourceDirectory}
 +
${project.build.testSourceDirectory}
 +
 +true
 +true
 +true
 +true
 +
${project.build.directory}/checkstyle.xml
 +
${project.basedir}/check-rules/checkstyle-rules.xml
 +
${project.basedir}/check-rules/checkstyle-suppressions.xml
 +
true
 +**/generated/**/*
 +
 +
 +
 +com.puppycrawl.tools
 +checkstyle
 +${checkstyle.puppycrawl.version}
 +
 +
 +
 +
 +
 +
 +org.apache.rat
 +apache-rat-plugin
 +
 +
true
 +
 +
 +
IAL20
 +Ignite Apache License 
2.0
 +
 +Licensed to the Apache Software Foundation 
(ASF) under one or more
 +contributor license agreements.  See the 
NOTICE file distributed with
 +this work for additional information 
regarding copyright ownership.
 +The ASF licenses this file to You under the 
Apache License, Version 2.0
 +(the "License"); you may not use this file 
except in compliance with
 +the License.  You may obtain a copy of the 
License at
 +
 +http://www.apache.org/licenses/LICENSE-2.0
 +
 +Unless required by applicable law or agreed 
to in writing, software
 +distributed under the License is distributed 
on an "AS IS" BASIS,
 +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 
either express or implied.
 +See the License for the specific language 
governing permissions and
 +limitations under the License.
 +
 +
 +
 +
 +
 +Ignite Apache License 2.0
 +
 +
 +false
 +
 +**/target/** 
 +**/*.md 
 +docs/assets/images/** 
 +docs/assets/js/anchor.min.js 
 +**/*.json 
 +
modules/cli/src/**/resources//builtin_modules.conf 
 +
modules/configuration-annotation-processor/src/main/resources/META-INF/services/javax.annotation.processing.Processor
 
++**/*.iml 
 +
 +
 +
 +
 +
 +
 +org.apache.maven.plugins
 +maven-pmd-plugin
 +
 +true
 +
 +
${project.basedir}/check-rules/pmd-rules.xml
 +
 +
 +
  
  
  



[ignite-3] branch ignite-14315 updated (c14637b -> 51c946d)

2021-03-15 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to branch ignite-14315
in repository https://gitbox.apache.org/repos/asf/ignite-3.git.


from c14637b  IGNITE-14315 Use maven-flatten-plugin
 add 4afdbb3  IGNITE-14298 DEVNOTES should contain clear instructions on 
how to run check-style
 new 51c946d  Merge branch 'main' of 
https://gitbox.apache.org/repos/asf/ignite-3 into ignite-14315

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 DEVNOTES.md| 164 -
 parent/pom.xml |   1 +
 2 files changed, 93 insertions(+), 72 deletions(-)



[ignite-3] 01/01: IGNITE-14315 Use maven-flatten-plugin

2021-03-15 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-14315
in repository https://gitbox.apache.org/repos/asf/ignite-3.git

commit c14637bb9bf855e05cd85d38d037ae6cc27210d9
Author: Peter Ivanov 
AuthorDate: Thu Mar 11 18:22:01 2021 +0300

IGNITE-14315 Use maven-flatten-plugin
---
 .gitignore |   1 +
 parent/pom.xml | 145 +++--
 pom.xml|  83 -
 3 files changed, 132 insertions(+), 97 deletions(-)

diff --git a/.gitignore b/.gitignore
index c3484a1..457eacc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
 *.iml
 target
 .DS_Store
+.flattened-pom.xml
diff --git a/parent/pom.xml b/parent/pom.xml
index 3af2fbf..925ed4b 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -84,6 +84,7 @@
 3.8.1
 2.8.2
 3.0.0-M5
+1.2.2
 3.14.0
 3.2.1
 3.0.0-M5
@@ -357,23 +358,18 @@
 maven-pmd-plugin
 ${maven.pmd.plugin.version}
 
+
+
+org.codehaus.mojo
+flatten-maven-plugin
+${maven.flatten.plugin.version}
+
 
 
 
 
- 
-org.apache.maven.plugins
-maven-pmd-plugin
-
-true
-
-
${project.basedir}/check-rules/pmd-rules.xml
-
-
-
-
 
 
 org.codehaus.mojo
@@ -409,7 +405,7 @@
 
 
 
 
 org.apache.maven.plugins
@@ -422,7 +418,7 @@
 
 
 
 
 org.apache.maven.plugins
@@ -437,6 +433,127 @@
 
 
 
+
+
+
+org.codehaus.mojo
+flatten-maven-plugin
+
+
+
+
+flatten
+process-resources
+
+flatten
+
+
+
+
+
+flatten.clean.before
+clean
+
+clean
+
+
+
+
+
+
+
+org.apache.maven.plugins
+maven-checkstyle-plugin
+
+
+
${project.build.sourceDirectory}
+
${project.build.testSourceDirectory}
+
+true
+true
+true
+true
+
${project.build.directory}/checkstyle.xml
+
${project.basedir}/check-rules/checkstyle-rules.xml
+
${project.basedir}/check-rules/checkstyle-suppressions.xml
+
true
+**/generated/**/*
+
+
+
+com.puppycrawl.tools
+checkstyle
+${checkstyle.puppycrawl.version}
+
+
+
+
+
+
+org.apache.rat
+apache-rat-plugin
+
+true
+
+
+
IAL20
+Ignite Apache License 
2.0
+
+Licensed to the Apache Software Foundation 
(ASF) under one or more
+contributor license agreements.  See the 
NOTICE file distributed with
+this work for additional information regarding 
copyright ownership.
+The ASF licenses this file to You under the 
Apache License, Version 2.0
+(the "License"); you may not use this file 
except in compliance with
+the License.  You may obtain a copy of the 
License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to 
in writing, software
+distributed under the License is distributed 
on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, 
either express or implied.
+See the License for the specific language 
governing permissions and
+limitatio

[ignite-3] branch ignite-14315 created (now c14637b)

2021-03-15 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to branch ignite-14315
in repository https://gitbox.apache.org/repos/asf/ignite-3.git.


  at c14637b  IGNITE-14315 Use maven-flatten-plugin

This branch includes the following new commits:

 new c14637b  IGNITE-14315 Use maven-flatten-plugin

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




[ignite-3] branch ignite-13618 updated: IGNITE-13618 Corrected a few checks for bytecode module, moved pieces of IEP-54 to module README.md

2021-03-11 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-13618
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/ignite-13618 by this push:
 new 021f826  IGNITE-13618 Corrected a few checks for bytecode module, 
moved pieces of IEP-54 to module README.md
021f826 is described below

commit 021f82695b4faa722133416599510bd071d75df7
Author: Alexey Goncharuk 
AuthorDate: Thu Mar 11 20:48:21 2021 +0300

IGNITE-13618 Corrected a few checks for bytecode module, moved pieces of 
IEP-54 to module README.md
---
 modules/bytecode/README.md |  4 +-
 .../facebook/presto/bytecode/MethodDefinition.java |  8 +-
 .../presto/bytecode/MethodGenerationContext.java   |  2 +-
 modules/schema/README.md   | 50 -
 .../org/apache/ignite/internal/schema/README.md| 87 ++
 .../ignite/internal/schema/package-info.java   | 46 
 6 files changed, 139 insertions(+), 58 deletions(-)

diff --git a/modules/bytecode/README.md b/modules/bytecode/README.md
index 0135e01..3a178c8 100644
--- a/modules/bytecode/README.md
+++ b/modules/bytecode/README.md
@@ -1,4 +1,6 @@
 # Apache Ignite Bytecode module
-Fork of PrestoDB Bytecode module (ver 0.243).
+Fork of [PrestoDB Bytecode module (ver 
0.243)](https://github.com/prestodb/presto/tree/0.243/presto-bytecode).
 * Removed unnecessary guava dependency.
 * Tests migrated from TestNG to JUnit 5.
+
+This module provides a convenient thin wrapper around 
[ASM](https://asm.ow2.io/) library to generate classes at runtime.
\ No newline at end of file
diff --git 
a/modules/bytecode/src/main/java/com/facebook/presto/bytecode/MethodDefinition.java
 
b/modules/bytecode/src/main/java/com/facebook/presto/bytecode/MethodDefinition.java
index 0297d9b..1405765 100644
--- 
a/modules/bytecode/src/main/java/com/facebook/presto/bytecode/MethodDefinition.java
+++ 
b/modules/bytecode/src/main/java/com/facebook/presto/bytecode/MethodDefinition.java
@@ -11,6 +11,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
 package com.facebook.presto.bytecode;
 
 import java.util.ArrayList;
@@ -67,12 +68,7 @@ public class MethodDefinition {
 
 this.access = access;
 this.name = name;
-if (returnType != null) {
-this.returnType = returnType;
-}
-else {
-this.returnType = type(void.class);
-}
+this.returnType = returnType != null ? returnType : type(void.class);
 this.parameters = List.copyOf(parameters);
 this.parameterTypes = 
parameters.stream().map(Parameter::getType).collect(Collectors.toList());
 this.parameterAnnotations = parameters.stream().map(p -> new 
ArrayList()).collect(Collectors.toList());
diff --git 
a/modules/bytecode/src/main/java/com/facebook/presto/bytecode/MethodGenerationContext.java
 
b/modules/bytecode/src/main/java/com/facebook/presto/bytecode/MethodGenerationContext.java
index ec2a65a..e62da9d 100644
--- 
a/modules/bytecode/src/main/java/com/facebook/presto/bytecode/MethodGenerationContext.java
+++ 
b/modules/bytecode/src/main/java/com/facebook/presto/bytecode/MethodGenerationContext.java
@@ -91,7 +91,7 @@ public class MethodGenerationContext {
 return true;
 }
 
-private final class ScopeContext {
+private static final class ScopeContext {
 private final Scope scope;
 private final List variables;
 
diff --git a/modules/schema/README.md b/modules/schema/README.md
index e742dc5..e640252 100644
--- a/modules/schema/README.md
+++ b/modules/schema/README.md
@@ -1,7 +1,49 @@
 # Schema module
 
-This module provides implementations for schema configuration API and schema 
management components.
+This module provides API and implementation for schema management components:
 
-* Schema configuration public API implementation.
-* Distributed schema management for processing schema change events at runtime.
-* Schema version management for transparent upgrade stored data purposes 
according to life-schema concept.
\ No newline at end of file
+* Public API for schema definition and evolution
+* Schema manager component that implements necessary machinary to translate 
schema management commands to corresponding
+  metastorage modifications, as well as schema modification event processing 
logic 
+* Necessary logic to build and upgrade tuples - rows of specific schema that 
encode user data in schema-defined format.
+
+## Schema-aware tables
+We require that at any moment in time an Ignite table has only one most recent 
relevant schema. Upon schema 
+modification, we assign a monotonically growing identifier to each version of 
the cache schema. The ordering guarantees 
+are provided by the underlying distributed metastorage. The history of schema 
versions must be kept in the metastor

[ignite-3] branch ignite-14272 deleted (was c024eb6)

2021-03-10 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to branch ignite-14272
in repository https://gitbox.apache.org/repos/asf/ignite-3.git.


 was c024eb6  IGNITE-14272 DEVNOTES.md moved to proper location, added 
draft modules structure

This change permanently discards the following revisions:

 discard c024eb6  IGNITE-14272 DEVNOTES.md moved to proper location, added 
draft modules structure
 discard a16573f  IGNITE-14272 DEVNOTES.md moved to proper location, added 
draft modules structure



[ignite-3] branch main updated: IGNITE-14272 Move DEVNOTES.md to proper location, add modules readme

2021-03-10 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
 new f3775d0  IGNITE-14272 Move DEVNOTES.md to proper location, add modules 
readme
f3775d0 is described below

commit f3775d021c5f105785dff5977d47fac832f8d882
Author: Alexey Goncharuk 
AuthorDate: Wed Mar 10 18:23:13 2021 +0300

IGNITE-14272 Move DEVNOTES.md to proper location, add modules readme
---
 DEVNOTES.md| 55 +-
 modules/DEVNOTES.md| 47 --
 modules/README.md  | 19 
 .../configuration-annotation-processor/README.md   |  5 ++
 modules/network/README.md  | 23 +
 5 files changed, 100 insertions(+), 49 deletions(-)

diff --git a/DEVNOTES.md b/DEVNOTES.md
index 5575f29..0185e9b 100644
--- a/DEVNOTES.md
+++ b/DEVNOTES.md
@@ -1,13 +1,64 @@
-## Local Build
+# Setting up and building
+## Prerequisites
+ * Java 11 SDK
+ * Maven 3.6.0+ (for building)
+ 
+## Building Ignite
+Ignite follows standard guidelines for multi-module maven projects, so it can 
be easily built using the following 
+command from the project root directory (you can disable the tests when 
building using `-DskipTests`):
 
 mvn clean install [-DskipTests]
 
 Upon completion, you will find the CLI tool under `modules/cli/target` 
directory.
 Use `ignite` on Linux and MacOS, or `ignite.exe` on Windows. 
 
-## License Headers Check
+### Running tests
+To run unit tests only, use the following command:
 
+mvn test
+
+Before running integration tests, make sure to build the project using the 
``package`` target.
+
+To run unit + integration tests, use the following command:
+
+mvn integration-test
+
+To run integration tests only, use the following command:
+
+mvn integration-test -Dskip.surefire.tests=true
+
+### Sanity check targets
+Use the following commands to run generic sanity checks before submitting a PR.
+
+RAT license validation:
+
 mvn validate
+
+Checkstyle code validation:
+
+mvn checkstyle:checkstyle:aggregate
+
+PMD static code analysis
+
+mvn compile pmd:check 
+
+
+## Setting up IntelliJ Idea project
+You can quickly import Ignite project to your IDE using the root `pom.xml` 
file. In IntelliJ, choose `Open Project` 
+from the `Quick Start` box or choose `Open...` from the `File` menu and select 
the root `pom.xml` file.
+
+After opening the project in IntelliJ, double check that the Java SDK is 
properly configured for the project:
+
+ * Open the `File` menu and select `Project Structure...`
+ * In the SDKs section, ensure that a 1.11 JDK is selected (create one if none 
exist)
+ * In the `Project` section, make sure the project language level is set to 
11.0 as Ignite makes use of several Java 11 
+ language features
+ 
+Ignite uses machine code generation for some of it's modules. To generate 
necessary production code, build the project
+using maven (see Building Ignite).
+
+## Code structure
+High-level modules structure and detailed modules description can be found in 
the [modules readme](modules/README.md).
 
 ## Release candidate verification
 
diff --git a/modules/DEVNOTES.md b/modules/DEVNOTES.md
deleted file mode 100644
index 8e6d2a1..000
--- a/modules/DEVNOTES.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# Setting up and building
-## Prerequisites
- * Java 11 SDK
- * Maven 3.6.0+ (for building)
- 
-## Building Ignite
-Ignite follows standard guidelines for multi-module maven projects, so it can 
be easily built using the following 
-command from the project root directory:
-```commandline
-mvn clean install
-```
-You can disable the tests when building using the following command:
-```commandline
-mvn clean install -DskipTests
-```
-
-### Running tests
-To run unit tests only, use the following command:
-```commandline
-mvn test
-```
-
-Before running integration tests, make sure to build the project using the 
``package`` target.
-
-To run unit + integration tests, use the following command:
-```commandline
-mvn integration-test
-```
-
-To run integration tests only, use the following command:
-```commandline
-mvn integration-test -Dskip.surefire.tests=true
-``` 
-
-## Setting up IntelliJ Idea project
-You can quickly import Ignite project to your IDE using the root `pom.xml` 
file. In IntelliJ, choose `Open Project` 
-from the `Quick Start` box or choose `Open...` from the `File` menu and select 
the root `pom.xml` file.
-
-After opening the project in IntelliJ, double check that the Java SDK is 
properly configured for the project:
-
- * Open the `File` menu and select `Project Structure...`
- * In the SDKs section, ensure that a 1.11 JDK is selected (create one if none 
exist)
- * In the `Project` section, make sure the project language level is set

[ignite-3] branch ignite-14272 updated: IGNITE-14272 DEVNOTES.md moved to proper location, added draft modules structure

2021-03-10 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-14272
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/ignite-14272 by this push:
 new c024eb6  IGNITE-14272 DEVNOTES.md moved to proper location, added 
draft modules structure
c024eb6 is described below

commit c024eb664bb99162727d06b7640be75b55e13271
Author: Alexey Goncharuk 
AuthorDate: Wed Mar 10 18:17:04 2021 +0300

IGNITE-14272 DEVNOTES.md moved to proper location, added draft modules 
structure
---
 modules/network/README.md | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/modules/network/README.md b/modules/network/README.md
index faddaab..14ce10e 100644
--- a/modules/network/README.md
+++ b/modules/network/README.md
@@ -15,4 +15,9 @@ receiving messages across nodes in the cluster. Several 
delivery guarantee optio
   target cluster member left the cluster. Internally, the networking module 
preserves a queue which orders scheduled
   messages and persistently attempts to establish a connection and deliver 
scheduled messages in that particular order.
   Messages sent via patient mode cannot be arbitrarily dropped and are kept in 
a memory buffer until either they are 
-  delivered or a destination node is reported as failed. 
+  delivered or a destination node is reported as failed.
+ 
+On top of the described primitives, the networking module provides a 
higher-level request-response primitive which can
+be thought of as an RPC call, implying a single response for the given 
request. This primitive requires that the message
+being sent has a unique identifier that can be matched with response on 
receipt.
+  



[ignite-3] 01/01: IGNITE-14272 DEVNOTES.md moved to proper location, added draft modules structure

2021-03-10 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-14272
in repository https://gitbox.apache.org/repos/asf/ignite-3.git

commit a16573fe2d0ca341d4b9df8af5f76bb916eeddc8
Author: Alexey Goncharuk 
AuthorDate: Wed Mar 10 15:39:30 2021 +0300

IGNITE-14272 DEVNOTES.md moved to proper location, added draft modules 
structure
---
 DEVNOTES.md| 55 +-
 modules/DEVNOTES.md| 47 --
 modules/README.md  | 19 
 .../configuration-annotation-processor/README.md   |  5 ++
 modules/network/README.md  | 18 +++
 5 files changed, 95 insertions(+), 49 deletions(-)

diff --git a/DEVNOTES.md b/DEVNOTES.md
index 5575f29..0185e9b 100644
--- a/DEVNOTES.md
+++ b/DEVNOTES.md
@@ -1,13 +1,64 @@
-## Local Build
+# Setting up and building
+## Prerequisites
+ * Java 11 SDK
+ * Maven 3.6.0+ (for building)
+ 
+## Building Ignite
+Ignite follows standard guidelines for multi-module maven projects, so it can 
be easily built using the following 
+command from the project root directory (you can disable the tests when 
building using `-DskipTests`):
 
 mvn clean install [-DskipTests]
 
 Upon completion, you will find the CLI tool under `modules/cli/target` 
directory.
 Use `ignite` on Linux and MacOS, or `ignite.exe` on Windows. 
 
-## License Headers Check
+### Running tests
+To run unit tests only, use the following command:
 
+mvn test
+
+Before running integration tests, make sure to build the project using the 
``package`` target.
+
+To run unit + integration tests, use the following command:
+
+mvn integration-test
+
+To run integration tests only, use the following command:
+
+mvn integration-test -Dskip.surefire.tests=true
+
+### Sanity check targets
+Use the following commands to run generic sanity checks before submitting a PR.
+
+RAT license validation:
+
 mvn validate
+
+Checkstyle code validation:
+
+mvn checkstyle:checkstyle:aggregate
+
+PMD static code analysis
+
+mvn compile pmd:check 
+
+
+## Setting up IntelliJ Idea project
+You can quickly import Ignite project to your IDE using the root `pom.xml` 
file. In IntelliJ, choose `Open Project` 
+from the `Quick Start` box or choose `Open...` from the `File` menu and select 
the root `pom.xml` file.
+
+After opening the project in IntelliJ, double check that the Java SDK is 
properly configured for the project:
+
+ * Open the `File` menu and select `Project Structure...`
+ * In the SDKs section, ensure that a 1.11 JDK is selected (create one if none 
exist)
+ * In the `Project` section, make sure the project language level is set to 
11.0 as Ignite makes use of several Java 11 
+ language features
+ 
+Ignite uses machine code generation for some of it's modules. To generate 
necessary production code, build the project
+using maven (see Building Ignite).
+
+## Code structure
+High-level modules structure and detailed modules description can be found in 
the [modules readme](modules/README.md).
 
 ## Release candidate verification
 
diff --git a/modules/DEVNOTES.md b/modules/DEVNOTES.md
deleted file mode 100644
index 8e6d2a1..000
--- a/modules/DEVNOTES.md
+++ /dev/null
@@ -1,47 +0,0 @@
-# Setting up and building
-## Prerequisites
- * Java 11 SDK
- * Maven 3.6.0+ (for building)
- 
-## Building Ignite
-Ignite follows standard guidelines for multi-module maven projects, so it can 
be easily built using the following 
-command from the project root directory:
-```commandline
-mvn clean install
-```
-You can disable the tests when building using the following command:
-```commandline
-mvn clean install -DskipTests
-```
-
-### Running tests
-To run unit tests only, use the following command:
-```commandline
-mvn test
-```
-
-Before running integration tests, make sure to build the project using the 
``package`` target.
-
-To run unit + integration tests, use the following command:
-```commandline
-mvn integration-test
-```
-
-To run integration tests only, use the following command:
-```commandline
-mvn integration-test -Dskip.surefire.tests=true
-``` 
-
-## Setting up IntelliJ Idea project
-You can quickly import Ignite project to your IDE using the root `pom.xml` 
file. In IntelliJ, choose `Open Project` 
-from the `Quick Start` box or choose `Open...` from the `File` menu and select 
the root `pom.xml` file.
-
-After opening the project in IntelliJ, double check that the Java SDK is 
properly configured for the project:
-
- * Open the `File` menu and select `Project Structure...`
- * In the SDKs section, ensure that a 1.11 JDK is selected (create one if none 
exist)
- * In the `Project` section, make sure the project language level is set to 
11.0 as Ignite makes use of several Java 11 
- language features
- 
-Ignite uses machine code generation for some of it's modules. To generate 
necessary production

[ignite-3] branch ignite-14272 created (now a16573f)

2021-03-10 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to branch ignite-14272
in repository https://gitbox.apache.org/repos/asf/ignite-3.git.


  at a16573f  IGNITE-14272 DEVNOTES.md moved to proper location, added 
draft modules structure

This branch includes the following new commits:

 new a16573f  IGNITE-14272 DEVNOTES.md moved to proper location, added 
draft modules structure

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




[ignite-3] branch ignite-13618 updated: IGNITE-13618 Whitespace

2021-03-10 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-13618
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/ignite-13618 by this push:
 new fc0783c  IGNITE-13618 Whitespace
fc0783c is described below

commit fc0783c3a0e68308be10f89c42c9616e54a5fbca
Author: Alexey Goncharuk 
AuthorDate: Wed Mar 10 15:32:24 2021 +0300

IGNITE-13618 Whitespace
---
 .../apache/ignite/internal/schema/SchemaDescriptorTest.java  | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git 
a/modules/commons/src/test/java/org/apache/ignite/internal/schema/SchemaDescriptorTest.java
 
b/modules/commons/src/test/java/org/apache/ignite/internal/schema/SchemaDescriptorTest.java
index 13e5158..d58ad99 100644
--- 
a/modules/commons/src/test/java/org/apache/ignite/internal/schema/SchemaDescriptorTest.java
+++ 
b/modules/commons/src/test/java/org/apache/ignite/internal/schema/SchemaDescriptorTest.java
@@ -28,14 +28,14 @@ public class SchemaDescriptorTest {
 public void testColumnIndexedAccess() {
 SchemaDescriptor desc = new SchemaDescriptor(1,
 new Column[] {
-new Column("columnA",NativeType.BYTE, false),
-new Column("columnB",NativeType.UUID, false),
-new Column("columnC",NativeType.INTEGER, false),
+new Column("columnA", NativeType.BYTE, false),
+new Column("columnB", NativeType.UUID, false),
+new Column("columnC", NativeType.INTEGER, false),
 },
 new Column[] {
-new Column("columnD",NativeType.BYTE, false),
-new Column("columnE",NativeType.UUID, false),
-new Column("columnF",NativeType.INTEGER, false),
+new Column("columnD", NativeType.BYTE, false),
+new Column("columnE", NativeType.UUID, false),
+new Column("columnF", NativeType.INTEGER, false),
 }
 );
 



[ignite-3] branch ignite-13618 updated: IGNITE-13618 Introduce absolute column index (test)

2021-03-10 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-13618
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/ignite-13618 by this push:
 new f1dd492  IGNITE-13618 Introduce absolute column index (test)
f1dd492 is described below

commit f1dd49281d1c5a0f80bf3b5153fdbe36d66afc5d
Author: Alexey Goncharuk 
AuthorDate: Wed Mar 10 15:13:44 2021 +0300

IGNITE-13618 Introduce absolute column index (test)
---
 .../internal/schema/SchemaDescriptorTest.java  | 45 ++
 1 file changed, 45 insertions(+)

diff --git 
a/modules/commons/src/test/java/org/apache/ignite/internal/schema/SchemaDescriptorTest.java
 
b/modules/commons/src/test/java/org/apache/ignite/internal/schema/SchemaDescriptorTest.java
new file mode 100644
index 000..13e5158
--- /dev/null
+++ 
b/modules/commons/src/test/java/org/apache/ignite/internal/schema/SchemaDescriptorTest.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.schema;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.Test;
+
+/**
+ *
+ */
+public class SchemaDescriptorTest {
+@Test
+public void testColumnIndexedAccess() {
+SchemaDescriptor desc = new SchemaDescriptor(1,
+new Column[] {
+new Column("columnA",NativeType.BYTE, false),
+new Column("columnB",NativeType.UUID, false),
+new Column("columnC",NativeType.INTEGER, false),
+},
+new Column[] {
+new Column("columnD",NativeType.BYTE, false),
+new Column("columnE",NativeType.UUID, false),
+new Column("columnF",NativeType.INTEGER, false),
+}
+);
+
+for (int i = 0; i < desc.length(); i++)
+Assertions.assertEquals(i, desc.column(i).schemaIndex());
+}
+}



[ignite-3] branch ignite-13618 updated: IGNITE-13618 Introduce absolute column index

2021-03-10 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-13618
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/ignite-13618 by this push:
 new e931382  IGNITE-13618 Introduce absolute column index
e931382 is described below

commit e93138240525030c1da6cfdd4cd4991ad3e536fe
Author: Alexey Goncharuk 
AuthorDate: Wed Mar 10 14:53:36 2021 +0300

IGNITE-13618 Introduce absolute column index
---
 .../org/apache/ignite/internal/schema/Column.java  | 28 -
 .../org/apache/ignite/internal/schema/Columns.java | 13 +++-
 .../ignite/internal/schema/SchemaDescriptor.java   |  6 +-
 .../ignite/internal/schema/TupleAssembler.java |  8 ++-
 .../benchmarks/SerializerBenchmarkTest.java| 21 ---
 .../apache/ignite/internal/schema/ColumnsTest.java | 69 +-
 .../apache/ignite/internal/schema/TupleTest.java   |  2 +-
 .../schema/marshaller/JavaSerializerTest.java  | 16 ++---
 8 files changed, 121 insertions(+), 42 deletions(-)

diff --git 
a/modules/commons/src/main/java/org/apache/ignite/internal/schema/Column.java 
b/modules/commons/src/main/java/org/apache/ignite/internal/schema/Column.java
index b93c4d3..1758f77 100644
--- 
a/modules/commons/src/main/java/org/apache/ignite/internal/schema/Column.java
+++ 
b/modules/commons/src/main/java/org/apache/ignite/internal/schema/Column.java
@@ -24,6 +24,9 @@ package org.apache.ignite.internal.schema;
  * flag is not taken into account when columns are compared.
  */
 public class Column implements Comparable {
+/** Absolute index in schema descriptor. */
+private final int schemaIndex;
+
 /**
  * Column name.
  */
@@ -49,12 +52,35 @@ public class Column implements Comparable {
 NativeType type,
 boolean nullable
 ) {
+this(-1, name, type, nullable);
+}
+
+/**
+ * @param schemaIndex Absolute index of this column in its schema 
descriptor.
+ * @param name Column name.
+ * @param type An instance of column data type.
+ * @param nullable If {@code false}, null values will not be allowed for 
this column.
+ */
+Column(
+int schemaIndex,
+String name,
+NativeType type,
+boolean nullable
+) {
+this.schemaIndex = schemaIndex;
 this.name = name;
 this.type = type;
 this.nullable = nullable;
 }
 
 /**
+ * @return Absolute index of this column in its schema descriptor.
+ */
+public int schemaIndex() {
+return schemaIndex;
+}
+
+/**
  * @return Column name.
  */
 public String name() {
@@ -106,6 +132,6 @@ public class Column implements Comparable {
 
 /** {@inheritDoc} */
 @Override public String toString() {
-return "Column [name=" + name + ", type=" + type + ", nullable=" + 
nullable + ']';
+return "Column [idx=" + schemaIndex + ", name=" + name + ", type=" + 
type + ", nullable=" + nullable + ']';
 }
 }
diff --git 
a/modules/commons/src/main/java/org/apache/ignite/internal/schema/Columns.java 
b/modules/commons/src/main/java/org/apache/ignite/internal/schema/Columns.java
index 5f0e795..0773b58 100644
--- 
a/modules/commons/src/main/java/org/apache/ignite/internal/schema/Columns.java
+++ 
b/modules/commons/src/main/java/org/apache/ignite/internal/schema/Columns.java
@@ -92,8 +92,8 @@ public class Columns {
  *
  * @param cols Array of columns.
  */
-public Columns(Column... cols) {
-this.cols = sortedCopy(cols);
+Columns(int baseSchemaIdx, Column... cols) {
+this.cols = sortedCopy(baseSchemaIdx, cols);
 
 firstVarlenColIdx = findFirstVarlenColumn();
 
@@ -167,14 +167,21 @@ public class Columns {
 }
 
 /**
+ * @param schemaBaseIdx Base index of this columns object in its schema.
  * @param cols User columns.
  * @return A copy of user columns array sorted in column order.
  */
-private Column[] sortedCopy(Column[] cols) {
+private Column[] sortedCopy(int schemaBaseIdx, Column[] cols) {
 Column[] cp = Arrays.copyOf(cols, cols.length);
 
 Arrays.sort(cp);
 
+for (int i = 0; i < cp.length; i++) {
+Column c = cp[i];
+
+cp[i] = new Column(schemaBaseIdx + i, c.name(), c.type(), 
c.nullable());
+}
+
 return cp;
 }
 
diff --git 
a/modules/commons/src/main/java/org/apache/ignite/internal/schema/SchemaDescriptor.java
 
b/modules/commons/src/main/java/org/apache/ignite/internal/schema/SchemaDescriptor.java
index 1f43e67..f2855b1 100644
--- 
a/modules/commons/src/main/java/org/apache/ignite/internal/schema/SchemaDescriptor.java
+++ 
b/modules/commons/src/main/java/org/apache/ignite/internal/schema/SchemaDescriptor.java
@@ -35,10 +35,10 @@ public class SchemaDescriptor {
  * @param keyCol

[ignite-3] branch main updated: IGNITE-14132 Add configuration to separate Integration and Unit tests (#50)

2021-03-01 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
 new 6cec7cb  IGNITE-14132 Add configuration to separate Integration and 
Unit tests (#50)
6cec7cb is described below

commit 6cec7cb45cb793720131ded060fd0f860bee1712
Author: Peter Ivanov 
AuthorDate: Mon Mar 1 12:03:50 2021 +0300

IGNITE-14132 Add configuration to separate Integration and Unit tests (#50)
---
 modules/DEVNOTES.md | 47 +++
 parent/pom.xml  |  1 +
 2 files changed, 48 insertions(+)

diff --git a/modules/DEVNOTES.md b/modules/DEVNOTES.md
new file mode 100644
index 000..8e6d2a1
--- /dev/null
+++ b/modules/DEVNOTES.md
@@ -0,0 +1,47 @@
+# Setting up and building
+## Prerequisites
+ * Java 11 SDK
+ * Maven 3.6.0+ (for building)
+ 
+## Building Ignite
+Ignite follows standard guidelines for multi-module maven projects, so it can 
be easily built using the following 
+command from the project root directory:
+```commandline
+mvn clean install
+```
+You can disable the tests when building using the following command:
+```commandline
+mvn clean install -DskipTests
+```
+
+### Running tests
+To run unit tests only, use the following command:
+```commandline
+mvn test
+```
+
+Before running integration tests, make sure to build the project using the 
``package`` target.
+
+To run unit + integration tests, use the following command:
+```commandline
+mvn integration-test
+```
+
+To run integration tests only, use the following command:
+```commandline
+mvn integration-test -Dskip.surefire.tests=true
+``` 
+
+## Setting up IntelliJ Idea project
+You can quickly import Ignite project to your IDE using the root `pom.xml` 
file. In IntelliJ, choose `Open Project` 
+from the `Quick Start` box or choose `Open...` from the `File` menu and select 
the root `pom.xml` file.
+
+After opening the project in IntelliJ, double check that the Java SDK is 
properly configured for the project:
+
+ * Open the `File` menu and select `Project Structure...`
+ * In the SDKs section, ensure that a 1.11 JDK is selected (create one if none 
exist)
+ * In the `Project` section, make sure the project language level is set to 
11.0 as Ignite makes use of several Java 11 
+ language features
+ 
+Ignite uses machine code generation for some of it's modules. To generate 
necessary production code, build the project
+using maven (see Building Ignite).
diff --git a/parent/pom.xml b/parent/pom.xml
index 573cff7..29cd9e3 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -394,6 +394,7 @@
 
 **/IT*.java
 
+${skip.surefire.tests}
 
 
 



[ignite] branch master updated: IGNITE-14112 Revisit usages of GridClosureProcessor.runLocalSafe and GridClosureProcessor.callLocalSafe methods - Fixes #8743.

2021-02-08 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
 new 21f992a  IGNITE-14112 Revisit usages of 
GridClosureProcessor.runLocalSafe and GridClosureProcessor.callLocalSafe 
methods - Fixes #8743.
21f992a is described below

commit 21f992a6958529cafd389505a05ad3506a565858
Author: Alexey Goncharuk 
AuthorDate: Mon Feb 8 17:40:13 2021 +0300

IGNITE-14112 Revisit usages of GridClosureProcessor.runLocalSafe and 
GridClosureProcessor.callLocalSafe methods - Fixes #8743.

Signed-off-by: Alexey Goncharuk 
---
 .../ignite/internal/IgniteSchedulerImpl.java   |  4 +-
 .../processors/cache/CacheGroupContext.java|  3 +-
 .../processors/cache/GridCacheAdapter.java | 28 ++--
 .../processors/cache/GridCacheIoManager.java   |  3 +-
 .../processors/cache/GridCacheMvccManager.java |  2 +-
 .../cache/GridCachePartitionExchangeManager.java   |  3 +-
 .../cache/GridDeferredAckMessageSender.java|  3 +-
 .../distributed/GridCacheTxRecoveryFuture.java |  3 +-
 .../cache/distributed/dht/GridDhtCacheAdapter.java |  2 +-
 .../dht/GridDhtTxAbstractEnlistFuture.java |  3 +-
 .../dht/GridPartitionedSingleGetFuture.java|  2 +-
 .../atomic/GridNearAtomicSingleUpdateFuture.java   |  5 ++-
 .../dht/atomic/GridNearAtomicUpdateFuture.java |  5 ++-
 .../dht/preloader/GridDhtPartitionDemander.java|  5 ++-
 .../preloader/GridDhtPartitionsExchangeFuture.java |  4 +-
 .../dht/preloader/latch/ExchangeLatchManager.java  |  3 +-
 .../cache/distributed/near/GridNearTxLocal.java|  3 +-
 .../processors/cache/local/GridLocalCache.java |  6 +--
 .../cache/local/atomic/GridLocalAtomicCache.java   |  9 ++--
 .../processors/cache/mvcc/MvccProcessorImpl.java   |  3 +-
 .../query/GridCacheDistributedQueryFuture.java |  6 +--
 .../query/GridCacheDistributedQueryManager.java|  4 +-
 .../continuous/CacheContinuousQueryHandler.java|  3 +-
 .../cache/transactions/IgniteTxManager.java|  5 ++-
 .../PartitionCountersNeighborcastFuture.java   |  3 +-
 .../processors/cluster/ClusterProcessor.java   |  5 ++-
 .../cluster/GridClusterStateProcessor.java |  3 +-
 .../continuous/GridContinuousProcessor.java|  3 +-
 .../datastreamer/DataStreamProcessor.java  |  3 +-
 .../processors/datastreamer/DataStreamerImpl.java  |  5 ++-
 .../datastructures/DataStructuresProcessor.java|  5 ++-
 .../marshaller/GridMarshallerMappingProcessor.java |  3 +-
 .../PerformanceStatisticsProcessor.java|  3 +-
 .../handlers/cache/GridCacheCommandHandler.java|  5 ++-
 .../DataStructuresCommandHandler.java  |  6 +--
 .../rest/handlers/query/QueryCommandHandler.java   |  8 ++--
 .../processors/service/GridServiceProcessor.java   |  3 +-
 .../processors/service/ServiceDeploymentTask.java  |  3 +-
 .../internal/processors/task/GridTaskWorker.java   |  5 ++-
 .../internal/visor/query/VisorQueryUtils.java  |  5 ++-
 .../ignite/p2p/GridP2PLocalDeploymentSelfTest.java |  2 +-
 .../query/h2/twostep/GridMapQueryExecutor.java | 50 +++---
 42 files changed, 136 insertions(+), 101 deletions(-)

diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteSchedulerImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteSchedulerImpl.java
index 804c0ff..6930d5c 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteSchedulerImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteSchedulerImpl.java
@@ -30,6 +30,8 @@ import org.apache.ignite.IgniteScheduler;
 import org.apache.ignite.internal.processors.security.OperationSecurityContext;
 import org.apache.ignite.internal.processors.security.SecurityUtils;
 import org.apache.ignite.internal.util.future.IgniteFutureImpl;
+import org.apache.ignite.internal.util.lang.GridPlainCallable;
+import org.apache.ignite.internal.util.lang.GridPlainRunnable;
 import org.apache.ignite.internal.util.typedef.internal.A;
 import org.apache.ignite.lang.IgniteFuture;
 import org.apache.ignite.scheduler.SchedulerFuture;
@@ -181,7 +183,7 @@ public class IgniteSchedulerImpl implements 
IgniteScheduler, Externalizable {
 }
 
 /** */
-private class SecurityAwareClosure implements Runnable, Callable, 
GridInternalWrapper {
+private class SecurityAwareClosure implements GridPlainRunnable, 
GridPlainCallable, GridInternalWrapper {
 /** Security subject id. */
 private final UUID secSubjId;
 
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupContext.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/CacheGroupContext.java
index 1994457..8492982 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache

[ignite] branch sql-calcite updated: IGNITE-13729 Fix type casts for aggregates causing 'Not a boolean expression' error - Fixes #8738.

2021-02-08 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch sql-calcite
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/sql-calcite by this push:
 new 2b26b33  IGNITE-13729 Fix type casts for aggregates causing 'Not a 
boolean expression' error - Fixes #8738.
2b26b33 is described below

commit 2b26b335140533c35ddc0cf883ae265fae94b3b8
Author: korlov42 
AuthorDate: Mon Feb 8 17:30:47 2021 +0300

IGNITE-13729 Fix type casts for aggregates causing 'Not a boolean 
expression' error - Fixes #8738.
---
 .../query/calcite/exec/exp/agg/Accumulators.java   |   7 +-
 .../calcite/exec/exp/agg/AccumulatorsFactory.java  |   3 +-
 .../query/calcite/AggregatesIntegrationTest.java   | 130 +
 .../query/calcite/CalciteQueryProcessorTest.java   |   3 +-
 .../ignite/testsuites/IgniteCalciteTestSuite.java  |   4 +-
 5 files changed, 141 insertions(+), 6 deletions(-)

diff --git 
a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/agg/Accumulators.java
 
b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/agg/Accumulators.java
index f458fee..afb0ea3 100644
--- 
a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/agg/Accumulators.java
+++ 
b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/agg/Accumulators.java
@@ -281,7 +281,10 @@ public class Accumulators {
 
 /** {@inheritDoc} */
 @Override public void add(Object... args) {
-cnt++;
+assert F.isEmpty(args) || args.length == 1;
+
+if (F.isEmpty(args) || args[0] != null)
+cnt++;
 }
 
 /** {@inheritDoc} */
@@ -297,7 +300,7 @@ public class Accumulators {
 
 /** {@inheritDoc} */
 @Override public List argumentTypes(IgniteTypeFactory 
typeFactory) {
-return 
F.asList(typeFactory.createTypeWithNullability(typeFactory.createSqlType(BIGINT),
 false));
+return 
F.asList(typeFactory.createTypeWithNullability(typeFactory.createSqlType(ANY), 
false));
 }
 
 /** {@inheritDoc} */
diff --git 
a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/agg/AccumulatorsFactory.java
 
b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/agg/AccumulatorsFactory.java
index 09344e6..7cd8ece 100644
--- 
a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/agg/AccumulatorsFactory.java
+++ 
b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/exp/agg/AccumulatorsFactory.java
@@ -29,6 +29,7 @@ import com.google.common.cache.LoadingCache;
 import com.google.common.collect.ImmutableList;
 import com.google.common.primitives.Primitives;
 import org.apache.calcite.DataContext;
+import org.apache.calcite.adapter.enumerable.EnumUtils;
 import org.apache.calcite.adapter.enumerable.JavaRowFormat;
 import org.apache.calcite.adapter.enumerable.PhysTypeImpl;
 import org.apache.calcite.adapter.enumerable.RexToLixTranslator;
@@ -112,7 +113,7 @@ public class AccumulatorsFactory implements 
Supplierhttp://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.processors.query.calcite;
+
+import org.apache.ignite.Ignite;
+import org.apache.ignite.IgniteCache;
+import org.apache.ignite.cache.QueryEntity;
+import org.apache.ignite.cache.query.annotations.QuerySqlField;
+import org.apache.ignite.configuration.CacheConfiguration;
+import org.apache.ignite.internal.IgniteEx;
+import org.apache.ignite.internal.processors.query.QueryEngine;
+import org.apache.ignite.internal.processors.query.calcite.util.Commons;
+import org.apache.ignite.internal.util.typedef.F;
+import org.apache.ignite.internal.util.typedef.G;
+import org.apache.ignite.testframework.junits.WithSystemProperty;
+import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest;
+import org.junit.Test;
+
+/**
+ *
+ */
+@WithSystemProperty(key = "calcite.debug", value = "false")
+public class AggregatesIntegrationTest extends GridCommonAbstractTest {
+/** */
+private static IgniteEx client;
+
+/** {@inheritDoc} */
+@Override protected void beforeTestsStarted() throws Exception {
+startGrids(3);
+
+client = startClientGrid();
+}
+
+/** {@inheritDoc} */
+@Override protected void afterTest() {
+for (Ignite ign : G.allGrids()) {
+   

[ignite] branch sql-calcite updated: IGNITE-13973 Fix query hang if an assertion is thrown during the query execution - Fixes #8709.

2021-02-08 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch sql-calcite
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/sql-calcite by this push:
 new a823f50  IGNITE-13973 Fix query hang if an assertion is thrown during 
the query execution - Fixes #8709.
a823f50 is described below

commit a823f507d6e6893a53ac7a01e10943949cfa3384
Author: korlov42 
AuthorDate: Mon Feb 8 17:10:59 2021 +0300

IGNITE-13973 Fix query hang if an assertion is thrown during the query 
execution - Fixes #8709.

Signed-off-by: Alexey Goncharuk 
---
 .../query/calcite/exec/ExchangeServiceImpl.java|  24 ++-
 .../query/calcite/exec/ExecutionContext.java   |  20 ++-
 .../query/calcite/exec/ExecutionServiceImpl.java   |   7 +-
 .../query/calcite/exec/LogicalRelImplementor.java  |   5 +-
 .../query/calcite/exec/rel/AbstractNode.java   |   4 +-
 .../query/calcite/exec/rel/AggregateNode.java  |  68 +++
 .../exec/rel/CorrelatedNestedLoopJoinNode.java | 132 ++
 .../query/calcite/exec/rel/Downstream.java |   6 +-
 .../query/calcite/exec/rel/FilterNode.java |  60 +++
 .../processors/query/calcite/exec/rel/Inbox.java   |  66 +++
 .../query/calcite/exec/rel/IndexSpoolNode.java |  51 ++
 .../query/calcite/exec/rel/LimitNode.java  |  37 ++--
 .../query/calcite/exec/rel/MergeJoinNode.java  | 106 ---
 .../query/calcite/exec/rel/ModifyNode.java |  67 +++
 .../query/calcite/exec/rel/NestedLoopJoinNode.java | 108 
 .../processors/query/calcite/exec/rel/Node.java|   3 +-
 .../processors/query/calcite/exec/rel/Outbox.java  |  50 ++
 .../query/calcite/exec/rel/ProjectNode.java|  33 +---
 .../query/calcite/exec/rel/RootNode.java   |  16 +-
 .../query/calcite/exec/rel/ScanNode.java   |  32 ++--
 .../query/calcite/exec/rel/SortNode.java   |  65 +++
 .../query/calcite/exec/rel/TableSpoolNode.java |  59 +++
 .../query/calcite/exec/rel/UnionAllNode.java   |  43 ++---
 .../query/calcite/message/ErrorMessage.java|   3 +-
 .../CalciteErrorHandlilngIntegrationTest.java  | 196 +
 .../calcite/exec/rel/ContinuousExecutionTest.java  |   2 +-
 .../query/calcite/exec/rel/ExecutionTest.java  |  85 +
 .../query/calcite/planner/PlannerTest.java |  10 +-
 .../ignite/testsuites/IgniteCalciteTestSuite.java  |   2 +
 .../processors/query/GridQueryProcessor.java   |   2 +-
 modules/core/src/test/config/log4j-test.xml|   4 +
 31 files changed, 696 insertions(+), 670 deletions(-)

diff --git 
a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExchangeServiceImpl.java
 
b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExchangeServiceImpl.java
index 6ed92b6..2da1b9d 100644
--- 
a/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExchangeServiceImpl.java
+++ 
b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/exec/ExchangeServiceImpl.java
@@ -159,7 +159,7 @@ public class ExchangeServiceImpl extends AbstractService 
implements ExchangeServ
 if (!F.isEmpty(inboxes)) {
 for (Inbox inbox : inboxes) {
 inbox.context().cancel();
-inbox.context().execute(inbox::close);
+inbox.context().execute(inbox::close, inbox::onError);
 }
 }
 else if (log.isDebugEnabled()) {
@@ -177,7 +177,7 @@ public class ExchangeServiceImpl extends AbstractService 
implements ExchangeServ
 if (!F.isEmpty(outboxes)) {
 for (Outbox outbox : outboxes) {
 outbox.context().cancel();
-outbox.context().execute(outbox::close);
+outbox.context().execute(outbox::close, outbox::onError);
 }
 }
 else if (log.isDebugEnabled()) {
@@ -193,8 +193,14 @@ public class ExchangeServiceImpl extends AbstractService 
implements ExchangeServ
 protected void onMessage(UUID nodeId, QueryBatchAcknowledgeMessage msg) {
 Outbox outbox = mailboxRegistry().outbox(msg.queryId(), 
msg.exchangeId());
 
-if (outbox != null)
-outbox.onAcknowledge(nodeId, msg.batchId());
+if (outbox != null) {
+try {
+outbox.onAcknowledge(nodeId, msg.batchId());
+}
+catch (Throwable t) {
+outbox.onError(t);
+}
+}
 else if (log.isDebugEnabled()) {
 log.debug("Stale acknowledge message received: [" +
 "nodeId=" + nodeId + ", " +
@@ -218,8 +224,14 @@ public class ExchangeServiceImpl extends AbstractService 
implements ExchangeServ
 inbox = mailboxRegistry().register(newInbox);
 

[ignite] branch master updated: IGNITE-14111 Add javadoc for AbstractDataPageIO - Fixes #8742.

2021-02-02 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
 new 02043cc  IGNITE-14111 Add javadoc for AbstractDataPageIO - Fixes #8742.
02043cc is described below

commit 02043ccf0fa42ce0892649d4303d0020e7938faf
Author: Alexey Goncharuk 
AuthorDate: Tue Feb 2 16:28:24 2021 +0300

IGNITE-14111 Add javadoc for AbstractDataPageIO - Fixes #8742.

Signed-off-by: Alexey Goncharuk 
---
 .../persistence/tree/io/AbstractDataPageIO.java| 124 +
 1 file changed, 124 insertions(+)

diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/tree/io/AbstractDataPageIO.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/tree/io/AbstractDataPageIO.java
index 4708f423..55690b8 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/tree/io/AbstractDataPageIO.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/tree/io/AbstractDataPageIO.java
@@ -37,6 +37,130 @@ import static 
org.apache.ignite.internal.util.GridUnsafe.bufferAddress;
 
 /**
  * Data pages IO.
+ *
+ * Rows in a data page are organized into two arrays growing toward each 
other: items table and row data.
+ * 
+ * Items table contains direct or indirect items which locate a row within the 
page. Items table is stored at the
+ * beginning of a page. Each item has an item ID which serves as an external 
item reference
+ * (see {@link PageIdUtils#link(long, int)}) and can be either direct or 
indirect. The size of any item in the items
+ * table is 2 bytes. ID of a direct item is always the same as its index in 
items table so it is not stored in the
+ * item itself. ID of an indirect item may differ from its index (see example 
below) so it is stored it the item
+ * along with ID (index) of direct item.
+ * 
+ * Direct and indirect items are always placed in the items table in such a 
way that direct items are stored first,
+ * and indirect items are always stored after direct items. A data page 
explicitly stores both direct and indirect
+ * items count (see {@link #getDirectCount(long)} and {@link 
#getIndirectCount(long)}), so that the item type can be
+ * easily determined: items with indexes {@code [0, directCnt)} are always 
direct and items with indexes
+ * {@code [directCnt, directCnt + indirectCnt)} are always indirect. Having 
both direct and indirect items in a
+ * page allows page defragmentation without breaking external links. Total 
number of rows stored in a page is equal
+ * to the number of direct items.
+ * 
+ * The row data is stored at the end of the page; newer rows are stored closer 
to the end of the items table.
+ * Direct Items
+ * Direct items refer a stored row directly by offset in the page:
+ * 
+ * 
+-+
+ * | Direct Items . (rows data)
  |
+ * | (4000), (3800), (3600)   . row_2_  row_1_   row_0_
  |
+ * |  |   |   |_^   ^^ 
  |
+ * |  |   |_|| 
  |
+ * |  |__| 
  |
+ * | directCnt: 3  
  |
+ * | indirectCnt: 0
  |
+ * 
+-+
+ * 
+ * Direct item ID always matches it's index in the items table. The value of a 
direct item in the table is an
+ * offset of the row data within the page.
+ * Indirect Items
+ * An indirect item explicitly stores the indirect item ID (1 byte) and the 
index of the direct item it refers to
+ * (1 byte). The referred direct item (referrent) stores the actual offset of 
the row in the data page:
+ * 
+ * 
+-+
+ * |  Direct Items .. Indirect items  (rows data)  
  |
+ * |   
  |
+ * |  ⌄|   
  |
+ * | (3600), (3800), (3 -> 0)   row_2_  row_1_ 
  |
+ * |  |   |_^___^  
  |
+ * |  |_|  
  |
+ * | directCnt: 2  
  |
+ * | indirectCount

[ignite-3] branch main updated: IGNITE-14011 Add RAT, headers check, PMD, Idea Inspections, and code style suites for Ignite 3 (#28)

2021-01-20 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/ignite-3.git


The following commit(s) were added to refs/heads/main by this push:
 new df8229d  IGNITE-14011 Add RAT, headers check, PMD, Idea Inspections, 
and code style suites for Ignite 3 (#28)
df8229d is described below

commit df8229dac0a949ddce02a700a5544199d7b948c8
Author: Peter Ivanov 
AuthorDate: Wed Jan 20 15:29:45 2021 +0300

IGNITE-14011 Add RAT, headers check, PMD, Idea Inspections, and code style 
suites for Ignite 3 (#28)
---
 check-rules/checkstyle-rules.xml   | 109 ++
 check-rules/checkstyle-suppressions.xml|  24 ++
 check-rules/pmd-rules.xml  |  31 ++
 modules/cli-common/pom.xml |   7 +-
 modules/cli/pom.xml|  17 +-
 modules/configuration-annotation-processor/pom.xml |  24 +-
 modules/configuration/pom.xml  |   7 +-
 modules/ignite-runner/pom.xml  |  19 +-
 pom.xml => parent/pom.xml  | 120 +++
 pom.xml| 385 +
 10 files changed, 312 insertions(+), 431 deletions(-)

diff --git a/check-rules/checkstyle-rules.xml b/check-rules/checkstyle-rules.xml
new file mode 100644
index 000..36b4b86
--- /dev/null
+++ b/check-rules/checkstyle-rules.xml
@@ -0,0 +1,109 @@
+
+
+
+
+http://www.puppycrawl.com/dtds/configuration_1_3.dtd;>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/check-rules/checkstyle-suppressions.xml 
b/check-rules/checkstyle-suppressions.xml
new file mode 100644
index 000..3273169
--- /dev/null
+++ b/check-rules/checkstyle-suppressions.xml
@@ -0,0 +1,24 @@
+
+
+
+
+https://checkstyle.org/dtds/suppressions_1_2.dtd;>
+
+
diff --git a/check-rules/pmd-rules.xml b/check-rules/pmd-rules.xml
new file mode 100644
index 000..e10ea10
--- /dev/null
+++ b/check-rules/pmd-rules.xml
@@ -0,0 +1,31 @@
+
+
+
+
+http://pmd.sourceforge.net/ruleset/2.0.0;
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance;
+ xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 
http://pmd.sourceforge.net/ruleset_2_0_0.xsd;>
+
+
+PMD Ruleset for Apache Ignite
+
+
+
+
+
diff --git a/modules/cli-common/pom.xml b/modules/cli-common/pom.xml
index e932309..d6fd8c1 100644
--- a/modules/cli-common/pom.xml
+++ b/modules/cli-common/pom.xml
@@ -24,10 +24,11 @@
 
 
 org.apache.ignite
-apache-ignite
-3.0.0-SNAPSHOT
-../../pom.xml
+ignite-parent
+1
+../../parent/pom.xml
 
 
 ignite-cli-common
+3.0.0-SNAPSHOT
 
diff --git a/modules/cli/pom.xml b/modules/cli/pom.xml
index 42a8f9d..8c6a3d2 100644
--- a/modules/cli/pom.xml
+++ b/modules/cli/pom.xml
@@ -26,12 +26,13 @@
 
 
 org.apache.ignite
-apache-ignite
-3.0.0-SNAPSHOT
-../../pom.xml
+ignite-parent
+1
+../../parent/pom.xml
 
 
 ignite-cli
+3.0.0-SNAPSHOT
 
 
 
@@ -234,16 +235,6 @@
 true
 
 
-
-
-org.apache.rat
-apache-rat-plugin
-
-
-**/builtin_modules.conf
-
-
-
 
 
 
diff --git a/modules/configuration-annotation-processor/pom.xml 
b/modules/configuration-annotation-processor/pom.xml
index fa93d22..a986a59 100644
--- a/modules/configuration-annotation-processor/pom.xml
+++ b/modules/configuration-annotation-processor/pom.xml
@@ -26,12 +26,13 @@
 
 
 org.apache.ignite
-apache-ignite
-3.0.0-SNAPSHOT
-../../pom.xml
+ignite-parent
+1
+../../parent/pom.xml
 
 
 ignite-configuration-annotation-processor
+3.0.0-SNAPSHOT
 
 
 
@@ -70,6 +71,13 @@
 spoon-core
 test
 
+
+
+org.junit.jupiter
+junit-jupiter-engine
+test
+
+
 
 
 
@@ -96,16 +104,6 @@
 
 
 
-
-
-org.apache.rat
-apache-rat-plugin
-
-
-
src/main/resou

[ignite] branch master updated: IGNITE-13786 Add defragmentation-specific B+Tree optimizations - Fixes #8560.

2020-12-10 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
 new dc4b71b  IGNITE-13786 Add defragmentation-specific B+Tree 
optimizations - Fixes #8560.
dc4b71b is described below

commit dc4b71b230e289e5b0d99b00e0632c9d1d0e6e82
Author: ibessonov 
AuthorDate: Thu Dec 10 18:05:04 2020 +0300

IGNITE-13786 Add defragmentation-specific B+Tree optimizations - Fixes 
#8560.

Signed-off-by: Alexey Goncharuk 
---
 .../CachePartitionDefragmentationManager.java  | 24 ++
 .../cache/persistence/tree/BPlusTree.java  | 23 +
 .../cache/persistence/tree/util/InsertLast.java| 24 --
 .../persistence/IgnitePdsDefragmentationTest.java  |  2 +-
 .../defragmentation/IndexingDefragmentation.java   |  6 --
 5 files changed, 44 insertions(+), 35 deletions(-)

diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/defragmentation/CachePartitionDefragmentationManager.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/defragmentation/CachePartitionDefragmentationManager.java
index 75b3458..aa82a23 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/defragmentation/CachePartitionDefragmentationManager.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/cache/persistence/defragmentation/CachePartitionDefragmentationManager.java
@@ -93,6 +93,7 @@ import static 
org.apache.ignite.internal.processors.cache.persistence.Checkpoint
 import static 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.DEFRAGMENTATION_MAPPING_REGION_NAME;
 import static 
org.apache.ignite.internal.processors.cache.persistence.GridCacheDatabaseSharedManager.DEFRAGMENTATION_PART_REGION_NAME;
 import static 
org.apache.ignite.internal.processors.cache.persistence.defragmentation.DefragmentationFileUtils.batchRenameDefragmentedCacheGroupPartitions;
+import static 
org.apache.ignite.internal.processors.cache.persistence.defragmentation.DefragmentationFileUtils.defragmentedIndexFile;
 import static 
org.apache.ignite.internal.processors.cache.persistence.defragmentation.DefragmentationFileUtils.defragmentedIndexTmpFile;
 import static 
org.apache.ignite.internal.processors.cache.persistence.defragmentation.DefragmentationFileUtils.defragmentedPartFile;
 import static 
org.apache.ignite.internal.processors.cache.persistence.defragmentation.DefragmentationFileUtils.defragmentedPartMappingFile;
@@ -386,9 +387,9 @@ public class CachePartitionDefragmentationManager {
 partCtx.partPageMemory
 );
 
-partCtx.createNewCacheDataStore(offheap);
+partCtx.createNewCacheDataStore(offheap);
 
-copyPartitionData(partCtx, treeIter);
+copyPartitionData(partCtx, treeIter);
 
 DefragmentationPageReadWriteManager pageMgr = 
(DefragmentationPageReadWriteManager)partCtx.partPageMemory.pageManager();
 
@@ -450,7 +451,21 @@ public class CachePartitionDefragmentationManager {
 .futureFor(CheckpointState.FINISHED);
 }
 
+PageStore oldIdxPageStore = 
filePageStoreMgr.getStore(grpId, INDEX_PARTITION);
+
 idxDfrgFut = idxDfrgFut.chain(fut -> {
+if (log.isDebugEnabled()) {
+log.debug(S.toString(
+"Index partition defragmented",
+"grpId", grpId, false,
+"oldPages", oldIdxPageStore.pages(), false,
+"newPages", idxAllocationTracker.get() + 1, 
false,
+"pageSize", pageSize, false,
+"partFile", 
defragmentedIndexFile(workDir).getName(), false,
+"workDir", workDir, false
+));
+}
+
 oldPageMem.invalidate(grpId, 
PageIdAllocator.INDEX_PARTITION);
 
 PageMemoryEx partPageMem = 
(PageMemoryEx)partDataRegion.pageMemory();
@@ -476,8 +491,6 @@ public class CachePartitionDefragmentationManager {
 return null;
 });
 
-PageStore oldIdxPageStore = 
filePageStoreMgr.getStore(grpId, INDEX_PARTITION);
-
 status.onIndexDefragmented(
 oldGrpCtx,
 oldIdxPageStore.size(),
@@ -614,6 +627,9 @@ public

[ignite-extensions] annotated tag ignite-flume-ext-1.0.0 created (now aa2c59e)

2020-12-01 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-flume-ext-1.0.0
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at aa2c59e  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-flume-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-flink-ext-1.0.0 created (now ebb68db)

2020-12-01 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-flink-ext-1.0.0
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at ebb68db  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-flink-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-mqtt-ext-1.0.0 created (now ce071fb)

2020-12-01 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-mqtt-ext-1.0.0
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at ce071fb  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-mqtt-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-pub-sub-ext-1.0.0 created (now 65d68ad)

2020-12-01 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-pub-sub-ext-1.0.0
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at 65d68ad  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-pub-sub-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-camel-ext-1.0.0 created (now 57ca12b)

2020-12-01 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-camel-ext-1.0.0
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at 57ca12b  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-camel-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-rocketmq-ext-1.0.0 created (now c04faf7)

2020-12-01 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-rocketmq-ext-1.0.0
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at c04faf7  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-rocketmq-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-zeromq-ext-1.0.0 created (now 4a63143)

2020-12-01 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-zeromq-ext-1.0.0
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at 4a63143  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-zeromq-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-jms11-ext-1.0.0 created (now ed555c2)

2020-12-01 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-jms11-ext-1.0.0
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at ed555c2  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-jms11-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-storm-ext-1.0.0 created (now acd7ffd)

2020-12-01 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-storm-ext-1.0.0
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at acd7ffd  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-storm-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-twitter-ext-1.0.0 created (now 9fa9446)

2020-12-01 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-twitter-ext-1.0.0
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at 9fa9446  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-twitter-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-kafka-ext-1.0.0 created (now a4e6ad3)

2020-12-01 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-kafka-ext-1.0.0
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at a4e6ad3  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-kafka-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite] branch master updated: IGNITE-13753 Fix non-thread-safe collection in JmxMetricExporterSpi - Fixes #8492.

2020-11-26 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
 new ea97f8a  IGNITE-13753 Fix non-thread-safe collection in 
JmxMetricExporterSpi - Fixes #8492.
ea97f8a is described below

commit ea97f8ab24a74eac75b41e41bfa33ada1ee269f4
Author: Alexey Goncharuk 
AuthorDate: Thu Nov 26 19:22:09 2020 +0300

IGNITE-13753 Fix non-thread-safe collection in JmxMetricExporterSpi - Fixes 
#8492.

Signed-off-by: Alexey Goncharuk 
---
 .../spi/metric/jmx/JmxMetricExporterSpi.java   |   9 +-
 .../ignite/spi/metric/jmx/DummyMBeanServer.java| 291 +
 .../spi/metric/jmx/JmxMetricExporterSpiTest.java   | 141 ++
 .../ignite/testsuites/IgniteSpiTestSuite.java  |   5 +-
 4 files changed, 443 insertions(+), 3 deletions(-)

diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/metric/jmx/JmxMetricExporterSpi.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/metric/jmx/JmxMetricExporterSpi.java
index 7671a81..fe56007 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/metric/jmx/JmxMetricExporterSpi.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/metric/jmx/JmxMetricExporterSpi.java
@@ -18,6 +18,7 @@
 package org.apache.ignite.spi.metric.jmx;
 
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.function.Predicate;
 import javax.management.JMException;
@@ -46,7 +47,7 @@ public class JmxMetricExporterSpi extends IgniteSpiAdapter 
implements MetricExpo
 private @Nullable Predicate filter;
 
 /** Registered beans. */
-private final List mBeans = new ArrayList<>();
+private final List mBeans = Collections.synchronizedList(new 
ArrayList<>());
 
 /** {@inheritDoc} */
 @Override public void spiStart(@Nullable String igniteInstanceName) throws 
IgniteSpiException {
@@ -127,6 +128,10 @@ public class JmxMetricExporterSpi extends IgniteSpiAdapter 
implements MetricExpo
 unregBean(ignite, bean);
 }
 
+/**
+ * @param ignite Ignite instance.
+ * @param bean Bean name to unregister.
+ */
 private void unregBean(Ignite ignite, ObjectName bean) {
 MBeanServer jmx = ignite.configuration().getMBeanServer();
 
@@ -143,7 +148,7 @@ public class JmxMetricExporterSpi extends IgniteSpiAdapter 
implements MetricExpo
 
 /** {@inheritDoc} */
 @Override public void setMetricRegistry(ReadOnlyMetricManager reg) {
-this.mreg = reg;
+mreg = reg;
 }
 
 /** {@inheritDoc} */
diff --git 
a/modules/core/src/test/java/org/apache/ignite/spi/metric/jmx/DummyMBeanServer.java
 
b/modules/core/src/test/java/org/apache/ignite/spi/metric/jmx/DummyMBeanServer.java
new file mode 100644
index 000..4d9c467
--- /dev/null
+++ 
b/modules/core/src/test/java/org/apache/ignite/spi/metric/jmx/DummyMBeanServer.java
@@ -0,0 +1,291 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.spi.metric.jmx;
+
+import java.io.ObjectInputStream;
+import java.util.Set;
+import javax.management.Attribute;
+import javax.management.AttributeList;
+import javax.management.MBeanInfo;
+import javax.management.MBeanServer;
+import javax.management.NotificationFilter;
+import javax.management.NotificationListener;
+import javax.management.ObjectInstance;
+import javax.management.ObjectName;
+import javax.management.QueryExp;
+import javax.management.loading.ClassLoaderRepository;
+
+/**
+ *
+ */
+class DummyMBeanServer implements MBeanServer {
+/** */
+public static final String[] DOMAINS = new String[0];
+
+/**
+ * {@inheritDoc}
+ */
+@Override public ObjectInstance createMBean(String clsName, ObjectName 
name) {
+return null;
+}
+
+/**
+ * {@inheritDoc}
+ */
+@Override public ObjectInstance createMBean(String clsName, ObjectName 
name, ObjectName ldrName) {
+return null;
+}
+
+/**
+ * {@inheritDoc}
+ */
+@Override public ObjectInstance createMBean(String clsName, ObjectNam

[ignite-extensions] annotated tag ignite-mqtt-ext-1.0.0-rc1 created (now ce071fb)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-mqtt-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at ce071fb  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-mqtt-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-camel-ext-1.0.0-rc1 created (now 57ca12b)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-camel-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at 57ca12b  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-camel-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-flume-ext-1.0.0-rc1 created (now aa2c59e)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-flume-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at aa2c59e  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-flume-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-zeromq-ext-1.0.0-rc1 created (now 4a63143)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-zeromq-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at 4a63143  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-zeromq-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-twitter-ext-1.0.0-rc1 created (now 9fa9446)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-twitter-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at 9fa9446  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-twitter-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-kafka-ext-1.0.0-rc1 created (now a4e6ad3)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-kafka-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at a4e6ad3  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-kafka-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-storm-ext-1.0.0-rc1 created (now acd7ffd)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-storm-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at acd7ffd  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-storm-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-rocketmq-ext-1.0.0-rc1 created (now c04faf7)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-rocketmq-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at c04faf7  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-rocketmq-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-jms11-ext-1.0.0-rc1 created (now ed555c2)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-jms11-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at ed555c2  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-jms11-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-flink-ext-1.0.0-rc1 created (now ebb68db)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-flink-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at ebb68db  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-flink-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-pub-sub-ext-1.0.0-rc1 created (now 65d68ad)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-pub-sub-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at 65d68ad  (tag)
 tagging 3f45b3e32d617b652e08af614a90aad6b9ff945d (commit)
  by Alexey Goncharuk
  on Mon Nov 23 16:03:35 2020 +0300

- Log -
Releasing ignite-pub-sub-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] branch streaming-all-ext-1.0.0 updated: IGNITE-13745 Streaming extensions release notes

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch streaming-all-ext-1.0.0
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git


The following commit(s) were added to refs/heads/streaming-all-ext-1.0.0 by 
this push:
 new 3f45b3e  IGNITE-13745 Streaming extensions release notes
3f45b3e is described below

commit 3f45b3e32d617b652e08af614a90aad6b9ff945d
Author: Alexey Goncharuk 
AuthorDate: Mon Nov 23 14:58:28 2020 +0300

IGNITE-13745 Streaming extensions release notes
---
 RELEASE_NOTES.txt | 16 
 1 file changed, 16 insertions(+)

diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
index e691735..8451780 100644
--- a/RELEASE_NOTES.txt
+++ b/RELEASE_NOTES.txt
@@ -1,6 +1,22 @@
 Apache Ignite Extensions Release Notes
 ===
 
+Apache Ignite Streamer Extension Modules 1.0
+-
+The following integrations were migrated the Apache Ignite Extensions 
repository:
+* Camel integration extension
+* Flink integration extension
+* Flume integration extension
+* JMS integration extension
+* Kafka integration extension
+* MQTT integration extension
+* Pub/Sub integration extension
+* RocketMQ integration extension
+* Storm integration extension
+* Twitter integration extension
+* ZeroMQ integration extension
+
+
 Apache Ignite Spring Boot Modules 1.0
 -
 



[ignite-extensions] branch master updated: IGNITE-13745 Streaming extensions release notes

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git


The following commit(s) were added to refs/heads/master by this push:
 new 74bc337  IGNITE-13745 Streaming extensions release notes
74bc337 is described below

commit 74bc3371b2e6aeae7a02ffad18040a804e7e4242
Author: Alexey Goncharuk 
AuthorDate: Mon Nov 23 14:58:28 2020 +0300

IGNITE-13745 Streaming extensions release notes
---
 RELEASE_NOTES.txt | 16 
 1 file changed, 16 insertions(+)

diff --git a/RELEASE_NOTES.txt b/RELEASE_NOTES.txt
index e691735..8451780 100644
--- a/RELEASE_NOTES.txt
+++ b/RELEASE_NOTES.txt
@@ -1,6 +1,22 @@
 Apache Ignite Extensions Release Notes
 ===
 
+Apache Ignite Streamer Extension Modules 1.0
+-
+The following integrations were migrated the Apache Ignite Extensions 
repository:
+* Camel integration extension
+* Flink integration extension
+* Flume integration extension
+* JMS integration extension
+* Kafka integration extension
+* MQTT integration extension
+* Pub/Sub integration extension
+* RocketMQ integration extension
+* Storm integration extension
+* Twitter integration extension
+* ZeroMQ integration extension
+
+
 Apache Ignite Spring Boot Modules 1.0
 -
 



[ignite-extensions] annotated tag ignite-zeromq-ext-1.0.0-rc1 deleted (was 13f8c9a)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-zeromq-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


*** WARNING: tag ignite-zeromq-ext-1.0.0-rc1 was deleted! ***

   tag was  13f8c9a

The revisions that were on this annotated tag are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[ignite-extensions] annotated tag ignite-twitter-ext-1.0.0-rc1 deleted (was ac9f893)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-twitter-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


*** WARNING: tag ignite-twitter-ext-1.0.0-rc1 was deleted! ***

   tag was  ac9f893

The revisions that were on this annotated tag are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[ignite-extensions] annotated tag ignite-storm-ext-1.0.0-rc1 deleted (was f84b0a1)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-storm-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


*** WARNING: tag ignite-storm-ext-1.0.0-rc1 was deleted! ***

   tag was  f84b0a1

The revisions that were on this annotated tag are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[ignite-extensions] annotated tag ignite-rocketmq-ext-1.0.0-rc1 deleted (was 0066c9a)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-rocketmq-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


*** WARNING: tag ignite-rocketmq-ext-1.0.0-rc1 was deleted! ***

   tag was  0066c9a

The revisions that were on this annotated tag are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[ignite-extensions] annotated tag ignite-pub-sub-ext-1.0.0-rc1 deleted (was 17c3e78)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-pub-sub-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


*** WARNING: tag ignite-pub-sub-ext-1.0.0-rc1 was deleted! ***

   tag was  17c3e78

The revisions that were on this annotated tag are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[ignite-extensions] annotated tag ignite-mqtt-ext-1.0.0-rc1 deleted (was 3c924da)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-mqtt-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


*** WARNING: tag ignite-mqtt-ext-1.0.0-rc1 was deleted! ***

   tag was  3c924da

The revisions that were on this annotated tag are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[ignite-extensions] annotated tag ignite-kafka-ext-1.0.0-rc1 deleted (was fcf9a79)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-kafka-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


*** WARNING: tag ignite-kafka-ext-1.0.0-rc1 was deleted! ***

   tag was  fcf9a79

The revisions that were on this annotated tag are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[ignite-extensions] annotated tag ignite-jms11-ext-1.0.0-rc1 deleted (was 03e0ddc)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-jms11-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


*** WARNING: tag ignite-jms11-ext-1.0.0-rc1 was deleted! ***

   tag was  03e0ddc

The revisions that were on this annotated tag are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[ignite-extensions] annotated tag ignite-flume-ext-1.0.0-rc1 deleted (was ac95c28)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-flume-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


*** WARNING: tag ignite-flume-ext-1.0.0-rc1 was deleted! ***

   tag was  ac95c28

The revisions that were on this annotated tag are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[ignite-extensions] annotated tag ignite-camel-ext-1.0.0-rc1 deleted (was 429f400)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-camel-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


*** WARNING: tag ignite-camel-ext-1.0.0-rc1 was deleted! ***

   tag was  429f400

The revisions that were on this annotated tag are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[ignite-extensions] annotated tag ignite-flink-ext-1.0.0-rc1 deleted (was 3fcd4e5)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-flink-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


*** WARNING: tag ignite-flink-ext-1.0.0-rc1 was deleted! ***

   tag was  3fcd4e5

The revisions that were on this annotated tag are still contained in
other references; therefore, this change does not discard any commits
from the repository.



[ignite-extensions] annotated tag ignite-mqtt-ext-1.0.0-rc1 created (now 3c924da)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-mqtt-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at 3c924da  (tag)
 tagging 99e1c9ed82db3cdcf85c562f96a2811218d08a9e (commit)
  by Alexey Goncharuk
  on Mon Nov 23 13:18:29 2020 +0300

- Log -
Releasing ignite-mqtt-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-rocketmq-ext-1.0.0-rc1 created (now 0066c9a)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-rocketmq-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at 0066c9a  (tag)
 tagging 99e1c9ed82db3cdcf85c562f96a2811218d08a9e (commit)
  by Alexey Goncharuk
  on Mon Nov 23 13:18:29 2020 +0300

- Log -
Releasing ignite-rocketmq-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-kafka-ext-1.0.0-rc1 created (now fcf9a79)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-kafka-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at fcf9a79  (tag)
 tagging 99e1c9ed82db3cdcf85c562f96a2811218d08a9e (commit)
  by Alexey Goncharuk
  on Mon Nov 23 13:18:29 2020 +0300

- Log -
Releasing ignite-kafka-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-twitter-ext-1.0.0-rc1 created (now ac9f893)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-twitter-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at ac9f893  (tag)
 tagging 99e1c9ed82db3cdcf85c562f96a2811218d08a9e (commit)
  by Alexey Goncharuk
  on Mon Nov 23 13:18:29 2020 +0300

- Log -
Releasing ignite-twitter-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-pub-sub-ext-1.0.0-rc1 created (now 17c3e78)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-pub-sub-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at 17c3e78  (tag)
 tagging 99e1c9ed82db3cdcf85c562f96a2811218d08a9e (commit)
  by Alexey Goncharuk
  on Mon Nov 23 13:18:29 2020 +0300

- Log -
Releasing ignite-pub-sub-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-jms11-ext-1.0.0-rc1 created (now 03e0ddc)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-jms11-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at 03e0ddc  (tag)
 tagging 99e1c9ed82db3cdcf85c562f96a2811218d08a9e (commit)
  by Alexey Goncharuk
  on Mon Nov 23 13:18:29 2020 +0300

- Log -
Releasing ignite-jms11-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-storm-ext-1.0.0-rc1 created (now f84b0a1)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-storm-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at f84b0a1  (tag)
 tagging 99e1c9ed82db3cdcf85c562f96a2811218d08a9e (commit)
  by Alexey Goncharuk
  on Mon Nov 23 13:18:29 2020 +0300

- Log -
Releasing ignite-storm-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-zeromq-ext-1.0.0-rc1 created (now 13f8c9a)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-zeromq-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at 13f8c9a  (tag)
 tagging 99e1c9ed82db3cdcf85c562f96a2811218d08a9e (commit)
  by Alexey Goncharuk
  on Mon Nov 23 13:18:29 2020 +0300

- Log -
Releasing ignite-zeromq-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-flume-ext-1.0.0-rc1 created (now ac95c28)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-flume-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at ac95c28  (tag)
 tagging 99e1c9ed82db3cdcf85c562f96a2811218d08a9e (commit)
  by Alexey Goncharuk
  on Mon Nov 23 13:18:29 2020 +0300

- Log -
Releasing ignite-flume-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-flink-ext-1.0.0-rc1 created (now 3fcd4e5)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-flink-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at 3fcd4e5  (tag)
 tagging 99e1c9ed82db3cdcf85c562f96a2811218d08a9e (commit)
  by Alexey Goncharuk
  on Mon Nov 23 13:18:29 2020 +0300

- Log -
Releasing ignite-flink-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] annotated tag ignite-camel-ext-1.0.0-rc1 created (now 429f400)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag ignite-camel-ext-1.0.0-rc1
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at 429f400  (tag)
 tagging 99e1c9ed82db3cdcf85c562f96a2811218d08a9e (commit)
  by Alexey Goncharuk
  on Mon Nov 23 13:18:29 2020 +0300

- Log -
Releasing ignite-camel-ext-1.0.0-rc1
---

No new revisions were added by this update.



[ignite-extensions] branch streaming-all-ext-1.0.0 created (now 99e1c9e)

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to branch streaming-all-ext-1.0.0
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at 99e1c9e  Release streaming extensions v.1.0.0

This branch includes the following new commits:

 new 99e1c9e  Release streaming extensions v.1.0.0

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




[ignite-extensions] 01/01: Release streaming extensions v.1.0.0

2020-11-23 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch streaming-all-ext-1.0.0
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git

commit 99e1c9ed82db3cdcf85c562f96a2811218d08a9e
Author: Alexey Goncharuk 
AuthorDate: Mon Nov 23 12:39:30 2020 +0300

Release streaming extensions v.1.0.0
---
 modules/camel-ext/pom.xml| 2 +-
 modules/flink-ext/pom.xml| 2 +-
 modules/flume-ext/pom.xml| 2 +-
 modules/jms11-ext/pom.xml| 2 +-
 modules/kafka-ext/pom.xml| 2 +-
 modules/mqtt-ext/pom.xml | 2 +-
 modules/pub-sub-ext/pom.xml  | 2 +-
 modules/rocketmq-ext/pom.xml | 2 +-
 modules/storm-ext/pom.xml| 2 +-
 modules/twitter-ext/pom.xml  | 2 +-
 modules/zeromq-ext/pom.xml   | 2 +-
 parent/pom.xml   | 2 +-
 12 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/modules/camel-ext/pom.xml b/modules/camel-ext/pom.xml
index 2ae77d5..7c1838e 100644
--- a/modules/camel-ext/pom.xml
+++ b/modules/camel-ext/pom.xml
@@ -31,7 +31,7 @@
 
 
 ignite-camel-ext
-1.0.0-SNAPSHOT
+1.0.0
 http://ignite.apache.org
 
 
diff --git a/modules/flink-ext/pom.xml b/modules/flink-ext/pom.xml
index fe84ca5..24118f6 100644
--- a/modules/flink-ext/pom.xml
+++ b/modules/flink-ext/pom.xml
@@ -31,7 +31,7 @@
 
 
 ignite-flink-ext
-1.0.0-SNAPSHOT
+1.0.0
 http://ignite.apache.org
 
 
diff --git a/modules/flume-ext/pom.xml b/modules/flume-ext/pom.xml
index f143321..cc820f4 100644
--- a/modules/flume-ext/pom.xml
+++ b/modules/flume-ext/pom.xml
@@ -31,7 +31,7 @@
 
 
 ignite-flume-ext
-1.0.0-SNAPSHOT
+1.0.0
 http://ignite.apache.org
 
 
diff --git a/modules/jms11-ext/pom.xml b/modules/jms11-ext/pom.xml
index b9e6422..77209d4 100644
--- a/modules/jms11-ext/pom.xml
+++ b/modules/jms11-ext/pom.xml
@@ -31,7 +31,7 @@
 
 
 ignite-jms11-ext
-1.0.0-SNAPSHOT
+1.0.0
 http://ignite.apache.org
 
 
diff --git a/modules/kafka-ext/pom.xml b/modules/kafka-ext/pom.xml
index 8f4d223..0c49d8f 100644
--- a/modules/kafka-ext/pom.xml
+++ b/modules/kafka-ext/pom.xml
@@ -32,7 +32,7 @@
 
 
 ignite-kafka-ext
-1.0.0-SNAPSHOT
+1.0.0
 http://ignite.apache.org
 
 
diff --git a/modules/mqtt-ext/pom.xml b/modules/mqtt-ext/pom.xml
index ceb02b4..f83c6a7 100644
--- a/modules/mqtt-ext/pom.xml
+++ b/modules/mqtt-ext/pom.xml
@@ -31,7 +31,7 @@
 
 
 ignite-mqtt-ext
-1.0.0-SNAPSHOT
+1.0.0
 http://ignite.apache.org
 
 
diff --git a/modules/pub-sub-ext/pom.xml b/modules/pub-sub-ext/pom.xml
index f420f53..9f22f24 100644
--- a/modules/pub-sub-ext/pom.xml
+++ b/modules/pub-sub-ext/pom.xml
@@ -33,7 +33,7 @@
 
 
 ignite-pub-sub-ext
-2.9.0-SNAPSHOT
+1.0.0
 http://ignite.apache.org
 
 
diff --git a/modules/rocketmq-ext/pom.xml b/modules/rocketmq-ext/pom.xml
index c17fe22..bb8ccdc 100644
--- a/modules/rocketmq-ext/pom.xml
+++ b/modules/rocketmq-ext/pom.xml
@@ -32,7 +32,7 @@
 
 
 ignite-rocketmq-ext
-1.0.0-SNAPSHOT
+1.0.0
 http://ignite.apache.org
 
 
diff --git a/modules/storm-ext/pom.xml b/modules/storm-ext/pom.xml
index 097b686..6296b8d 100644
--- a/modules/storm-ext/pom.xml
+++ b/modules/storm-ext/pom.xml
@@ -31,7 +31,7 @@
 
 
 ignite-storm-ext
-1.0.0-SNAPSHOT
+1.0.0
 http://ignite.apache.org
 
 
diff --git a/modules/twitter-ext/pom.xml b/modules/twitter-ext/pom.xml
index b419a12..f618aeb 100644
--- a/modules/twitter-ext/pom.xml
+++ b/modules/twitter-ext/pom.xml
@@ -31,7 +31,7 @@
 
 
 ignite-twitter-ext
-1.0.0-SNAPSHOT
+1.0.0
 http://ignite.apache.org
 
 
diff --git a/modules/zeromq-ext/pom.xml b/modules/zeromq-ext/pom.xml
index 0bceb1b..1658010 100644
--- a/modules/zeromq-ext/pom.xml
+++ b/modules/zeromq-ext/pom.xml
@@ -31,7 +31,7 @@
 
 
 ignite-zeromq-ext
-1.0.0-SNAPSHOT
+1.0.0
 http://ignite.apache.org
 
 
diff --git a/parent/pom.xml b/parent/pom.xml
index d4c69fa..851143e 100644
--- a/parent/pom.xml
+++ b/parent/pom.xml
@@ -36,7 +36,7 @@
 1.8
 1.8
 
-2.10.0-SNAPSHOT
+2.9.0
 
 apache-ignite
 UTF-8



[ignite] branch master updated: IGNITE-12489 Fix persistence corruption caused by invalid tag check (flags were not rotated for some pages) - Fixes #8358.

2020-11-17 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
 new 965be31  IGNITE-12489 Fix persistence corruption caused by invalid tag 
check (flags were not rotated for some pages) - Fixes #8358.
965be31 is described below

commit 965be312a340fb6fb9f958bc4fcabda0a5e4bc16
Author: Nikita Tolstunov 
AuthorDate: Tue Nov 17 13:30:41 2020 +0300

IGNITE-12489 Fix persistence corruption caused by invalid tag check (flags 
were not rotated for some pages) - Fixes #8358.

Signed-off-by: Alexey Goncharuk 
---
 .../benchmarks/jmh/tree/BPlusTreeBenchmark.java|   6 +
 .../ignite/internal/pagemem/PageIdAllocator.java   |  18 ++-
 .../ignite/internal/pagemem/PageIdUtils.java   |   2 +-
 .../pagemem/store/IgnitePageStoreManager.java  |   2 +-
 .../ignite/internal/pagemem/store/PageStore.java   |   6 +
 .../cache/IgniteCacheOffheapManagerImpl.java   |   6 +-
 .../processors/cache/mvcc/txlog/TxLog.java |   3 +-
 .../processors/cache/mvcc/txlog/TxLogTree.java |   2 +
 .../cache/persistence/DataStructure.java   |  32 -
 .../cache/persistence/GridCacheOffheapManager.java |  63 
 .../IgniteCacheDatabaseSharedManager.java  |   4 +-
 .../cache/persistence/IndexStorageImpl.java|   2 +
 .../persistence/file/FilePageStoreFactory.java |   5 +-
 .../persistence/file/FilePageStoreManager.java |   5 +-
 .../persistence/freelist/AbstractFreeList.java |  34 +++--
 .../cache/persistence/freelist/CacheFreeList.java  |   7 +-
 .../cache/persistence/freelist/PagesList.java  | 124 +---
 .../cache/persistence/metastorage/MetaStorage.java |  21 +--
 .../persistence/metastorage/MetastorageTree.java   |   5 +-
 .../UpgradePendingTreeToPerPartitionTask.java  |   4 +-
 .../cache/persistence/pagemem/PageMemoryImpl.java  |  13 +-
 .../persistence/partstate/GroupPartitionId.java|  12 +-
 .../partstorage/PartitionMetaStorageImpl.java  |   6 +-
 .../snapshot/IgniteSnapshotManager.java|   4 +-
 .../cache/persistence/tree/BPlusTree.java  |   9 +-
 .../cache/persistence/tree/io/TrackingPageIO.java  |   7 +-
 .../cache/persistence/tree/reuse/ReuseList.java|  18 +++
 .../persistence/tree/reuse/ReuseListImpl.java  |  13 +-
 .../processors/cache/tree/CacheDataTree.java   |   5 +-
 .../processors/cache/tree/PendingEntriesTree.java  |   5 +-
 .../processors/cache/verify/IdleVerifyUtility.java |  14 +-
 ...IoStatisticsMetricsLocalMXBeanImplSelfTest.java |   2 +-
 .../internal/pagemem/impl/PageIdUtilsSelfTest.java |  41 --
 .../persistence/PendingTreeCorruptionTest.java | 159 +
 .../db/CheckpointBufferDeadlockTest.java   |  12 ++
 .../database/BPlusTreeFakeReuseSelfTest.java   |   6 +
 .../database/BPlusTreeReuseSelfTest.java   |   3 +-
 .../processors/database/BPlusTreeSelfTest.java |   1 +
 .../processors/database/CacheFreeListSelfTest.java |   3 +-
 .../ignite/testsuites/IgnitePdsTestSuite4.java |   3 +
 .../processors/query/h2/IgniteH2Indexing.java  |   2 +
 .../processors/query/h2/database/H2Tree.java   |   2 +
 42 files changed, 559 insertions(+), 132 deletions(-)

diff --git 
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/tree/BPlusTreeBenchmark.java
 
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/tree/BPlusTreeBenchmark.java
index 7a35430..af843cb 100644
--- 
a/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/tree/BPlusTreeBenchmark.java
+++ 
b/modules/benchmarks/src/main/java/org/apache/ignite/internal/benchmarks/jmh/tree/BPlusTreeBenchmark.java
@@ -104,6 +104,11 @@ public class BPlusTreeBenchmark extends 
JmhAbstractBenchmark {
 }
 
 /** {@inheritDoc} */
+@Override public long initRecycledPage(long pageId, byte flag, PageIO 
initIO) throws IgniteCheckedException {
+return pageId;
+}
+
+/** {@inheritDoc} */
 @Override public long recycledPagesCount() throws 
IgniteCheckedException {
 return deque.size();
 }
@@ -186,6 +191,7 @@ public class BPlusTreeBenchmark extends 
JmhAbstractBenchmark {
 reuseList,
 new IOVersions<>(new LongInnerIO()),
 new IOVersions<>(new LongLeafIO()),
+PageIdAllocator.FLAG_IDX,
 null,
 null
 );
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/PageIdAllocator.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/pagemem/PageIdAllocator.java
index 7395695..f97ada7 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/pagemem/PageIdAllocator.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/inte

[ignite] branch ignite-13617 updated (df57872 -> 7ccf99b)

2020-11-12 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to branch ignite-13617
in repository https://gitbox.apache.org/repos/asf/ignite.git.


from df57872  IGNITE-13617 Fix review comments.
 new 6f7faee  Add checkstyle plugin. Add license check plugin.
 new 7000daf  Add JUnit 5 support.
 new 7ccf99b  IGNITE-13617 Tuple assembler no longer require the size of 
the tuple to be known in advance

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 modules/commons/pom.xml| 144 +++-
 ...idTypeException.java => AssemblyException.java} |  12 +-
 .../ignite/internal/schema/ExpandableByteBuf.java  | 253 +
 .../ignite/internal/schema/TupleAssembler.java |  69 ++
 .../ignite/internal/schema/package-info.java   |   4 +-
 .../apache/ignite/internal/schema/ColumnTest.java  |   5 +-
 .../apache/ignite/internal/schema/ColumnsTest.java |  38 +++-
 .../internal/schema/ExpandableByteBufTest.java | 153 +
 .../ignite/internal/schema/NativeTypeTest.java |  34 +--
 .../ignite/internal/schema/SchemaTestSuite.java|   9 +-
 .../apache/ignite/internal/schema/TupleTest.java   |  29 ++-
 11 files changed, 652 insertions(+), 98 deletions(-)
 copy 
modules/commons/src/main/java/org/apache/ignite/internal/schema/{InvalidTypeException.java
 => AssemblyException.java} (66%)
 create mode 100644 
modules/commons/src/main/java/org/apache/ignite/internal/schema/ExpandableByteBuf.java
 create mode 100644 
modules/commons/src/test/java/org/apache/ignite/internal/schema/ExpandableByteBufTest.java



[ignite] 02/03: Add JUnit 5 support.

2020-11-12 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-13617
in repository https://gitbox.apache.org/repos/asf/ignite.git

commit 7000daf6837da48fa32a5aa93cbf2b2c8f8ee22d
Author: Andrew Mashenkov 
AuthorDate: Wed Nov 11 22:57:14 2020 +0300

Add JUnit 5 support.
---
 modules/commons/pom.xml| 20 ++--
 .../apache/ignite/internal/schema/ColumnTest.java  |  5 +--
 .../apache/ignite/internal/schema/ColumnsTest.java | 38 --
 .../ignite/internal/schema/NativeTypeTest.java | 34 ++-
 .../ignite/internal/schema/SchemaTestSuite.java|  8 ++---
 .../apache/ignite/internal/schema/TupleTest.java   | 24 ++
 6 files changed, 88 insertions(+), 41 deletions(-)

diff --git a/modules/commons/pom.xml b/modules/commons/pom.xml
index 562fd06..ad7636f 100644
--- a/modules/commons/pom.xml
+++ b/modules/commons/pom.xml
@@ -144,9 +144,23 @@
 
 
 
-junit
-junit
-4.12
+org.jetbrains
+annotations
+${jetbrains.annotations.version}
+
+
+
+
+org.junit.jupiter
+junit-jupiter-engine
+${junit.jupiter.version}
+test
+
+
+
+org.junit.platform
+junit-platform-runner
+${junit.platform.version}
 test
 
 
diff --git 
a/modules/commons/src/test/java/org/apache/ignite/internal/schema/ColumnTest.java
 
b/modules/commons/src/test/java/org/apache/ignite/internal/schema/ColumnTest.java
index 7725500..ddc5b74 100644
--- 
a/modules/commons/src/test/java/org/apache/ignite/internal/schema/ColumnTest.java
+++ 
b/modules/commons/src/test/java/org/apache/ignite/internal/schema/ColumnTest.java
@@ -18,15 +18,16 @@
 package org.apache.ignite.internal.schema;
 
 import java.util.Arrays;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 
 /**
  *
  */
 public class ColumnTest {
 /**
+ *
  */
 @Test
 public void testCompareColumns() {
diff --git 
a/modules/commons/src/test/java/org/apache/ignite/internal/schema/ColumnsTest.java
 
b/modules/commons/src/test/java/org/apache/ignite/internal/schema/ColumnsTest.java
index a0d859e..93e5e45 100644
--- 
a/modules/commons/src/test/java/org/apache/ignite/internal/schema/ColumnsTest.java
+++ 
b/modules/commons/src/test/java/org/apache/ignite/internal/schema/ColumnsTest.java
@@ -17,16 +17,18 @@
 
 package org.apache.ignite.internal.schema;
 
-import org.junit.Assert;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
-import static org.junit.Assert.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 /**
  *
  */
 public class ColumnsTest {
 /**
+ *
  */
 @Test
 public void testFixsizeIndex() {
@@ -40,13 +42,14 @@ public class ColumnsTest {
 assertEquals(-1, cols.firstVarlengthColumn());
 
 for (int c = 0; c < cols.length(); c++)
-Assert.assertTrue(cols.isFixedSize(c));
+assertTrue(cols.isFixedSize(c));
 
 assertEquals(1, cols.nullMapSize());
 assertEquals(3, cols.numberOfFixsizeColumns());
 }
 
 /**
+ *
  */
 @Test
 public void testVarsizeIndex() {
@@ -60,13 +63,14 @@ public class ColumnsTest {
 assertEquals(0, cols.firstVarlengthColumn());
 
 for (int c = 0; c < cols.length(); c++)
-Assert.assertFalse(cols.isFixedSize(c));
+assertFalse(cols.isFixedSize(c));
 
 assertEquals(1, cols.nullMapSize());
 assertEquals(0, cols.numberOfFixsizeColumns());
 }
 
 /**
+ *
  */
 @Test
 public void testMixedIndex() {
@@ -82,9 +86,9 @@ public class ColumnsTest {
 
 for (int c = 0; c < cols.length(); c++) {
 if (c < cols.firstVarlengthColumn())
-Assert.assertTrue(cols.isFixedSize(c));
+assertTrue(cols.isFixedSize(c));
 else
-Assert.assertFalse(cols.isFixedSize(c));
+assertFalse(cols.isFixedSize(c));
 }
 
 assertEquals(1, cols.nullMapSize());
@@ -92,6 +96,7 @@ public class ColumnsTest {
 }
 
 /**
+ *
  */
 @Test
 public void testNullMapSize() {
@@ -111,6 +116,7 @@ public class ColumnsTest {
 }
 
 /**
+ *
  */
 @Test
 public void testFoldSizeNoVarlenIncomplete1Byte() {
@@ -128,6 +134,7 @@ public class ColumnsTest {
 }
 
 /**
+ *
  */
 @Test
 public void testFoldSizeNoVarlenFull1Byte() {
@@ -146,6 +153,7 @@ public class ColumnsTest {
 }
 
 /**
+ *
  */
 @Test

[ignite] 03/03: IGNITE-13617 Tuple assembler no longer require the size of the tuple to be known in advance

2020-11-12 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-13617
in repository https://gitbox.apache.org/repos/asf/ignite.git

commit 7ccf99be30ac0b352349bf83357437eb85ee11e6
Author: Alexey Goncharuk 
AuthorDate: Thu Nov 12 18:49:30 2020 +0300

IGNITE-13617 Tuple assembler no longer require the size of the tuple to be 
known in advance
---
 .../ignite/internal/schema/AssemblyException.java} |  23 +-
 .../ignite/internal/schema/ExpandableByteBuf.java  | 253 +
 .../ignite/internal/schema/TupleAssembler.java |  69 ++
 .../ignite/internal/schema/package-info.java   |   4 +-
 .../internal/schema/ExpandableByteBufTest.java | 153 +
 .../ignite/internal/schema/SchemaTestSuite.java|   1 +
 .../apache/ignite/internal/schema/TupleTest.java   |   9 +-
 7 files changed, 447 insertions(+), 65 deletions(-)

diff --git 
a/modules/commons/src/test/java/org/apache/ignite/internal/schema/SchemaTestSuite.java
 
b/modules/commons/src/main/java/org/apache/ignite/internal/schema/AssemblyException.java
similarity index 64%
copy from 
modules/commons/src/test/java/org/apache/ignite/internal/schema/SchemaTestSuite.java
copy to 
modules/commons/src/main/java/org/apache/ignite/internal/schema/AssemblyException.java
index 3eded6a..8d01c91 100644
--- 
a/modules/commons/src/test/java/org/apache/ignite/internal/schema/SchemaTestSuite.java
+++ 
b/modules/commons/src/main/java/org/apache/ignite/internal/schema/AssemblyException.java
@@ -17,19 +17,16 @@
 
 package org.apache.ignite.internal.schema;
 
-import org.junit.platform.runner.JUnitPlatform;
-import org.junit.platform.suite.api.SelectClasses;
-import org.junit.runner.RunWith;
-
 /**
- *
+ * The exception is thrown when the tuple assembler encountered an 
unrecoverable error during the field encoding.
+ * After the exception is thrown, the assembler remains in an invalid state 
and should be discarded.
  */
-@RunWith(JUnitPlatform.class)
-@SelectClasses({
-NativeTypeTest.class,
-ColumnTest.class,
-ColumnsTest.class,
-TupleTest.class
-})
-public class SchemaTestSuite {
+public class AssemblyException extends RuntimeException {
+/**
+ * @param errMsg Error message
+ * @param cause Cause for this error.
+ */
+public AssemblyException(String errMsg, Exception cause) {
+super(errMsg, cause);
+}
 }
diff --git 
a/modules/commons/src/main/java/org/apache/ignite/internal/schema/ExpandableByteBuf.java
 
b/modules/commons/src/main/java/org/apache/ignite/internal/schema/ExpandableByteBuf.java
new file mode 100644
index 000..542b539
--- /dev/null
+++ 
b/modules/commons/src/main/java/org/apache/ignite/internal/schema/ExpandableByteBuf.java
@@ -0,0 +1,253 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.schema;
+
+import java.nio.ByteBuffer;
+import java.nio.ByteOrder;
+import java.nio.CharBuffer;
+import java.nio.charset.CharacterCodingException;
+import java.nio.charset.CharsetEncoder;
+import java.nio.charset.CoderResult;
+import java.util.Arrays;
+
+/**
+ * A simple byte array wrapper to allow dynamic byte array expansion during 
the tuple construction. Grows exponentially
+ * up to 1MB, then expands by 1 MB each time an expansion is required. Values 
are always written in LITTLE_ENDIAN
+ * format.
+ * 
+ * Additionally, it tracks the high watermark of the values ever written to 
the buffer so that only written bytes are
+ * returned from the {@link #toArray()} method. If the current (expanded) 
buffer size does not match the high watermark,
+ * the {@link #toArray()} method will return a smaller copy of the array to 
exactly match the watermark.
+ * 
+ * All write methods have an absolute position. The buffer will automatically 
expand to fit the value being written. If
+ * there is a gap between previously written values and the current value, it 
will be filled with zero bytes:
+ * 
+ * ExpandableByteBuf b = new ExpandableByteBuf(1);
+ * b.put(0, (byte)1); // Does not expand.
+ * b.put(5, (byte)1); // Expands, meaningful bytes are [0..5]
+ *
+ * byte[] data = b.toArray(); // data.length == 6
+ * 
+ *

[ignite] 01/03: Add checkstyle plugin. Add license check plugin.

2020-11-12 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-13617
in repository https://gitbox.apache.org/repos/asf/ignite.git

commit 6f7faee4ff742cc301ca821bbe597999c67b18c6
Author: Andrew Mashenkov 
AuthorDate: Wed Nov 11 22:56:51 2020 +0300

Add checkstyle plugin.
Add license check plugin.
---
 modules/commons/pom.xml | 124 +++-
 1 file changed, 122 insertions(+), 2 deletions(-)

diff --git a/modules/commons/pom.xml b/modules/commons/pom.xml
index 7264e5b..562fd06 100644
--- a/modules/commons/pom.xml
+++ b/modules/commons/pom.xml
@@ -29,6 +29,119 @@
 3.0.0-SNAPSHOT
 http://ignite.apache.org
 
+ 
+UTF-8
+
+20.1.0
+5.7.0
+1.7.0
+
+0.13
+3.8.1
+3.0.0-M4
+
3.1.1
+8.37
+
+
+ 
+
+checkstyle
+
+
+
+org.apache.maven.plugins
+maven-checkstyle-plugin
+${maven.checkstyle.plugin.version}
+
+
+style
+
+check
+
+validate
+
+true
+
true
+true
+true
+
${project.build.directory}/checkstyle-result.xml
+
../checkstyle/checkstyle.xml
+
../checkstyle/checkstyle-suppressions.xml
+
+
true
+**/generated/**/*
+
+
+
+
+
+com.puppycrawl.tools
+checkstyle
+
${checkstyle.puppycrawl.version}
+
+
+
+
+
+
+
+check-licenses
+
+
+
+org.apache.rat
+apache-rat-plugin
+${apache.rat.plugin.version}
+
+
true
+
+
+
IAL20
+Ignite Apache License 
2.0
+
+Licensed to the Apache Software 
Foundation (ASF) under one or more
+contributor license agreements. See 
the NOTICE file distributed with
+this work for additional information 
regarding copyright ownership.
+The ASF licenses this file to You 
under the Apache License, Version 2.0
+(the "License"); you may not use this 
file except in compliance with
+the License. You may obtain a copy of 
the License at
+
+
http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or 
agreed to in writing, software
+distributed under the License is 
distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF 
ANY KIND, either express or implied.
+See the License for the specific 
language governing permissions and
+limitations under the License.
+
+
+
+
+
+Ignite Apache License 
2.0
+
+
+
+
+
+validate
+
+check
+
+
+
+work/**
+ 

[ignite] branch ignite-13617 updated: IGNITE-13617 Fix review comments.

2020-11-06 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-13617
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/ignite-13617 by this push:
 new df57872  IGNITE-13617 Fix review comments.
df57872 is described below

commit df5787288379122fe0e16efc5b05f7cba0dd7817
Author: Alexey Goncharuk 
AuthorDate: Fri Nov 6 14:28:34 2020 +0300

IGNITE-13617 Fix review comments.
---
 .../apache/ignite/internal/schema/NativeType.java  |  5 +++-
 .../ignite/internal/schema/NativeTypeTest.java |  6 
 .../ignite/internal/schema/SchemaTestSuite.java| 35 ++
 3 files changed, 45 insertions(+), 1 deletion(-)

diff --git 
a/modules/commons/src/main/java/org/apache/ignite/internal/schema/NativeType.java
 
b/modules/commons/src/main/java/org/apache/ignite/internal/schema/NativeType.java
index 9caaea3..211a1e1 100644
--- 
a/modules/commons/src/main/java/org/apache/ignite/internal/schema/NativeType.java
+++ 
b/modules/commons/src/main/java/org/apache/ignite/internal/schema/NativeType.java
@@ -78,7 +78,10 @@ public class NativeType implements Comparable {
 }
 
 /**
- * @return Length of the type if it is a fixlen type.
+ * @return Length of the type if it is a fixlen type. For varlen types the 
return value is undefined, so the user
+ * should explicitly check {@code spec().fixedLength()} before using this 
method.
+ *
+ * @see NativeTypeSpec#fixedLength()
  */
 public int length() {
 return len;
diff --git 
a/modules/commons/src/test/java/org/apache/ignite/internal/schema/NativeTypeTest.java
 
b/modules/commons/src/test/java/org/apache/ignite/internal/schema/NativeTypeTest.java
index fc7e020..d2cf2a5 100644
--- 
a/modules/commons/src/test/java/org/apache/ignite/internal/schema/NativeTypeTest.java
+++ 
b/modules/commons/src/test/java/org/apache/ignite/internal/schema/NativeTypeTest.java
@@ -29,11 +29,17 @@ public class NativeTypeTest {
  */
 @Test
 public void testCompareFixlenVarlen() {
+Assert.assertTrue(NativeType.BYTE.compareTo(NativeType.STRING) < 0);
+Assert.assertTrue(NativeType.BYTE.compareTo(NativeType.BYTES) < 0);
+
 Assert.assertTrue(NativeType.INTEGER.compareTo(NativeType.STRING) < 0);
 Assert.assertTrue(NativeType.INTEGER.compareTo(NativeType.BYTES) < 0);
 
 Assert.assertTrue(NativeType.LONG.compareTo(NativeType.STRING) < 0);
 Assert.assertTrue(NativeType.LONG.compareTo(NativeType.BYTES) < 0);
+
+Assert.assertTrue(NativeType.UUID.compareTo(NativeType.STRING) < 0);
+Assert.assertTrue(NativeType.UUID.compareTo(NativeType.BYTES) < 0);
 }
 
 /**
diff --git 
a/modules/commons/src/test/java/org/apache/ignite/internal/schema/SchemaTestSuite.java
 
b/modules/commons/src/test/java/org/apache/ignite/internal/schema/SchemaTestSuite.java
new file mode 100644
index 000..93e489b
--- /dev/null
+++ 
b/modules/commons/src/test/java/org/apache/ignite/internal/schema/SchemaTestSuite.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.schema;
+
+import org.junit.runner.RunWith;
+import org.junit.runners.Suite;
+
+
+/**
+ *
+ */
+@RunWith(Suite.class)
+@Suite.SuiteClasses({
+NativeTypeTest.class,
+ColumnTest.class,
+ColumnsTest.class,
+TupleTest.class
+})
+public class SchemaTestSuite {
+}



[ignite] 01/01: IGNITE-13617 Add schema definition, tuple assembler and tuple classes

2020-11-03 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-13617
in repository https://gitbox.apache.org/repos/asf/ignite.git

commit 2b0d788f2973216d1df62359dc05128d4f4ffac2
Author: Alexey Goncharuk 
AuthorDate: Tue Nov 3 15:22:41 2020 +0300

IGNITE-13617 Add schema definition, tuple assembler and tuple classes
---
 modules/commons/pom.xml|  53 +++
 .../org/apache/ignite/internal/schema/Bitmask.java |  87 +
 .../ignite/internal/schema/ByteBufferTuple.java|  91 +
 .../org/apache/ignite/internal/schema/Column.java  | 111 ++
 .../org/apache/ignite/internal/schema/Columns.java | 272 +
 .../internal/schema/InvalidTypeException.java  |  30 ++
 .../apache/ignite/internal/schema/NativeType.java  | 133 +++
 .../ignite/internal/schema/NativeTypeSpec.java | 178 +
 .../ignite/internal/schema/SchemaDescriptor.java   |  99 +
 .../org/apache/ignite/internal/schema/Tuple.java   | 420 
 .../ignite/internal/schema/TupleAssembler.java | 431 +
 .../ignite/internal/schema/package-info.java   |  68 
 .../apache/ignite/internal/schema/ColumnTest.java  |  47 +++
 .../apache/ignite/internal/schema/ColumnsTest.java | 381 ++
 .../ignite/internal/schema/NativeTypeTest.java |  61 +++
 .../apache/ignite/internal/schema/TupleTest.java   | 369 ++
 pom.xml|   1 +
 17 files changed, 2832 insertions(+)

diff --git a/modules/commons/pom.xml b/modules/commons/pom.xml
new file mode 100644
index 000..7264e5b
--- /dev/null
+++ b/modules/commons/pom.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+http://maven.apache.org/POM/4.0.0; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance;
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd;>
+4.0.0
+
+org.apache.ignite
+ignite-commons
+3.0.0-SNAPSHOT
+http://ignite.apache.org
+
+
+
+junit
+junit
+4.12
+test
+
+
+
+
+
+org.apache.maven.plugins
+maven-compiler-plugin
+3.7.0
+
+1.8
+1.8
+
+
+
+
+
diff --git 
a/modules/commons/src/main/java/org/apache/ignite/internal/schema/Bitmask.java 
b/modules/commons/src/main/java/org/apache/ignite/internal/schema/Bitmask.java
new file mode 100644
index 000..1314d32
--- /dev/null
+++ 
b/modules/commons/src/main/java/org/apache/ignite/internal/schema/Bitmask.java
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ignite.internal.schema;
+
+/**
+ * A fixed-sized type representing a bitmask of n bits. The 
actual size of a bitmask will round up
+ * to the smallest number of bytes required to store n bits.
+ */
+public class Bitmask extends NativeType {
+/** */
+private final int bits;
+
+/**
+ * Factory method for creating the bitmask type.
+ *
+ * @param nBits Maximum number of bits in the bitmask.
+ * @return Bitmask type.
+ */
+public static Bitmask of(int nBits) {
+return new Bitmask(nBits);
+}
+
+/**
+ * Creates a bitmask type of size bits. In tuple will round 
up to the closest full byte.
+ *
+ * @param bits The number of bits in the bitmask.
+ */
+protected Bitmask(int bits) {
+super(NativeTypeSpec.BITMASK, (bits + 7) / 8);
+
+this.bits = bits;
+}
+
+/**
+ * @return Maximum number of bits to be stored in the bitmask.
+ */
+public int bits() {
+return bits;
+}
+
+/** {@inheritDoc} */
+@Override public boolean equals(Object o) {
+if (this == o)
+return true;
+
+if (o == null || getClass() != o.getClass())
+return false;
+
+Bitmask that = (Bitmask)o;
+
+return bits == that.bits;
+}
+
+/** {@inheritDoc} */
+@Override public int hashCode() {
+return bits;
+}
+
+/*

[ignite] branch ignite-13617 created (now 2b0d788)

2020-11-03 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to branch ignite-13617
in repository https://gitbox.apache.org/repos/asf/ignite.git.


  at 2b0d788  IGNITE-13617 Add schema definition, tuple assembler and tuple 
classes

This branch includes the following new commits:

 new 2b0d788  IGNITE-13617 Add schema definition, tuple assembler and tuple 
classes

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




[ignite-extensions] annotated tag ignite-spring-boot-autoconfigure-ext-1.0.0 created (now cdb87fe)

2020-10-13 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to annotated tag 
ignite-spring-boot-autoconfigure-ext-1.0.0
in repository https://gitbox.apache.org/repos/asf/ignite-extensions.git.


  at cdb87fe  (tag)
 tagging de621e606dc0df1716728f9bcd58ccd2bbb1f370 (commit)
 replaces ignite-spring-boot-1.0.0-rc1
  by Alexey Goncharuk
  on Tue Oct 13 13:03:39 2020 +0300

- Log -
Added a tag ignite-spring-boot-autoconfigure-ext-1.0.0 to match with the 
released module name
---

No new revisions were added by this update.



[ignite] branch master updated: IGNITE-13362 Add warmup stop command to control.sh - Fixes #8201.

2020-09-10 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
 new 0260ba0  IGNITE-13362 Add warmup stop command to control.sh - Fixes 
#8201.
0260ba0 is described below

commit 0260ba0c8fa3be6ddce9efc473f45b13d11f7784
Author: ktkalenko 
AuthorDate: Thu Sep 10 17:51:29 2020 +0300

IGNITE-13362 Add warmup stop command to control.sh - Fixes #8201.

Signed-off-by: Alexey Goncharuk 
---
 .../ignite/internal/commandline/Command.java   |  31 
 .../ignite/internal/commandline/CommandList.java   |   5 +-
 .../ignite/internal/commandline/WarmUpCommand.java | 121 +
 .../commandline/CommandHandlerParsingTest.java |  36 +++-
 .../apache/ignite/util/GridCommandHandlerTest.java |  58 +++
 .../internal/client/GridClientBeforeNodeStart.java |  66 +++
 .../ignite/internal/client/GridClientFactory.java  |  33 +++-
 .../client/GridClientNodeStateBeforeStart.java}|  16 +-
 .../internal/client/impl/GridClientImpl.java   | 190 +++--
 .../impl/GridClientNodeStateBeforeStartImpl.java   |  49 ++
 .../impl/connection/GridClientConnection.java  |   9 +
 .../connection/GridClientConnectionManager.java|  12 ++
 .../GridClientConnectionManagerAdapter.java| 156 +++--
 .../GridClientConnectionManagerOsImpl.java |   7 +-
 .../connection/GridClientNioTcpConnection.java |   8 +
 .../client/router/impl/GridRouterClientImpl.java   |   2 +-
 .../internal/processors/rest/GridRestCommand.java  |   8 +-
 .../processors/rest/GridRestProcessor.java |  11 +-
 .../internal/processors/rest/GridRestProtocol.java |   5 +
 .../GridClientNodeStateBeforeStartRequest.java}|  16 +-
 .../client/message/GridClientWarmUpRequest.java|  90 ++
 .../NodeStateBeforeStartCommandHandler.java|  75 
 .../rest/protocols/GridRestProtocolAdapter.java|   5 +
 .../rest/protocols/tcp/GridTcpRestNioListener.java |  22 +++
 .../rest/protocols/tcp/GridTcpRestProtocol.java|   6 +-
 .../GridRestNodeStateBeforeStartRequest.java}  |  13 +-
 .../rest/request/GridRestWarmUpRequest.java|  54 ++
 .../main/resources/META-INF/classnames.properties  |   2 +
 .../cache/warmup/BlockedWarmUpConfiguration.java   |   4 +-
 ...ockedWarmUp.java => BlockedWarmUpStrategy.java} |   6 +-
 .../SimpleObservableWarmUpConfiguration.java   |   2 +-
 ...Up.java => SimpleObservableWarmUpStrategy.java} |   2 +-
 .../processors/cache/warmup/WarmUpSelfTest.java|  10 +-
 .../cache/warmup/WarmUpTestPluginProvider.java |   8 +-
 ...ridCommandHandlerClusterByClassTest_help.output |   3 +
 ...andHandlerClusterByClassWithSSLTest_help.output |   3 +
 .../Cache/PartitionLossTest.cs |  12 +-
 37 files changed, 1003 insertions(+), 153 deletions(-)

diff --git 
a/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/Command.java
 
b/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/Command.java
index b147933..5b00a78 100644
--- 
a/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/Command.java
+++ 
b/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/Command.java
@@ -22,6 +22,7 @@ import java.util.Map;
 import java.util.logging.Logger;
 import org.apache.ignite.IgniteSystemProperties;
 import org.apache.ignite.internal.client.GridClient;
+import org.apache.ignite.internal.client.GridClientBeforeNodeStart;
 import org.apache.ignite.internal.client.GridClientConfiguration;
 import org.apache.ignite.internal.client.GridClientException;
 import org.apache.ignite.internal.client.GridClientFactory;
@@ -69,6 +70,36 @@ public interface Command {
 }
 
 /**
+ * Method to create thin client for communication with node before it 
starts.
+ * If node has already started, there will be an error.
+ *
+ * @param clientCfg Thin client configuration.
+ * @return Grid thin client instance which is already connected to node 
before it starts.
+ * @throws Exception If error occur.
+ */
+public static GridClientBeforeNodeStart startClientBeforeNodeStart(
+GridClientConfiguration clientCfg
+) throws Exception {
+GridClientBeforeNodeStart client = 
GridClientFactory.startBeforeNodeStart(clientCfg);
+
+// If connection is unsuccessful, fail before doing any operations:
+if (!client.connected()) {
+GridClientException lastErr = client.checkLastError();
+
+try {
+client.close();
+}
+catch (Throwable e) {
+lastErr.addSuppressed(e);
+}
+
+throw lastErr;
+}
+
+return client;
+}
+
+/**
  * Print command usage.
  *
  * @param logger Logger 

[ignite] 01/01: Explicitly inline core messages in message factory

2020-09-10 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a commit to branch ignite-2.9-revert-12568
in repository https://gitbox.apache.org/repos/asf/ignite.git

commit 31d324e3ea8c1b87a29b64b1506f91efeae2c9d4
Author: Alexey Goncharuk 
AuthorDate: Thu Sep 10 14:39:33 2020 +0300

Explicitly inline core messages in message factory
---
 .../communication/IgniteMessageFactoryImpl.java| 1055 
 1 file changed, 1055 insertions(+)

diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/IgniteMessageFactoryImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/IgniteMessageFactoryImpl.java
index 68ce797..c5abe21 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/IgniteMessageFactoryImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/communication/IgniteMessageFactoryImpl.java
@@ -23,10 +23,180 @@ import java.util.List;
 import java.util.function.Supplier;
 
 import org.apache.ignite.IgniteException;
+import org.apache.ignite.internal.GridJobCancelRequest;
+import org.apache.ignite.internal.GridJobExecuteRequest;
+import org.apache.ignite.internal.GridJobExecuteResponse;
+import org.apache.ignite.internal.GridJobSiblingsRequest;
+import org.apache.ignite.internal.GridJobSiblingsResponse;
+import org.apache.ignite.internal.GridTaskCancelRequest;
+import org.apache.ignite.internal.GridTaskSessionRequest;
+import org.apache.ignite.internal.IgniteDiagnosticMessage;
+import org.apache.ignite.internal.binary.BinaryEnumObjectImpl;
+import org.apache.ignite.internal.binary.BinaryObjectImpl;
+import org.apache.ignite.internal.managers.checkpoint.GridCheckpointRequest;
+import org.apache.ignite.internal.managers.deployment.GridDeploymentInfoBean;
+import org.apache.ignite.internal.managers.deployment.GridDeploymentRequest;
+import org.apache.ignite.internal.managers.deployment.GridDeploymentResponse;
+import 
org.apache.ignite.internal.managers.encryption.GenerateEncryptionKeyRequest;
+import 
org.apache.ignite.internal.managers.encryption.GenerateEncryptionKeyResponse;
+import 
org.apache.ignite.internal.managers.eventstorage.GridEventStorageMessage;
+import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion;
+import 
org.apache.ignite.internal.processors.authentication.UserAuthenticateRequestMessage;
+import 
org.apache.ignite.internal.processors.authentication.UserAuthenticateResponseMessage;
+import 
org.apache.ignite.internal.processors.authentication.UserManagementOperationFinishedMessage;
+import org.apache.ignite.internal.processors.cache.CacheEntryInfoCollection;
+import 
org.apache.ignite.internal.processors.cache.CacheEntryPredicateContainsValue;
+import 
org.apache.ignite.internal.processors.cache.CacheEntrySerializablePredicate;
+import org.apache.ignite.internal.processors.cache.CacheEvictionEntry;
+import org.apache.ignite.internal.processors.cache.CacheInvokeDirectResult;
+import org.apache.ignite.internal.processors.cache.CacheObjectByteArrayImpl;
+import org.apache.ignite.internal.processors.cache.CacheObjectImpl;
+import org.apache.ignite.internal.processors.cache.GridCacheEntryInfo;
+import org.apache.ignite.internal.processors.cache.GridCacheMvccEntryInfo;
+import org.apache.ignite.internal.processors.cache.GridCacheReturn;
+import 
org.apache.ignite.internal.processors.cache.GridChangeGlobalStateMessageResponse;
+import org.apache.ignite.internal.processors.cache.KeyCacheObjectImpl;
+import org.apache.ignite.internal.processors.cache.WalStateAckMessage;
+import 
org.apache.ignite.internal.processors.cache.binary.MetadataRequestMessage;
+import 
org.apache.ignite.internal.processors.cache.binary.MetadataResponseMessage;
+import 
org.apache.ignite.internal.processors.cache.distributed.GridCacheTtlUpdateRequest;
+import 
org.apache.ignite.internal.processors.cache.distributed.GridCacheTxRecoveryRequest;
+import 
org.apache.ignite.internal.processors.cache.distributed.GridCacheTxRecoveryResponse;
+import 
org.apache.ignite.internal.processors.cache.distributed.GridDistributedLockRequest;
+import 
org.apache.ignite.internal.processors.cache.distributed.GridDistributedLockResponse;
+import 
org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxFinishRequest;
+import 
org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxFinishResponse;
+import 
org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxPrepareRequest;
+import 
org.apache.ignite.internal.processors.cache.distributed.GridDistributedTxPrepareResponse;
+import 
org.apache.ignite.internal.processors.cache.distributed.GridDistributedUnlockRequest;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtAffinityAssignmentRequest;
+import 
org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtAffinityAssignmentResponse;
+import

[ignite] branch ignite-2.9-revert-12568 created (now 31d324e)

2020-09-10 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to branch ignite-2.9-revert-12568
in repository https://gitbox.apache.org/repos/asf/ignite.git.


  at 31d324e  Explicitly inline core messages in message factory

This branch includes the following new commits:

 new 31d324e  Explicitly inline core messages in message factory

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




[ignite] branch ignite-2.9-revert-12568 deleted (was ed52559)

2020-09-10 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to branch ignite-2.9-revert-12568
in repository https://gitbox.apache.org/repos/asf/ignite.git.


 was ed52559  Revert "IGNITE-12568 MessageFactory is refactored in order to 
detect registration of message with the same direct type"

This change permanently discards the following revisions:

 discard ed52559  Revert "IGNITE-12568 MessageFactory is refactored in order to 
detect registration of message with the same direct type"
 discard 3d57f23  Revert "IGNITE-12682 
IgniteMessageFactoryImpl.registerCustom() method is removed as potentially 
dangerous"
 discard f1fcea2  Revert "IGNITE-12756 TcpCommunication SPI metrics improvement"



[ignite] branch ignite-2.9-revert-12568 created (now ed52559)

2020-08-31 Thread agoncharuk
This is an automated email from the ASF dual-hosted git repository.

agoncharuk pushed a change to branch ignite-2.9-revert-12568
in repository https://gitbox.apache.org/repos/asf/ignite.git.


  at ed52559  Revert "IGNITE-12568 MessageFactory is refactored in order to 
detect registration of message with the same direct type"

This branch includes the following new commits:

 new f1fcea2  Revert "IGNITE-12756 TcpCommunication SPI metrics improvement"
 new 3d57f23  Revert "IGNITE-12682 
IgniteMessageFactoryImpl.registerCustom() method is removed as potentially 
dangerous"
 new ed52559  Revert "IGNITE-12568 MessageFactory is refactored in order to 
detect registration of message with the same direct type"

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.




  1   2   3   4   5   6   7   8   9   10   >