|
Distributed Asynchronous ProcessingHyperContent 1.x offered an asynchronous processing engine which started a single thread per request, which ran on the machine that received the request until it was complete. While this has proved very stable in production, there are concerns about the scalability of such an approach. HyperContent 2.0 offers a redesigned processing engine:
- Large batch executables are broken down into a set of smaller executables
- All asynchronous executables are serialized to disk and enqueued for processing
- Any number of servers can feed from the same executable queues
- A dedicated Batch Monitor thread recombines results from broken down batches and cleans up completed executables
- Out-of-the-box executables use the ContentServer.throttle() method to effectively yield processor time to real time web requests.
- Sensitive data that is required to process an executable (e.g. an SFTP password) is encrypted to disk using 2 key encryption, where the private key is automatically generated at startup and never written to disk.
|
| |