We are proud to anounce, that COPPER 4.1.1 has just been released. Besides a bugfix, this release contains a nice little performance enhancement which speeds up resubmit/savepoint and wait/notify in an idle system. In an idle copper engine, the database queue creator and readers sleep for a while before trying again. When a response arrives in copper (using ProcessingEngine.notify) the engine wakes up the queue creator to check for workflow instances that are ready to be resumed. If the creator has found at least one workflow instance to resume, it will wake up the database readers. Doing so, the latency times are as small as possible, unless the “notify” arrives AFTER the corresponding “wait” in the workflow is invoked.
If the “notify” occurs BEFORE the “wait”, the mechanism described above did not work, leading to long latency times because the queue processes are sleeping until their sleep interval is finished. In this release, we optimized this issuse. So even if the “notify” occurs before the “wait” there will be no unnecessary long latency times. On my local notebook with an Oracle 11g database the execution time of a resubmit/savepoint in an otherwise idle system melt down from 800ms to round about 10 to 20 ms.
You can get it here: https://github.com/copper-engine/copper-engine/releases/tag/4.1.1