Posted by
Arjan van Staalduijnen  -  July 2011
By nature Roxen's editserver does some file processing through an external process per file for uncached files. This patch adds some built-in support for some of these situations. This patch avoids the need to fork the external process for committed files by processing that information within Roxen. The patch also adds internal processing for creating directories in a user's local workarea, which often are temporary by nature.

At RTL we've been using this built-in support for cvs processing since 2007. In our situation it has moved our editserver bottlenecks from being CPU-bound to I/O-bound. As an example, in a test setup creating a full dump of our repository, this patch reduced the required time from 57 hours to 1.5 hours on SSD discs, being limited by I/O instead of CPU, and while maintaining a much more responsive system.

BEWARE: it has not been tested using workflows in Roxen and it has not been tested on Windows platforms. It might show faulty behaviour there, or it might just not enhance performance in those situations.

Make sure to test in a proper test setup first. Use at your own risk.

Patch is available at
Posted by
Martin Stjernholm  -  July 2011
I took a look at this patch back then, to see if we could integrate it into the product. As I remember it, the main problems were that it didn't cope with all use cases, and it didn't work with the internal autorepair function.

The most important use case which probably would break is the workflow feature to publish only in the last workflow step.

The autorepair function is responsible for getting the system back into a working state after some kind of inconsistency has occurred in the underlying file system, which can happen e.g. after a forced server shutdown at the wrong moment, or when the server has run out of disk. If the autorepair doesn't work then such inconsistencies may trig internal server errors repeatedly until they are repaired manually.

There may be more issues as well.

We at Roxen would like to do this optimization, but we judged that a lot more work was required before it could fully replace the old/current use of external cvs processes, unfortunately.

So it's definitely a "use at your own risk" thing. Roxen can not provide support if problems occur as a result of this.
Search this thread: