Skip to content

Improvement Release

Compare
Choose a tag to compare
@sboesebeck sboesebeck released this 08 Jun 14:50
· 3699 commits to master since this 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() ane query.asIterable(1000) will return an instance of the DefaultIterator (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