[
https://issues.apache.org/jira/browse/IGNITE-8049?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16426925#comment-16426925
]
Ivan Rakov commented on IGNITE-8049:
------------------------------------
[~astelmak], I've looked through your changes and have some comments:
1. If you want to introduce new Ignite system property, it's better to declare
it along with other ones as static field of IgniteSystemProperties class.
2. It's arguable and depends on personal sense of code clarity, but I expect
that method "*can*LockRetry" will return boolean. I'd rename it into
"*check*LockRetryCount" or something like that.
3. BPlusTree#getLockRetries accesses property map on every B+ tree operation.
It's unlikely that it will be changed in runtime - so I guess map lookup result
can be memoized as static field of B+ tree class (you still will be able to
override it via overriding #getLockRetries).
Also, few comments regarding code style:
1. New field BPlusTree.Get#lockRetriesCnt lacks a meaningful javadoc.
2. BPlusTree.Get#canLockRetry lacks blank line
3. BPlusTreeSelfTest - unused imports
4. BPlusTreeSelfTest#testRetries lacks blank line (between put and fail)
> Limit the number of operation cycles in B+Tree
> ----------------------------------------------
>
> Key: IGNITE-8049
> URL: https://issues.apache.org/jira/browse/IGNITE-8049
> Project: Ignite
> Issue Type: Bug
> Affects Versions: 2.4
> Reporter: Alexey Goncharuk
> Assignee: Alexey Stelmak
> Priority: Major
> Fix For: 2.5
>
>
> When a tree is corrupted, a B+Tree operation may result in an infinite loop.
> We should limit the number of retries and fail if this limit is exceeded.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)