Difference between revisions of "What's new in 4.5"

From AOLserver Wiki
Jump to navigation Jump to search
m
Line 7: Line 7:
 
* New '''ns_pools''' command to map method/URL's to specific thread pools.
 
* New '''ns_pools''' command to map method/URL's to specific thread pools.
 
* New '''ns_limits''' command  control the number of threads executing and/or waiting for execution by method/URL.
 
* New '''ns_limits''' command  control the number of threads executing and/or waiting for execution by method/URL.
 +
*'''Note:''' The new scheme does not pick up connection thread pool configurations from earlier versions of AOLServer. Please see the new example configuration files, and the documentation for [[ns_pools]] and [[ns_limits]], for instructions in upgrading your configuration.  There are known issues when using this feature in conjunction with virtual servers; see the SourceForge bug list (and development mailing list archive) for details.
  
 
=== I/O Features: ===
 
=== I/O Features: ===

Revision as of 20:32, 2 August 2007

This is a partial list of new features and major changes in AOLserver 4.5 (compared to 4.0). If you know of anything that is missing, please add it.

Connection Management:

These two commands can be used together to map slow running requests to a specific pool and to set limits to avoid overload.

  • New ns_pools command to map method/URL's to specific thread pools.
  • New ns_limits command control the number of threads executing and/or waiting for execution by method/URL.
  • Note: The new scheme does not pick up connection thread pool configurations from earlier versions of AOLServer. Please see the new example configuration files, and the documentation for ns_pools and ns_limits, for instructions in upgrading your configuration. There are known issues when using this feature in conjunction with virtual servers; see the SourceForge bug list (and development mailing list archive) for details.

I/O Features:

  • New Ns_QueueWait API to enable event-driven callbacks in the driver thread before dispatching to pools for processing.
The allows drivers to augment data received from the client (headers, request, content) with additional data fetched over the network (likely stored in the new Ns_Cls "connection local storage" API's) before dispatching to the connection threads. An example would be to add certain personalization data received via a web service. The rationale here is that I/O events are cheap so do those upfront instead of having expensive connection threads burdened with wasteful blocking I/O. This is a somewhat obscure and technical interface.
  • Added ability to manage larger file uploads by spooling to a temporary file.

ADP Improvements:

  • Added a new execution caching technique at the ns_adp_include level which allows you to save the results of execution of an included ADP and includes below that for reuse on subsequent connections up to a specified time.
  • Added singlescript config option which turns ADP pages into a single script enabling syntax such as "<% foreach e $list { %> element <%= $e %> here <% } %>".
  • Added output buffer improvements via new Ns_ConnFlush.
  • Added automatic UTF-8 to output charset encoding.
  • Added gzip output compression.
  • Added streaming output in chunked-encoding format instead of the previous "response with no length" HTTP/1.0 method.
  • Enhanced ADP error handling and reporting.
  • Added ability to trace ADP pages. Trace output is written to the server log.

Other Improvements:

  • New Ns_TclRegisterTrace API to enable callbacks at key state transition points in a much more natural way. The ns_ictl command has been updated to support script-level traces.
  • New Ns_Task API designed to replace the old Ns_SockCallback API which didn't do a very good job at managing timeouts along with I/O events.
  • New ns_returnmoved command to return 301 http status code and redirect to a new URL.
  • New ns_cache command based on ideas from the ns_cache module. This is not backward compatible with the ns_cache module.
  • New ns_loop_ctl command to monitor and manage for, while, and foreach loops.
  • Added ns_ictl package subcommand to ns_ictl command to handle loading of Tcl packages.
  • Added new ns_register_fastpath command to re-enable fastpath after a previous call to ns_register_proc.
  • Added ability to access more AOLserver functionality from a tclsh (nsv_*, ns_thread, etc).
  • Stack checking has returned. In a multi-threaded application like AOLserver, stack checking is important for detecting buffer overruns and deep call trees blowing your thread stack, etc.
  • More detailed information when logging uncaught Tcl errors. Especially for connection threads, details of the HTTP request are logged to make diagnosing the root cause of errors easier.