USENIX Technical Program - Abstract - 7th Tcl/Tk Conference - February 2000
A Multi-threaded Server for Shared Hash Table Access
Andrej Vckovski and Jason Brazile, Netcetera AG
Abstract
This paper presents a multi-threaded socket server
allowing access to shared hash tables. It is implemented using Tcl 8.1
multi-threading capabilities and runs multiple Tcl interpreters to
service client requests. The application is designed as a pre-threaded
server which allows a single working thread to handle many requests.
The central shared data object is a hash table with structured values
which allows access by all threads. Synchronization is based on a
reader/writer lock implementation using the synchronization primitives
available in Tcl, i.e., mutexes and condition variables. The
application achieves insert rates that are significantly higher than
what current commercial database management systems achieve. The usage
of third-level language programming in C and application-specific
scripting in Tcl allows a design based on a light-weight, robust
kernel on the one hand and easily modifiable application-domain code on
the other.
The experiences with thread-safety and other threading features in
Tcl 8.1 have been largely positive in this real-world application.
- USENIX Members may view the full text of this paper in
HTML form, PDF form, and
PostScript form.
(Use your membership number as the username for access.)
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.
- To become a USENIX Member, please see our Membership Information.
- Current USENIX Members may change their password.
|