summaryrefslogtreecommitdiff
path: root/src/third_party/wiredtiger/src/docs/async.dox
diff options
context:
space:
mode:
Diffstat (limited to 'src/third_party/wiredtiger/src/docs/async.dox')
-rw-r--r--src/third_party/wiredtiger/src/docs/async.dox135
1 files changed, 0 insertions, 135 deletions
diff --git a/src/third_party/wiredtiger/src/docs/async.dox b/src/third_party/wiredtiger/src/docs/async.dox
deleted file mode 100644
index fcc0e590369..00000000000
--- a/src/third_party/wiredtiger/src/docs/async.dox
+++ /dev/null
@@ -1,135 +0,0 @@
-/*! @m_page{{c,java},async,Asynchronous operations}
-
-WiredTiger supports asynchronous operations; as an example of where this
-can be useful, a server application handling requests from a network as
-fast as possible may want its worker threads to initiate a unit of work
-and then immediately respond to the next request, rather than waiting
-for the results of the first request.
-
-WiredTiger supports asynchronous operations through the WT_ASYNC_OP
-handle. The work unit represented by the WT_ASYNC_OP handle is queued
-by the application and performed by an internal WiredTiger worker
-thread. When the work unit completes, the WiredTiger thread makes a
-callback to notify the application the operation is finished, along with
-providing any results and error values.
-
-The asynchronous operation handle operates in a manner similar to a
-WT_CURSOR handle. An asynchronous operation includes:
-
-- getter/setters for key and value fields
-- encoding of fields to store in the data source
-- methods to modify and retrieve specific data (for example, insert and update)
-- a method to compact a table
-
-The WT_ASYNC_OP handle does not survive after the callback function
-returns into the WiredTiger library. When the application callback
-returns the handle is returned to the system pool. The application
-callback must copy out any key, value or other information that it needs
-before the callback function returns.
-
-@section async_config Configuring asynchronous operations
-
-To perform asynchronous operations, the application must first include
-the \c async configuration option when ::wiredtiger_open is called.
-Additional configuration parameters include the number of WiredTiger
-worker threads created to handle the incoming queue of operations and
-the maximum number of simultaneous asynchronous operations that are
-expected.
-
-For example, the following configures an application for asynchronous
-operations, with a maximum of 10 asynchronous operations and 2 supporting
-threads:
-
-@snippet ex_async.c async example connection
-
-If the number of requests exceeds the configured maximum number, a
-WT_ASYNC_OP handle won't immediately be available and an error will be
-returned to the application when it attempts to allocate a handle. If
-the number of configured worker threads are unable to keep up with the
-requests, requests will be forced to wait for worker threads to become
-available.
-
-@section async_alloc Allocating an asynchronous operations handle
-
-A WT_ASYNC_OP handle is allocated using the WT_CONNECTION::async_new_op
-method. This method takes an existing object URI and a callback. For
-example:
-
-@snippet ex_async.c async handle allocation
-
-To aid the application in matching up an asynchronous operation with a
-subsequent call to the callback function, every handle contains a unique
-\c uint64_t identifier and ::WT_ASYNC_OPTYPE type. The \c identifier is
-assigned when the handle is allocated and the \c type is assigned when
-the asynchronous operation is queued.
-
-To retrieve the id, use the WT_ASYNC_OP::get_id method:
-
-@snippet ex_async.c async get identifier
-
-To retrieve the ::WT_ASYNC_OPTYPE type, use the WT_ASYNC_OP::get_type method:
-
-@snippet ex_async.c async get type
-
-WiredTiger only allows a limited number of method calls back into the
-library using the WT_ASYNC_OP handle, while in the callback function.
-The application is allowed to retrieve than handle's key, value,
-identifier and the operation type from the WT_ASYNC_OP handle.
-
-Here is a complete example callback function implementation, from
-the example program @ex_ref{ex_async.c}:
-
-@snippet ex_async.c async example callback implementation
-
-@m_if{java}
-@snippet ex_async.c async example callback implementation part 2
-@m_endif
-
-@section async_operations Executing asynchronous operations
-
-The WT_ASYNC_OP handle behaves similarly to the WT_CURSOR handle, that
-is, the key and value are initialized and then an operation is
-performed.
-
-For example, the following code does an asynchronous insert into the
-table:
-
-@snippet ex_async.c async insert
-
-For example, the following code does an asynchronous search of the
-table:
-
-@snippet ex_async.c async search
-
-When a database contains multiple tables, it may be desired to compact
-several tables in parallel without having to manage separate threads
-to each call WT_SESSION::compact. Alternatively, compacting several
-tables serially may take much longer. The WT_ASYNC_OP::compact method
-allows the application to compact multiple objects asynchronously.
-
-@snippet ex_async.c async compaction
-
-@section async_flush Waiting for outstanding operations to complete
-
-The WT_CONNECTION::async_flush method can be used to wait for all
-previous operations to complete. When that call returns, all previously
-queued operations are guaranteed to have been completed and their
-callback functions have returned.
-
-@snippet ex_async.c async flush
-
-Because WT_CONNECTION::close implicitly does a WT_CONNECTION::async_flush,
-the call is not required in all applications.
-
-@section async_transactions Asynchronous operations and transactions
-
-Each asynchronous worker thread operates in its own session, executing
-a single asynchronous operation with the context of the session's
-transaction. Therefore, there is no way to combine multiple, related
-updates into a single transaction when using asynchronous operations.
-
-The transaction is committed if the operation was successful and the
-application callback returns success, otherwise the transaction is
-rolled back.
-
-*/