Skip to content

Commit d19f795

Browse files
committed
Clarify a few points about the multi-threaded client
1 parent f9edb3d commit d19f795

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

documentation/sphinx/source/api-general.rst

+8-1
Original file line numberDiff line numberDiff line change
@@ -132,10 +132,17 @@ If you suspect that a client process's workload may be saturating the network th
132132
Multi-threaded Client
133133
=====================
134134

135-
FoundationDB client library can start multiple worker threads for each version of client that is loaded. Every single cluster will be serviced by one of the client threads. If the client is connected to only one cluster, exactly one thread would be active and the rest will remain idle. Hence, using this feature is useful when the client is actively using more than one cluster.
135+
FoundationDB client library can start multiple worker threads for each version of client that is loaded.
136+
137+
Currently, each database object is associated with exactly one of the threads, so a user would need at least ``N`` database objects to make use of ``N`` threads. Additionally, some language bindings (e.g. the python bindings) cache database objects by cluster file, so users may need multiple cluster files to make use of multiple threads. This may be improved in the future.
136138

137139
Clients can be configured to use worker-threads by setting the ``FDBNetworkOptions::CLIENT_THREADS_PER_VERSION`` option.
138140

141+
.. warning::
142+
In order to use the multi-threaded client feature, you must configure at
143+
least one external client. See :ref:`multi-version client API
144+
<multi-version-client-api>` for how to configure an external client.
145+
139146
.. _client-trace-logging:
140147

141148
Client trace logging

0 commit comments

Comments
 (0)