Synchronous Operation function calls, are typically identified by an -s or _s suffix in the function name. (In "c" SDKs)
Synchronous Operation can be used when an application using the LDAP does not need to perform Asynchronous Operations, and if it does not attempt to process multiple operations on the same connection at the same time, then you can use the Synchronous Operation.
Synchronous Operation may achieve a significant increase in throughput and reduction in response time. In our testing, we have generally seen a performance improvement of about 15-20% by enabling the option to use Synchronous Operation.
You should always use Synchronous Operations when using LDAP Connection Pools for reasons as stated above.
Bind Request and Bind Response must be Synchronous Operation#In particular "Before processing a Bind Request, all uncompleted operations MUST either complete or be abandoned" and "After sending a Bind Request, clients MUST NOT send further LDAP PDUs until receiving the Bind Response."
This is because a bind operation is used to change the authentication state of a connection (and in some cases may also include negotiating a communication security layer). It is dangerous to have other types of operations in progress on the connection while a Bind Request is being processed because the bind processing may change the nature of the response to the client.
More Information#There might be more information for this subject on one of the following:
- Asynchronous Operation
- Bind Request
- Byzantine Fault Tolerance
- Clock skew
- Functions as a Service
- LDAP Connection Pool
- LDAP Request
- Tips using UnboundID LDAP SDK
- [#1] - Authenticate LDAP users in asynchronous mode with UnboundID LDAP SDK - based on information obtained 2016-02-28-