|
Welcome to the November 2005 edition of Riverace's ACE News and
Tips newsletter. This issue contains information about the new ACE
Reactor implementation for Linux 2.6 kernels, ACE_Dev_Poll_Reactor;
and news about what's coming up in the next ACE release.
| Introducing ACE_Dev_Poll_Reactor on Linux |
 |
|
Our March
2005 newsletter discussed ways to handle large numbers of
network connections. Each platform has its own tricks for
navigating the difficulties, but recent Linux kernels (such as
in Red Hat Enterprise Linux 4) offer the epoll facility, a new
and very scalable, high performance mechanism for
demultiplexing I/O events across many thousands of connections
simultaneously. Ossama Othman, a DOC group member, contributed
the original experimental implementation of
ACE_Dev_Poll_Reactor to ACE. Thanks to the sponsorship of Sharpcast,
Riverace is completing the implementation of
ACE_Dev_Poll_Reactor using the epoll facility on Linux. The
upcoming ACE 5.4.8 beta will be the first public beta
containing the completed implementation for beta
testing.
The most visible characteristics of ACE_Dev_Poll_Reactor
are listed below, with notes that compare and contrast it with
other ACE reactor implementations described in C++NPv2.
- Level triggered event detection. Like
the select()-based reactor implementations,
ACE_Dev_Poll_Reactor detects events by their current level,
or state, and not on edge transitions, like
ACE_WFMO_Reactor. Although the underlying epoll facility can
detect events using either method, ACE_Dev_Poll_Reactor's
use of epoll chooses level triggered.
- Event dispatching in parallel. In
situations where multiple threads are running the reactor
event loop, ACE_Dev_Poll_Reactor can dispatch events to the
same handler simultaneously. Like ACE_WMFO_Reactor, there is
no serialization of handlers during dispatch. This can
greatly increase the parallelization of work, but requires
more care when programming to properly serialize access to
event handler state and data.
- Implements reference counting. As with
other ACE reactor implementations, ACE_Dev_Poll_Reactor
implements the event handler reference counting scheme
discussed in the October
2005 newsletter.
The ACE 5.4.8 beta should be available within the next
week. If you're developing for Linux and require thousands of
network connections, we recommend you evaluate the use of
ACE_Dev_Poll_Reactor for your project.
|
| ACE.next: What's New? |
 |
|
The ACE development community is hard at work on the next
version of ACE. Here are some of the things you can look
forward to (items in bold are new or changed since last
month):
- Native library path-searching. Previous ACE versions's
implementation of ACE_DLL (used in loading dynamic services)
implemented a search of the configured path-search to try
and locate the desired library file (DLL) and then used the
full pathname to load the library. This skirted some
platforms's rules for path search and security settings.
This has been changed in the next ACE version to make use of
all of the native platform's path-search and security
facilities.
- Improved wide-character support. Wide- character support
has been included in ACE for many years on Windows (also
known as Unicode builds). However, wide-character support
for POSIX platforms has been sorely lacking. As ACE's reach
expands, this has become a more important issue. Riverace is
leading the completion of wide-character support in the next
version of ACE. This support is also available now in the
ACE 5.4b fix kit.
- GNU autotools support. Riverace is the lead developer in
charge of adding auto-configure support to ACE. For
native-build, non-Windows systems, autoconf will very likely
become the way to configure and build ACE. This will help
insure that ACE uses the latest features available on each
supported platform, and reduce the work required to build
ACE. No more picking the right config.h or
platform_macros.GNU file. Just do ./configure then make.
Ahhh...
- Support for g++ 4.0 and 3.4.
- Support for Red Hat Enterprise Linux 4.
- Support for Solaris 10.
- Support for Microsoft Visual Studio 2005 on desktop,
Pocket PC 2003, and Windows Mobile 5.0.
- Support for IBM AIX 5.3 on POWER with IBM's C++ V7.
- Support for HP-UX 11iv2 on both Itanium2 and PA-RISC.
- Newer C++ Features Being Used. As the range of
ACE-supported compilers matures and older compilers are
taken out of service, ACE can make more use of newer C++
features while still maintaining its stellar portability
record. For example, many methods that returned 1 or 0 as an
int now return bool. Small steps, yes, but significant ones.
You'll see more modern C++ usage as time goes on.
- The ACE and ACE_OS classes, previously containing a
number of static member functions, are now C++ namespaces.
Similar ACE-internal classes, such as ACE_Sock_Connect, are
no longer in use.
- Completed ACE_Dev_Poll_Reactor. Sharpcast
is sponsoring Riverace's work to complete this important
class, enabling use of the new epoll facility on newer Linux
kernels. Thanks to Sharpcast's forward-thinking investment
in this important class, the entire ACE user community will
benefit from the greatly increased scalability of the
Reactor framework on Linux.
As you can see, the pace of changes is slowing and the ACE
development team is beginning to focus more on testing in
preparation for the release of ACE 5.5. The current estimate
for ACE 5.5's release is late in 2005, so there's time to get
a bit more in.
|
| ACE 5.4c Fix Kit Released |
 |
|
The ACE 5.4c Fix Kit was recently released. The 5.4
fix kit ChangeLog contains entries for all changes made.
|
|
|
Featured Book: C++ Network Programming, Volume 2
(C++NPv2) |
|
|
|
Now in its second printing, this widely acclaimed book
covers the major frameworks in ACE, how and why they're
designed as they are, and examples for how to use them. This
book also contains in-depth analysis of the "how and why" of
the ACE Reactor framework's design and usage, including more
information about the ACE_Event_Handler, discussed in this
issue of the newsletter. Every serious ACE user should have
this book on their desk at all times. Buy it now from amazon.com...
|
|