Hi, in a recent response <https://github.com/apache/jena/issues/1867#issuecomment-1546931793> to an issue it was said that "Fuseki - uses DatasetGraphInMemory mostly" . For my PR <https://github.com/apache/jena/pull/1865>, I added a JMH benchmark suite to the project. So it was easy for me to compare the performance of GraphMem with "DatasetGraphFactory.createTxnMem().getDefaultGraph()". DatasetGraphInMemory is much slower in every discipline tested (#add, #delete, #contains, #find, #stream). Maybe my approach is too naive? I understand very well that the underlying Dexx Collections Framework, with its immutable persistent data structures, makes threading and transaction handling easy and that there are no issues with consuming iterators or streams even after a read transaction has closed. Is it currently supported for consumers to use iterators and streams after a transaction has been closed? If so, I don't currently see an easy way to replace DatasetGraphInMemory with a faster implementation. (although transaction-aware iterators that copy the remaining elements into lists could be an option). Are there other reasons why DatasetGraphInMemory is the preferred dataset implementation for Fuseki?
Cheers, Arne