What about an idea to have a validation template file (e.g.
ignite-validate.xml), and make sure on startup that all config properties
specified in that file match. This way a user could put this file somewhere
on a shared network drive and have an extra degree of confidence that the
configuration is valid.

Thoughts?

D.


On Tue, Jul 10, 2018 at 5:43 PM, Ivan Rakov <ivan.glu...@gmail.com> wrote:

> Slava,
>
> I agree. Different persistence enabled flag can cause unpleasant issues.
> I've left a comment in IGNITE-8951.
>
> Yakov,
>
> Seems like I misunderstood the point of the discussion from the very
> beginning. I thought that Andrew raised topic to discuss adding new checks
> that will fail node join (like we do for different page size and rebalance
> pool size). If we are talking about /printing warnin//gs//about all
> differences/, we indeed can start with logic that passes through
> configuration classes with reflection. As a next step, we can filter out
> the properties that are expected to be different (consistentId, etc). I
> believe, full list of such properties can't be collected without manual
> research.
>
> Best Regards,
> Ivan Rakov
>
>
> On 10.07.2018 14:06, Вячеслав Коптилин wrote:
>
>> .Hello Ivan,
>>
>> I think it would be nice to add validation
>> DataRegionConfiguration#persistenceEnabled property. That property must
>> be
>> the same across a cluster for the given data region.
>> Perhaps, different values of `initSize`, `maxSize` etc make sense in case
>> of a heterogeneous cluster, except  `persistenceEnabled`
>>
>> Thanks,
>> S.
>>
>> вт, 10 июл. 2018 г. в 13:42, Ivan Rakov <ivan.glu...@gmail.com>:
>>
>> Guys,
>>>
>>> For your information: rebalanceThreadPoolSize validation is already
>>> implemented and merged to master:
>>> https://issues.apache.org/jira/browse/IGNITE-8904
>>> You can overview the commit to see the approach. By the way, we already
>>> validate some other parameters that can't differ among cluster nodes
>>> (page size, tx configuration): GridCacheProcessor#checkConsistency.
>>> We also match necessary part of CacheConfiguration between nodes in
>>> GridCacheUtils#checkAttributeMismatch method.
>>>
>>> Does anyone know another properties mismatch of which can backfire on us?
>>>
>>> Best Regards,
>>> Ivan Rakov
>>>
>>> On 10.07.2018 10:47, Andrew Medvedev wrote:
>>>
>>>> Made comment there, c&p here as well
>>>>
>>>> Is it going to be a preconfigured set of  settings, or a whole range
>>>> of settings?
>>>>
>>>> If latter :
>>>>
>>>> 1) Property names in CacheConfiguration do not always correspond to
>>>> getters (some follow different naming conventions, some are completely
>>>> different, as in memPlcName and getDataRegionName()), so inclusion
>>>> pattern ("get all properties") does not work quite well with them
>>>>
>>>> 2) If using manual handling of getter methods, we see that a lot of
>>>> metrics are returned by methods in CacheConfiguration and below,
>>>> instead of properties (in TcpCommunicationSpi especially), and getter
>>>> methods are not properly annotated. (for ex see
>>>> https://issues.apache.org/jira/browse/IGNITE-8829), so exclusion
>>>> pattern ("get all except metrics etc") forces us to manually exclude
>>>> those, not quite well too, looks like a hack
>>>>
>>>> Plus some properties, although configurable, have their defaults
>>>> dynamically set on startup for ex. DFLT_MEMORY_POLICY_MAX_SIZE
>>>>
>>>> Just to make sure, we compare with coordinator, log locally, and
>>>> client nodes are excluded?
>>>>
>>>> On Fri, Jul 6, 2018 at 4:15 PM, Yakov Zhdanov <yzhda...@gridgain.com>
>>>>
>>> wrote:
>>>
>>>> Guys, I created ticket for config params validation -
>>>>> https://issues.apache.org/jira/browse/IGNITE-8951. Feel free to
>>>>>
>>>> comment.
>>>
>>>> Yakov Zhdanov
>>>>> www.gridgain.com
>>>>>
>>>>> 2018-07-04 10:51 GMT+03:00 Andrew Medvedev <
>>>>> andrew.y.medve...@gmail.com
>>>>>
>>>> :
>>>>
>>>>> Hi Nikolay
>>>>>>
>>>>>> No, we have been beaten by
>>>>>> https://issues.apache.org/jira/browse/IGNITE-8904?jql=text%20~%20%
>>>>>> 22rebalanceThreadPoolSize%22
>>>>>> it is not checked on start
>>>>>>
>>>>>> Utility I mean check
>>>>>> org.apache.ignite.configuration.IgniteConfiguration and children
>>>>>>
>>>>>> On Wed, Jul 4, 2018 at 10:36 AM, Nikolay Izhikov <nizhi...@apache.org
>>>>>> >
>>>>>> wrote:
>>>>>>
>>>>>>> Hello, Andrew.
>>>>>>>
>>>>>>> Can you clarify your question?
>>>>>>>
>>>>>>> What checks do you mean, exactly?
>>>>>>> Do you mean internal Ignite checks or user-provided checks?
>>>>>>>
>>>>>>> Ignite checks configuration consistency on node start [1].
>>>>>>>
>>>>>>> Ignite do have consistency check for a joining node. Take a look at
>>>>>>>
>>>>>> [2]
>>>
>>>> and all of it children.
>>>>>>
>>>>>>> [1] https://github.com/apache/ignite/blob/master/modules/
>>>>>>>
>>>>>> core/src/main/java/org/apache/ignite/internal/IgniteKernal.java#L825
>>>>>>
>>>>>>> [2] https://github.com/apache/ignite/blob/master/modules/
>>>>>>>
>>>>>> core/src/main/java/org/apache/ignite/internal/GridComponent.java#L153
>>>>>>
>>>>>>> В Ср, 04/07/2018 в 08:58 +0300, Andrew Medvedev пишет:
>>>>>>>
>>>>>>>> Hello everybody
>>>>>>>>
>>>>>>>> Our company has lots of nodes in cluster, and we have seen some
>>>>>>>> problems with inconsistent settings on nodes clusterwide. To help us
>>>>>>>> with this, we made an utility to check consistency of settings on
>>>>>>>> running cluster, but it is a hack, better ways seems to be settings
>>>>>>>> validation by each node itself on start/joining topology/etc..
>>>>>>>>
>>>>>>>> 1) Is his needed?
>>>>>>>> 2) Have the implementation details been discussed somewhere?
>>>>>>>>
>>>>>>>> Cheers
>>>>>>>>
>>>>>>>
>>>
>

Reply via email to