A traditional Role and Resource Service driver contains a single thread of control for managing all driver events, such as role and resource requests. A multi-threaded driver works on multiple unique data sets so that requests for different unique data sets can be simultaneously processed. To accomplish this, the driver uses worker threads. The main thread listens to the incoming requests and is responsible for passing on the requests to the appropriate worker threads. Each worker thread can execute independently on a unique identity data set.
A unique identity data set comprises of data, such as users, groups, and containers, that is different based on certain attributes. When different unique identity data sets are configured in your environment, the driver uses worker threads to accomplish the tasks belonging to different disjoint sets at the same time. In addition, it remains responsive while doing lengthy or memory intensive operations. For example, while recalculating resources for a particular user, a multi-threaded driver can perform role or resource assignments on other users belonging to a different data set.
IMPORTANT:When the driver receives role and resource associations and role processing events, such as creation or deletion of roles, it starts processing these events only after completing the processing of all the events that are already submitted to the worker threads. This prevents any adverse impact on other operations. Similarly, it does not take up any new events until it finishes processing the current event and starts working in a single-thread mode.
By default, the driver is enabled for multi-threaded service. To configure the driver, see Section 12.0, Configuring a Multi-Threaded Role and Resource Service Driver.