Maxim,

> should we _reject_ joining nodes which have different
>From my point of view, it's a breaking change on cluster update.

We can get a different inline size in other scenarios too: as I know we did
some improvements in calculation effective (actual) index inline size.
Let's imagine, we have PDS cluster created on the "old" apache ignite
version. We decided to upgrade Ignite version and after that, join a new
node to the cluster. On a new node, effective inline sizes will be
calculated by the optimized algorithm. On the old nodes, the inline size
will not be recalculated. It can lead to a difference in inline sizes
without IGNITE_MAX_INDEX_PAYLOAD_SIZE option.



вт, 28 апр. 2020 г. в 14:22, Maxim Muzafarov <mmu...@apache.org>:

> Sergey, Ilya,
>
>
> Since inline size for the `create table` clause not supported yet and
> the IGNITE_MAX_INDEX_PAYLOAD_SIZE is the only option, should we
> _reject_ joining nodes which have different
> IGNITE_MAX_INDEX_PAYLOAD_SIZE value instead for allowing and printing
> warning message? Thus we will force users to have the same values of
> IGNITE_MAX_INDEX_PAYLOAD_SIZE property.
>
>
> On Tue, 28 Apr 2020 at 14:01, Ilya Kasnacheev <ilya.kasnach...@gmail.com>
> wrote:
> >
> > Hello!
> >
> > Unfortunately and embarrassingly, we still do not support passing
> > INLINE_SIZE to CREATE TABLE, at least in 2.8.0.
> > This means IGNITE_MAX_INDEX_PAYLOAD_SIZE is the only option to create an
> > implicit primary key index with specified inline size.
> >
> > Regards,
> > --
> > Ilya Kasnacheev
> >
> >
> > вт, 28 апр. 2020 г. в 02:31, Denis Magda <dma...@apache.org>:
> >
> > > Hi Sergey,
> > >
> > > Your changes look useful from the application developer perspective.
> > > However, I'm curious why would the one change some low-level
> > > IGNITE_MAX_INDEX_PAYLOAD_SIZE parameter when it's advised to pass
> > > INLINE_SIZE to CREATE TABLE to change the index size cluster-wide.
> > >
> > > -
> > > Denis
> > >
> > >
> > > On Mon, Apr 27, 2020 at 5:38 AM Sergey Antonov <
> antonovserge...@gmail.com>
> > > wrote:
> > >
> > > > Hi, Igniters!
> > > >
> > > > I'd like to share a new small feature in AI [1].
> > > >
> > > > For different reasons, the cluster could have a different SQL index
> > > inline
> > > > size [2] on cluster nodes. For example due to
> > > > different IGNITE_MAX_INDEX_PAYLOAD_SIZE [3] value on cluster nodes.
> > > >
> > > > The difference in index inline size may lead to performance
> degradation.
> > > > I think we must compare inline sizes on node join and warn if
> difference
> > > > found. Also, We should have the ability to check inline sizes on
> demand.
> > > >
> > > > I've implemented this check on node join and new command in
> control.sh
> > > >
> > > > Look at warning message and utility command output:
> > > >
> > > > Warn message on a node in the cluster during new node join:
> > > >
> > > > [2020-04-27 15:36:21,185][WARN ][tcp-disco-msg-worker-[6ba0b823
> > > > 127.0.0.1:47502
> > > > crd]-#17%cache.CheckIndexesInlineSizeOnNodeJoinMultiJvmTest0%][root]
> > > Inline
> > > > sizes on local node and node 5bf6ca48-34a0-4aff-8db2-c0b6df303d3f are
> > > > different. Please drop and create again these indexes to avoid
> > > performance
> > > > problems with SQL queries. Problem indexes:
> > > >
> > > >
> > >
> PUBLIC#TEST_TABLE#L_IDX(1,2),PUBLIC#TEST_TABLE#S1_IDX(1,2),PUBLIC#TEST_TABLE#I_IDX(1,2)
> > > >
> > > > Warn messages on a joining node, if difference found:
> > > > [2020-04-27 15:35:17,326][WARN ][tcp-disco-msg-worker-[a86e9cea
> > > > 127.0.0.1:47501
> > > > ]-#11%cache.CheckIndexesInlineSizeOnNodeJoinMultiJvmTest0%][root]
> > > > Inline sizes on local node and node
> a86e9cea-63e8-42af-a897-cec4be500001
> > > > are different. Please drop and create again these indexes to avoid
> > > > performance problems with SQL queries. Problem indexes:
> > > >
> > > >
> > >
> PUBLIC#TEST_TABLE#L_IDX(1,2),PUBLIC#TEST_TABLE#S1_IDX(1,2),PUBLIC#TEST_TABLE#I_IDX(1,2)
> > > > [2020-04-27 15:35:17,326][WARN ][tcp-disco-msg-worker-[a86e9cea
> > > > 127.0.0.1:47501
> > > > ]-#11%cache.CheckIndexesInlineSizeOnNodeJoinMultiJvmTest0%][root]
> > > > Inline sizes on local node and node
> a08de16d-df05-48af-a0b9-5596d9c00002
> > > > are different. Please drop and create again these indexes to avoid
> > > > performance problems with SQL queries. Problem indexes:
> > > >
> > > >
> > >
> PUBLIC#TEST_TABLE#L_IDX(1,3),PUBLIC#TEST_TABLE#S1_IDX(1,3),PUBLIC#TEST_TABLE#I_IDX(1,3)
> > > >
> > > >
> > > > Utility output, if a difference in inline sizes was found:
> > > >
> > > > Control utility [ver. 2.9.0-SNAPSHOT#20200427-sha1:DEV]
> > > > 2020 Copyright(C) Apache Software Foundation
> > > > User: santonov
> > > > Time: 2020-04-27T15:32:25.759
> > > > Command [CACHE] started
> > > > Arguments: --cache check_index_inline_sizes --yes
> > > >
> > > >
> > >
> --------------------------------------------------------------------------------
> > > > Found 4 secondary indexes.
> > > > 3 index(es) have different effective inline size on nodes. It can
> lead to
> > > > performance degradation in SQL queries.
> > > > Index(es):
> > > >   Full index name: PUBLIC#TEST_TABLE#L_IDX nodes:
> > > > [ca1d2bae-89d4-4e8d-ae11-6c68f3900000] inline size: 1, nodes:
> > > > [8327abd1-df08-4b97-8720-de95e363e745] inline size: 2
> > > >   Full index name: PUBLIC#TEST_TABLE#S1_IDX nodes:
> > > > [ca1d2bae-89d4-4e8d-ae11-6c68f3900000] inline size: 1, nodes:
> > > > [8327abd1-df08-4b97-8720-de95e363e745] inline size: 2
> > > >   Full index name: PUBLIC#TEST_TABLE#I_IDX nodes:
> > > > [ca1d2bae-89d4-4e8d-ae11-6c68f3900000] inline size: 1, nodes:
> > > > [8327abd1-df08-4b97-8720-de95e363e745] inline size: 2
> > > >
> > > > Recommendations:
> > > >   Check that value of property IGNITE_MAX_INDEX_PAYLOAD_SIZE are the
> same
> > > > on all nodes.
> > > >   Recreate indexes (execute DROP INDEX, CREATE INDEX commands) with
> > > > different inline size.
> > > > Command [CACHE] finished with code: 0
> > > > Control utility has completed execution at: 2020-04-27T15:32:28.025
> > > > Execution time: 2266 ms
> > > >
> > > > Utility output, if all indexes have the same inline size:
> > > >
> > > > Control utility [ver. 2.9.0-SNAPSHOT#20200427-sha1:DEV]
> > > > 2020 Copyright(C) Apache Software Foundation
> > > > User: santonov
> > > > Time: 2020-04-27T15:30:20.950
> > > > Command [CACHE] started
> > > > Arguments: --cache check_index_inline_sizes --yes
> > > >
> > > >
> > >
> --------------------------------------------------------------------------------
> > > > Found 2 secondary indexes.
> > > > All secondary indexes have the same effective inline size on all
> cluster
> > > > nodes.
> > > > Command [CACHE] finished with code: 0
> > > > Control utility has completed execution at: 2020-04-27T15:30:23.428
> > > > Execution time: 2478 ms
> > > >
> > > > Any objections?
> > > >
> > > > [1] https://issues.apache.org/jira/browse/IGNITE-12942
> > > > [2] https://apacheignite-sql.readme.io/docs/create-index
> > > > [3]
> > > >
> > > >
> > >
> https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/IgniteSystemProperties.html#IGNITE_MAX_INDEX_PAYLOAD_SIZE
> > > >
> > > > --
> > > > BR, Sergey Antonov
> > > >
> > >
>


-- 
BR, Sergey Antonov

Reply via email to