What is HiPerf SQL Auth?

The high performance SQL authentication modules are designed to replace the commonly-used mod_auth_mysql and mod_auth_pgsql. With their highly optimized architectures, our Proxigence variants are much better than their standard counterparts, -without- requiring large amounts of memory or relying on client-side technologies. Please note that for the sake of simplicity in the discussion below, we refer to only the MySQL version of our high performance authentication module. However, there is an equivalent version for PostgreSQL as well, with the same optimizations and drop-in compatibility.

Problem Overview

mod_auth_mysql is one of the more commonly used of the standard Apache authentication and authorization modules. It is especially useful for high-traffic sites that are setup in a load-balanced cluster. In such a configuration, it is often much easier to manage a single database repository of username, password, and authorization group data rather than maintaining and synchronizing multiple password stores on each individual cluster node.

However, even with optimal tunings for relevant MySQL runtime parameters (i.e. allowed connections/threads, cache sizes), the MySQL database overhead can be considerable for heavily trafficked members areas. This is particularly true for situations where the MySQL authentication database resides on a separate machine from the web servers -- e.g. TCP/network overhead as well as SQL overhead. Under heavy conditions, these constraints can even cause mod_auth_mysql to become the performance bottleneck for a web sites' throughput. Many webmasters, for example, have encountered situations where MySQL cannot handle all the simultaneous authentication requests (i.e. capped out) and effectively drops some of them. This results in a client browser experience where authentication doesn't work, repetitive 401 responses are sent, the grey user/pass dialog box is popped up repeatedly even after a user/pass are given for a particular realm, or broken images/content are returned.

Solution Architecture

Designed to address these performance issues, our high performance MySQL auth module (mod_auth_hiperf_mysql) achieves much better performance from its highly optimized code base, -without- hogging memory or using cookies or similar, client-side techniques. Under real world tests, mod_auth_hiperf_mysql is typically 1-2 orders of magnitude (i.e. 10-100 times) faster than the standard mod_auth_mysql. This dramatically exceeds gains from well-known speedups, such as database tuning or connection pooling. In addition to the huge improvements in authentication/authorization throughput so that it no longer is a performance bottleneck, mod_auth_hiperf_mysql also significantly reduces the load on the MySQL database so that it can be better used for dynamic, content-related activity.

The HiPerf MySQL authentication module is fully compliant with Apache and HTTP standards for authentication and authorization. And, in addition to simple username/password setups, the module includes support for multiple authentication realms per domain and authorization groups. The HiPerf MySQL module is drop-in compatible with the standard versions it is designed to replace -- requiring no changes to the existing setups for members tables, Apache configuration, or load-balanced domain clusters.

System Requirements

The high performance MySQL auth module requires a UNIX-based, Apache server configured with dynamic shared object support (i.e. DSO, mod_so.c). The software is compatible with all Apache 2.x releases, and mod_auth_hiperf_mysql has been deployed successfully on many UNIX variants (i.e. Linux, FreeBSD, Solaris, MacOSX) in both 32bit and 64bit flavors. The module is not currently available for WIN32 versions of Apache. Of course, the software module also requires money.

Company  |  Privacy  |  Legal  |  Contact
Copyright © Proxigence