Cornerstone clustered environments consist of multiple servers sharing information in one SQL database to save storage and distribute client connections, memory usage, and I/O throughput. These systems service large installations with many concurrent transactions. Cornerstone uses a thread pool model to service requests from clients and uses Windows NT I/O completion port technology, which is more efficient than typical asynchronous Winsock implementations.You can fine-tune your Cornerstone’s performance and memory consumption based on typical usage scenarios, which vary among installations.
For small numbers of users, larger I/O buffers will improve usability by allowing active connections to remain open longer. For larger installations, smaller I/O buffers and timeout values for sessions and idle connections will reduce memory consumption.
The two points to consider when scaling a Cornerstone server for a large user base are Memory Consumption and Transaction Throughput. The second is a more complicated measurement, thanks to factors including the type of transaction requested, the size of the request/response, whether a socket connection was already active, what information was cached either by Cornerstone or SQL Server or the file system, and network latency
For more in-depth information on memory consumption, active connections, user parameters, I/O buffers, and ACL permissions for creating a scaled environment, see our QuickStart: Scaling Best Practices with Cornerstone