Andrey.

Let’s move from the long letters to the code.
If you want to change API - please, propose this changes.
I think everybody wins if we make our API better.

Please, describe proposed changes.
It would be great if you have some examples or PR for it.

As for this release, I have plans to contribute tickets 
«[IEP-35] Expose MetricRegistry to the public API» [1] and 
«[IEP-35] public Java metric API» [2] for it.

Any objections on it?

[1] https://github.com/apache/ignite/pull/7269
[2] https://issues.apache.org/jira/browse/IGNITE-12553


> 20 янв. 2020 г., в 13:08, Andrey Gura <ag...@apache.org> написал(а):
> 
> It solves problem.
> 
> On Mon, Jan 20, 2020 at 12:09 PM Alexey Goncharuk
> <alexey.goncha...@gmail.com> wrote:
>> 
>> After giving it some thought, I agree with Denis - there is nothing wrong
>> with exposing the new APIs, we just need to make it clear that we are still
>> going to change it.
>> 
>> Should we Introduce something like @IgniteExperimental annotation (I
>> believe it has been discussed a dozen of times on the dev-list)?
>> 
>> пт, 17 янв. 2020 г. в 23:28, Nikolay Izhikov <nizhi...@apache.org>:
>> 
>>> +1 to mark feature or whole release as EA.
>>> 
>>> пт, 17 янв. 2020 г., 23:00 Denis Magda <dma...@apache.org>:
>>> 
>>>> Folks, if you don't mind I'll share some thoughts/suggestions as an
>>>> observer who was not involved in the feature development.
>>>> 
>>>> It's absolutely 'ok' to deprecate an API that is replaced with a much
>>>> better version. However, we should do this only when the new APIs are
>>>> production-ready. If there are still many limitations or open items then
>>>> don't deprecate anything that exists and release the new APIs labeling as
>>>> early access. What if release the improvements labeling as EA instead of
>>>> hiding them completely?
>>>> 
>>>> I would also encourage us to put aside emotions, don't blame or point
>>>> fingers. This IEP is a great initiative and you both have already done a
>>>> tremendous job by developing, architecting and reviewing changes. Just be
>>>> respectful. Nobody is trying to block the feature from being released.
>>>> Everyone would be glad to tap into improvements and start using them in
>>>> prod. But if more time is needed for the GA let's reiterate a bit.
>>>> 
>>>> -
>>>> Denis
>>>> 
>>>> 
>>>> On Fri, Jan 17, 2020 at 12:24 PM Николай Ижиков <nizhi...@apache.org>
>>>> wrote:
>>>> 
>>>>>> Also I agree with Alexey about introducing public IgniteMonitoring
>>>> facade
>>>>> 
>>>>> This is not an issue with the API.
>>>>> Just the new feature that doesn’t affects API.
>>>>> Moreover, I create a ticket to fix it, already.
>>>>> 
>>>>>> It's right. But if you add checking of statisticsEnabling property
>>> then
>>>>> test will fail. It's just not good tests.
>>>>> 
>>>>> My changes doesn’t affect any `staticticsEnabled` property.
>>>>> I don’ understand your point here.
>>>>> 
>>>>>> Redundant ReadOnlyMetricRegistry.
>>>>> 
>>>>> It’s not redundant.
>>>>> It required for exporters and provide read only access to
>>> MetricRegistry
>>>>> existing in the node.
>>>>> 
>>>>> 
>>>>>> MetricExporterSpi that requires ReadOnlyMetricRegistry.
>>>>> 
>>>>>> Absence of newly created metrics in old MBeans that forces user use
>>>>>> exporter SPI while his code base uses old MBeans.
>>>>> 
>>>>> Why this is issue?
>>>>> 
>>>>>> Inconsistent MetricRegistry API.
>>>>> 
>>>>> It’s consistent.
>>>>> 
>>>>>> Metrics lookups from map instead of using direct reference
>>>>>> (performance problem).
>>>>> 
>>>>> 1. We(You and I) did this choice together to simplify creation of the
>>> new
>>>>> metrics.
>>>>> 2. This is not public API issue.
>>>>> 
>>>>> 
>>>>>> Ignoring of statisticsEnabled flag.
>>>>> 
>>>>> I don’t ignore this flag.
>>>>> It just doesn’t exists in new framework(because of scope).
>>>>> I don’t think it’s an issue.
>>>>> 
>>>>>> JmxExporterSpi creates beans that doesn't satisfy best MBeans
>>>> practices.
>>>>> 
>>>>> Please, clarify your statement.
>>>>> What is best MBeans practices you are talking about?
>>>>> 
>>>>>> Not finished IGNITE-11927
>>>>> 
>>>>> 
>>>>> How this can be API issue?
>>>>> 
>>>>> 
>>>>>> 17 янв. 2020 г., в 20:52, Andrey Gura <ag...@apache.org> написал(а):
>>>>>> 
>>>>>>>> All issues Alexey mentioned in starting letter are fixed with my PR
>>>>> [1].
>>>>>>>> I don’t think other issues you mentioned are blocker for the
>>> release.
>>>>>> 
>>>>>> As I mentioned already IGNITE-11927 is part of IEP-35 and
>>>>>> implementation seriously affects API's. Also I agree with Alexey
>>> about
>>>>>> introducing public IgniteMonitoring facade. So thiss PR doesn't fix
>>>>>> all issues.
>>>>>> 
>>>>>>>> I talk about ignored existing functionality.
>>>>>>> There is no existing tests that was broken by this contribution.
>>>>>> 
>>>>>> It's right. But if you add checking of statisticsEnabling property
>>>>>> then test will fail. It's just not good tests.
>>>>>> 
>>>>>>> If you know the issues with it, feel free to create a ticket I will
>>>> fix
>>>>> it ASAP.
>>>>>> 
>>>>>> I already fix it all in IGNITE-11927
>>>>>> 
>>>>>>>> 1. Moving IEP-35 API's to the internal package.
>>>>>>> We should move the product forward and shouldn't hide major
>>>>> contribution from the user just because your second guess «I don’t like
>>>> the
>>>>> API I just reviewed and approved».
>>>>>> 
>>>>>> We should move the product forward with with really finished
>>> features,
>>>>>> not pieces of features.
>>>>>> 
>>>>>>> So I am against this proposal.
>>>>>> 
>>>>>> It is not argument.
>>>>>> 
>>>>>>> But, I’m ready to see your proposal for the API change and discuss
>>>> them.
>>>>>> 
>>>>>> We can prepare it together. But we can't block release.
>>>>>> 
>>>>>>>> Because IGNITE-11927 doesn't solve all problems
>>>>>>> What is *ALL* problems?
>>>>>> 
>>>>>> Redundant ReadOnlyMetricRegistry.
>>>>>> MetricExporterSpi that requires ReadOnlyMetricRegistry.
>>>>>> Absence of newly created metrics in old MBeans that forces user use
>>>>>> exporter SPI while his code base uses old MBeans.
>>>>>> Inconsistent MetricRegistry API.
>>>>>> Metrics lookups from map instead of using direct reference
>>>>>> (performance problem).
>>>>>> Ignoring of statisticsEnabled flag.
>>>>>> JmxExporterSpi creates beans that doesn't satisfy best MBeans
>>>> practices.
>>>>>> Not finished IGNITE-11927
>>>>>> 
>>>>>> It's enough I believe.
>>>>>> 
>>>>>> On Fri, Jan 17, 2020 at 7:28 PM Николай Ижиков <nizhi...@apache.org>
>>>>> wrote:
>>>>>>> 
>>>>>>> Andrey.
>>>>>>> 
>>>>>>> All issues Alexey mentioned in starting letter are fixed with my PR
>>>> [1].
>>>>>>> I don’t think other issues you mentioned are blocker for the
>>> release.
>>>>>>> 
>>>>>>>> I talk about ignored existing functionality.
>>>>>>> 
>>>>>>> There is no existing tests that was broken by this contribution.
>>>>>>> If you know the issues with it, feel free to create a ticket I will
>>>> fix
>>>>> it ASAP.
>>>>>>> 
>>>>>>>> 1. Moving IEP-35 API's to the internal package.
>>>>>>> 
>>>>>>> We should move the product forward and shouldn't hide major
>>>>> contribution from the user just because your second guess «I don’t like
>>>> the
>>>>> API I just reviewed and approved».
>>>>>>> So I am against this proposal.
>>>>>>> But, I’m ready to see your proposal for the API change and discuss
>>>> them.
>>>>>>> 
>>>>>>>> Because IGNITE-11927 doesn't solve all problems
>>>>>>> 
>>>>>>> What is *ALL* problems?
>>>>>>> Seems, we never be able to solve *ALL* problems.
>>>>>>> But, we should move the product forward.
>>>>>>> 
>>>>>>> As for your steps [1-6].
>>>>>>> I’m always following these steps during my contribution.
>>>>>>> 
>>>>>>> [1] https://github.com/apache/ignite/pull/7269
>>>>>>> 
>>>>>>>> 17 янв. 2020 г., в 19:08, Andrey Gura <ag...@apache.org>
>>> написал(а):
>>>>>>>> 
>>>>>>>> The discussion is hot and can be endless. So in separate post I
>>> want
>>>>>>>> propose my solution.
>>>>>>>> 
>>>>>>>> 1. Moving IEP-35 API's to the internal package.
>>>>>>>> 2. Create special feature branch B.
>>>>>>>> 3. In branch B will be merged IGNITE-11927
>>>>>>>> 4. Because IGNITE-11927 doesn't solve all problems we should
>>> propose
>>>>>>>> solution and implement it in branch B.
>>>>>>>> 5. Testing, usability testing, fixing, etc iteratively.
>>>>>>>> 6. Merge it to master and in new release branch if needed.
>>>>>>>> 
>>>>>>>> Independent step. There are some problem which should be fixed in
>>> 2.8
>>>>>>>> before release otherwise we introduce problems with compatibility
>>>>>>>> which will haunt us till next major release. I'll create tickets.
>>>>>>>> 
>>>>>>>> On Fri, Jan 17, 2020 at 7:03 PM Andrey Gura <ag...@apache.org>
>>>> wrote:
>>>>>>>>> 
>>>>>>>>>>> Because it is brand new API and it requires rewrite client code.
>>>>>>>>>> We doesn’t break backward compatibility.
>>>>>>>>>> The message is - this interface would be remove in the next major
>>>>> release.
>>>>>>>>> 
>>>>>>>>> We don't know anything about development processes our users. I
>>> can
>>>>>>>>> admit that process could require that deprecated methods/APIs are
>>>> not
>>>>>>>>> allowed for example.
>>>>>>>>> 
>>>>>>>>>>> ReadOnlyMetricRegistry
>>>>>>>>>>> Form user stand point it is very strange interface which don't
>>>> give
>>>>> me any information about it’s purpose and responsibilities.
>>>>>>>>>>> Seems, I should explain proposed changes [1] more clear:
>>>>>>>>> 
>>>>>>>>> I understand this. But I'm not Ignite user, I'm Ignite developer.
>>>> The
>>>>>>>>> key moment in my message *from user stand point*. From my point of
>>>>>>>>> view it is very not intuitive solution and this interface is
>>>>>>>>> redundant.
>>>>>>>>> 
>>>>>>>>>>> Actually not. We have statisticsEnabled for caches for example.
>>>>> There are other entities with such flag.
>>>>>>>>>> They still works as expected.
>>>>>>>>> 
>>>>>>>>> Actually not. I fixed many such issues during IGNITE-11927
>>>>> implementation.
>>>>>>>>> 
>>>>>>>>>>> Why do you decided do in such way?
>>>>>>>>>> Because of the scope.
>>>>>>>>>> The ability to disable/enable metrics is the matter of the other
>>>>> ticket.
>>>>>>>>> 
>>>>>>>>> I talk not about ability. I talk about ignored existing
>>>> functionality.
>>>>>>>>> So scope is not case here.
>>>>>>>>> 
>>>>>>>>>>> But they should not be exported by MetricExporterSpi
>>>>> implementations.
>>>>>>>>>> Actually, it’s a responsibility of the exporter to decide.
>>>>>>>>>> JMX exporter can exports ObjectMetric while OpenCensus exporter
>>>>> can’t.
>>>>>>>>> 
>>>>>>>>> Actually list is not metric at all as I already told.
>>>>>>>>> 
>>>>>>>>> On Fri, Jan 17, 2020 at 5:26 PM Николай Ижиков <
>>> nizhi...@apache.org
>>>>> 
>>>>> wrote:
>>>>>>>>>> 
>>>>>>>>>> Andrey.
>>>>>>>>>> 
>>>>>>>>>>> Because it is brand new API and it requires rewrite client code.
>>>>>>>>>> 
>>>>>>>>>> We doesn’t break backward compatibility.
>>>>>>>>>> The message is - this interface would be remove in the next major
>>>>> release.
>>>>>>>>>> 
>>>>>>>>>>> ReadOnlyMetricRegistry
>>>>>>>>>>> Form user stand point it is very strange interface which don't
>>>> give
>>>>> me any information about it’s purpose and responsibilities.
>>>>>>>>>> 
>>>>>>>>>> Seems, I should explain proposed changes [1] more clear:
>>>>>>>>>> 
>>>>>>>>>> Each SPI would have a `ReadOnlyMetricManager` which provides
>>> access
>>>>> to collection of `ReadOnlyMetricRegistry`
>>>>>>>>>> which has a collection of `Metric`.
>>>>>>>>>> 
>>>>>>>>>> So we reflects two-level structure we have in the internal API
>>>>>>>>>> 
>>>>>>>>>> GridMetricManager -> Collection[MetricRegistry] ->
>>>> Collection[Metric]
>>>>>>>>>> ReadOnlyMetricManager -> Collection[ReadOnlyMetricRegistry] ->
>>>>> Collection[Metric]
>>>>>>>>>> 
>>>>>>>>>>> Actually not. We have statisticsEnabled for caches for example.
>>>>> There are other entities with such flag.
>>>>>>>>>> 
>>>>>>>>>> They still works as expected.
>>>>>>>>>> 
>>>>>>>>>>> Why do you decided do in such way?
>>>>>>>>>> 
>>>>>>>>>> Because of the scope.
>>>>>>>>>> The ability to disable/enable metrics is the matter of the other
>>>>> ticket.
>>>>>>>>>> 
>>>>>>>>>>> But they should not be exported by MetricExporterSpi
>>>>> implementations.
>>>>>>>>>> 
>>>>>>>>>> Actually, it’s a responsibility of the exporter to decide.
>>>>>>>>>> JMX exporter can exports ObjectMetric while OpenCensus exporter
>>>>> can’t.
>>>>>>>>>> 
>>>>>>>>>> [1]
>>>>> 
>>>> 
>>> https://github.com/apache/ignite/pull/7269/files#diff-0ae5657231fc4c1f650493b02190b81bR25
>>>>>>>>>> 
>>>>>>>>>>> 17 янв. 2020 г., в 16:57, Andrey Gura <ag...@apache.org>
>>>>> написал(а):
>>>>>>>>>>> 
>>>>>>>>>>>> If I’m not missing something, you were one of the active
>>>> reviewers
>>>>> of the Metric API.
>>>>>>>>>>> 
>>>>>>>>>>> Yes. But if I'm not missing some thing you were major developer
>>> of
>>>>>>>>>>> Metric API :) Shit happens. And it happened.
>>>>>>>>>>> 
>>>>>>>>>>>>> The first, I agree with Alexey about deprecation of APIs that
>>>> are
>>>>> still supported and don't offer reasonable substitution.
>>>>>>>>>>>> It has - MetricExporterSPI.
>>>>>>>>>>> 
>>>>>>>>>>> There is such concept - backward compatibility. I understand
>>> that
>>>>>>>>>>> deprecation of some interface doesn't break backward
>>> compatibility
>>>>> but
>>>>>>>>>>> it leads to question^ what should I use instead of this. And
>>>>>>>>>>> MetricExporterSpi is not answer for this question. Because it is
>>>>> brand
>>>>>>>>>>> new API and it requires rewrite client code.
>>>>>>>>>>> 
>>>>>>>>>>>>> ReadOnlyMetricRegistry interface is redundant.
>>>>>>>>>>>> It’s an interface that exposes internal MetricRegistry  to the
>>>>> exporters.
>>>>>>>>>>> 
>>>>>>>>>>> No it is not. It's completely artificial thing which allow
>>> iterate
>>>>> via
>>>>>>>>>>> all metric registries. GridMetricManager implements this
>>> interface
>>>>>>>>>>> while it is not metric registry. Form user stand point it is
>>> very
>>>>>>>>>>> strange interface which don't give me any information about it's
>>>>>>>>>>> purpose and responsibilities.
>>>>>>>>>>> 
>>>>>>>>>>>>> Exporters expose metrics if they are disabled.
>>>>>>>>>>>> We don’t have an ability to disable metrics.
>>>>>>>>>>> 
>>>>>>>>>>> Actually not. We have statisticsEnabled for caches for example.
>>>>> There
>>>>>>>>>>> are other entities with such flag.
>>>>>>>>>>> 
>>>>>>>>>>>> And that done, intentionally.
>>>>>>>>>>> 
>>>>>>>>>>> Why do you decided do in such way? Why you ignore existing
>>>>>>>>>>> functionality? It affects user expectations and experience.
>>>>>>>>>>> 
>>>>>>>>>>>> You are working on this issue, aren’t you?
>>>>>>>>>>> 
>>>>>>>>>>> Yes? I'm working. Unfortunately we are not synchronized in this
>>>>>>>>>>> context and I should redo all metrics related changes in order
>>> to
>>>>>>>>>>> merge it with my changes. Anyway, my change doesn't solve all
>>>>> problems
>>>>>>>>>>> (e.g. it doesn't introduce IgniteMonitoring facade).
>>>>>>>>>>> 
>>>>>>>>>>>> I can fix this issue, by myself.
>>>>>>>>>>> 
>>>>>>>>>>> Unfortunately it will be just fix. In my solution it is
>>> redesign.
>>>>> Stop
>>>>>>>>>>> fixing issues, let's do things. It requires deeper changes. My
>>>>> changes
>>>>>>>>>>> blocks AI 2.8 release because it big enough. So it retargeted on
>>>> the
>>>>>>>>>>> next release. And it is one more reason for moving the changes
>>> to
>>>>> the
>>>>>>>>>>> internal packages. And it isn't good news for me because I will
>>> go
>>>>>>>>>>> throughout pan and tiers of merge. But it is right.
>>>>>>>>>>> 
>>>>>>>>>>>> Metrics of type lists are not metric at all.
>>>>>>>>>>> 
>>>>>>>>>>> They are created to deal with backward compatibility.
>>>>>>>>>>> 
>>>>>>>>>>>>> Metrics of type lists are not metric at all.
>>>>>>>>>>>> They are created to deal with backward compatibility.
>>>>>>>>>>> 
>>>>>>>>>>> Yes, I know. But they should not be exported by
>>> MetricExporterSpi
>>>>>>>>>>> implementations.
>>>>>>>>>>> 
>>>>>>>>>>> On Fri, Jan 17, 2020 at 3:37 PM Николай Ижиков <
>>>> nizhi...@apache.org>
>>>>> wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> Andrey, thanks for your opinion and your ownest critisism.
>>>>>>>>>>>> I can’t wait for your contribution.
>>>>>>>>>>>> 
>>>>>>>>>>>> If I’m not missing something, you were one of the active
>>>> reviewers
>>>>> of the Metric API.
>>>>>>>>>>>> 
>>>>>>>>>>>>> The first, I agree with Alexey about deprecation of APIs that
>>>> are
>>>>> still supported and don't offer reasonable substitution.
>>>>>>>>>>>> 
>>>>>>>>>>>> It has - MetricExporterSPI.
>>>>>>>>>>>> 
>>>>>>>>>>>>> The second, from my point of view, we can't recommend
>>>>> MetricExporterSpi's because it are still not-production ready.
>>>>>>>>>>>> 
>>>>>>>>>>>> It’s ready.
>>>>>>>>>>>> 
>>>>>>>>>>>>> The third, moving of MetricRegistry to the public API doesn't
>>>>> solve the problem because this interface exposes internal Metric
>>>> interface
>>>>> implementations.
>>>>>>>>>>>> 
>>>>>>>>>>>> Not, its’ not.
>>>>>>>>>>>> Please, see `org.apache.ignite.spi.metric.LongMetric` and other
>>>>> public interface.
>>>>>>>>>>>> 
>>>>>>>>>>>>> API of MetricRegistry is inconsistent.
>>>>>>>>>>>> 
>>>>>>>>>>>> MetricRegistry is the internal API.
>>>>>>>>>>>> Feel free to create ticket for an issues with it and I will try
>>>> to
>>>>> fix it.
>>>>>>>>>>>> 
>>>>>>>>>>>>> ReadOnlyMetricRegistry interface is redundant.
>>>>>>>>>>>> 
>>>>>>>>>>>> It’s an interface that exposes internal MetricRegistry  to the
>>>>> exporters.
>>>>>>>>>>>> 
>>>>>>>>>>>>> Exporters expose metrics if they are disabled.
>>>>>>>>>>>> 
>>>>>>>>>>>> We don’t have an ability to disable metrics.
>>>>>>>>>>>> And that done, intentionally.
>>>>>>>>>>>> You are working on this issue, aren’t you?
>>>>>>>>>>>> I can fix this issue, by myself.
>>>>>>>>>>>> 
>>>>>>>>>>>>> Metrics of type lists are not metric at all.
>>>>>>>>>>>> 
>>>>>>>>>>>> They are created to deal with backward compatibility.
>>>>>>>>>>>> 
>>>>>>>>>>>>> 17 янв. 2020 г., в 15:09, Andrey Gura <ag...@apache.org>
>>>>> написал(а):
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Hi,
>>>>>>>>>>>>> 
>>>>>>>>>>>>> The first, I agree with Alexey about deprecation of APIs that
>>>> are
>>>>>>>>>>>>> still supported and don't offer reasonable substitution.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> The second, from my point of view, we can't recommend
>>>>>>>>>>>>> MetricExporterSpi's because it are still not-production ready.
>>>>> There
>>>>>>>>>>>>> are some issues with it and usage of ReadOnlyMetricRegistry
>>>>> interface
>>>>>>>>>>>>> just one of them.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> The third, moving of MetricRegistry to the public API doesn't
>>>>> solve
>>>>>>>>>>>>> the problem because this interface exposes internal Metric
>>>>> interface
>>>>>>>>>>>>> implementations. So your PR is incomplete.
>>>>>>>>>>>>> Moreover, API of MetricRegistry is inconsistent. E.g.
>>>>> register(name,
>>>>>>>>>>>>> supplier, desc) method returns registered metric for some
>>> types
>>>>> and
>>>>>>>>>>>>> doesn't for other. register(metric) method is inconsistent in
>>>>> sense of
>>>>>>>>>>>>> metric naming. ReadOnlyMetricRegistry interface is redundant.
>>>>>>>>>>>>> MetricExporterSpi should be revised because it absolutely not
>>>>>>>>>>>>> intuitive because it requires ReadOnlyMetricRegistry and it's
>>>>> purpose
>>>>>>>>>>>>> is undefined.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> One more point. IEP-35 is still not fully implemented. Some
>>>>> things are
>>>>>>>>>>>>> not taken into account. Exporters expose metrics if they are
>>>>> disabled.
>>>>>>>>>>>>> JMX beans exposes values that don't confirm to best practices
>>>> [1].
>>>>>>>>>>>>> Metrics of type lists are not metric at all. Ubiquitous merics
>>>>> lookup
>>>>>>>>>>>>> from hash map instead of usage reference for getting metrics
>>>>> values
>>>>>>>>>>>>> (it is just performance issue). Also IGNITE-11927 is not
>>>>> implemented
>>>>>>>>>>>>> which also changes interfaces significantly.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> Let's just admit that the implementation is immature and must
>>> be
>>>>> moved
>>>>>>>>>>>>> to the internal packages.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> And because we already merged partially implemented IEP to the
>>>>> master
>>>>>>>>>>>>> branch we *must move all currently public APIs to the internal
>>>>> API*
>>>>>>>>>>>>> while it will not be ready for publication.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> And the last but not least. What is happening indicates a
>>>> immature
>>>>>>>>>>>>> development process which must be revised. I don't want
>>> discuss
>>>>> it in
>>>>>>>>>>>>> this thread but we must not allow merge of change to the
>>> master
>>>>> branch
>>>>>>>>>>>>> before it will completed, that is we must use feature branches
>>>> for
>>>>>>>>>>>>> full IEP not only for particular tickets. And also we should
>>>>>>>>>>>>> reformulate IEP process in order to avoid things like this.
>>>>>>>>>>>>> 
>>>>>>>>>>>>> [1]
>>>>> 
>>>> 
>>> https://www.oracle.com/technetwork/java/javase/tech/best-practices-jsp-136021.html
>>>>>>>>>>>>> 
>>>>>>>>>>>>> On Fri, Jan 17, 2020 at 12:49 PM Николай Ижиков <
>>>>> nizhi...@apache.org> wrote:
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Alex.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> OK, I may leverage your experience and create pure Java API.
>>>>>>>>>>>>>> Ticket [1] created.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> But, personally, I don’t agree with you.
>>>>>>>>>>>>>> Ignite has dozens of the API that theoretically have a usage
>>>>> scenario, but in real-world have 0 custom implementation and usages.
>>>>>>>>>>>>>> Moreover, many APIs that were created with the intentions you
>>>>> mentioned is abandoned now and confuses users.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> You can just see count of the tests we just mute on the TC.
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> Can you, please, take a look at the fix regarding puck API
>>>> issue
>>>>> you mentioned in your first letter [2], [3]
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> [1] https://issues.apache.org/jira/browse/IGNITE-12553
>>>>>>>>>>>>>> [2] https://github.com/apache/ignite/pull/7269
>>>>>>>>>>>>>> [3] https://issues.apache.org/jira/browse/IGNITE-12552
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> 17 янв. 2020 г., в 12:12, Alexey Goncharuk <
>>>>> alexey.goncha...@gmail.com> написал(а):
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Nikolay,
>>>>>>>>>>>>>>> 
>>>>>>>>>>>>>>> Why do you think this is a wrong usage pattern? From the top
>>>> of
>>>>> my head,
>>>>>>>>>>>>>>> here is a few cases of direct metric API usage that I know
>>> are
>>>>> currently
>>>>>>>>>>>>>>> being used in production:
>>>>>>>>>>>>>>> * A custom task execution scheduling service with load
>>>>> balancing based on
>>>>>>>>>>>>>>> utilization metrics readings from Java code
>>>>>>>>>>>>>>> * Cleanup task trigger based on metrics readings
>>>>>>>>>>>>>>> * A custom health-check endpoint for an application with an
>>>>> embedded
>>>>>>>>>>>>>>> Ignite node for Kubernetes/Spring Application/etc
>>>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>> 
>>>>>>> 
>>>>> 
>>>>> 
>>>> 
>>> 

Reply via email to