Forum OpenACS Development: Tcl 8.6.14 released

Collapse
Posted by Gustaf Neumann on
Dear all,

Today, Tcl 8.6.14 was released [1]. This release is very much appreciated, and comes with improvements OpenACS installations. One important change is the performance improvement for the Tcl-native exec and pipe-open due to the avoidance of old-style fork() system calls. When nsproxy is used, the change on [exec] helps just in a few situations (when new proxy workers are started), whereas the change on pipe-open (e.g. [open |$cmd]) applies always. So far, a fork() call could bring the complete server (all threads, no matter how many were defined, all communication with the db) to a full stop for quite a long time (we saw halts up to 6 seconds and more real life [2] when running under virtual machines). This is especially bad when close to real-time performance is needed (e.g., video conferences).

The new implementation in Tcl reduces the invocation time significantly. Even more important, the time is now essentially independent of the size of the memory footprint of the server. The chart below shows the pipe-open times of OpenACS.org, which is running the release candidate of Tcl 8.6.14 for about three weeks.

The install-ns script [3] was updated and defaults now to Tcl 8.6.14

All the best
-g

[1] https://sourceforge.net/projects/tcl/files/Tcl/8.6.14/
[2] https://openacs.org/forums/message-view?message_id=5539060
[3] https://openacs.org/xowiki/naviserver-openacs