keith-turner opened a new issue, #4911: URL: https://github.com/apache/accumulo/issues/4911
**Describe the bug** The NativeMap code creates iterators over the native map that have a java component and a native component. The native component has a small amount of native memory allocated that the java code references and frees. AFAICT freeing these native iterators is handled in the code by Java GC cleaners, this needs to be double checked. These iterators can be created really frequently creating a lot of small work for the Java GC cleaners. This does not seem like a good practice and it is unclear what the impact on Java GC is by making it do all of this work. It is likely that the impact can change depending on java gc settings, so it is not good for predictability. **Expected behavior** The Native map code makes a best effort attempt to always free the native iterator memory for normal operations and only relies on the java gc cleaners for exceptional edge cases. The following native map code is involved in this. NativeMap.NMIterator NativeMap.ConcurrentIterator NativeMap.createNMI NativeMap.deleteNMI These native map iterators are used by scans and minor compactions which have well defined life cycles. Hopefully can refactor the code to free native memory when the iterator is no longer used. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
