Improvement Release
This release was undergoing extensive testing, we were testing 8 Beta versions. Goal was to increase stability and performance in heavy load environments. We were experiencing some blocking threads under heavy load. We addressed this issue by doing some critical changes. These are the changes
- removed all synchronized calles from the code (even Hashtable)
- removed Log4J (it was creating an issue), replaced it with a lightweight logger implementation (configured easily with
MorphiumConfig
and/or by adding-Dmorphium.log.file=STDOUT/STDERR/FILENAME
-Dmorphium.log.level=1-5
or-Dmorphium.log.synced=true/false
to your startup). If you still have the need for morphium to use log4j, please tell us. We did not implement the bridge yet, bout this could easily be done. - removed usage of
skip
from iterator hence for some reason skip causes a lot of load on mongo and some timeouts, hence the prefetching iterator (need skip here to do the paging) is not the default iterator anymore. query.asIterable()
anequery.asIterable(1000)
will return an instance of theDefaultIterator
(no prefetching, no skip),query.asIterable(1000,5)
returns a prefetching iterator.- the
BufferedWriter
(when @writebuffer Annotation) now uses proper bulk operations - added a shutdown hook for proper killing of all threads and executors upon exit
- added some internal caches to reduce time for reflection
- improvement in Messaging
- minor changes in logging and stuff