Search:

Search all manuals
Search this manual
Manual
Couchbase Developer's Guide 2.0
Community Wiki and Resources
Download Couchbase Server 2.0
Couchbase Server 2.0 Manual
Client Libraries
Couchbase Server Forum
Additional Resources
Community Wiki
Community Forums
Couchbase SDKs
Parent Section
3 Accessing Data with Couchbase SDKs
Chapter Sections
Chapters

3.4. About Asynchronous Methods

All Couchbase SDKs provide data operations as synchronous methods. In the case of synchronous methods, your application will block and not continue executing until it receives a response from Couchbase Server. In most SDKs, notably Java, Ruby and PHP, there are data operations you can perform asynchronously; in this case your application can continue performing other, background operations until Couchbase Server responds. Asynchronous operations are particularly useful when your application accesses persisted data, or when you are performing bulk data stores and updates.

There are a few standard approaches in Couchbase SDKs for asynchronous operations: 1) performing the asynchronous method, then later explicitly retrieving any results returned by Couchbase server and are stored in runtime memory, 2) performing an asynchronous method and retrieve the results from memory in a callback, and/or 3) perform an event loop which waits for and dispatches events in the program.

The following briefly demonstrates the first approach, where we perform an asynchronous call and then later explicitly retrieve it from runtime memory with a second call. The sample is from the PHP SDK:

<?php
$cb = new Couchbase();

$cb->set('int', 99);
$cb->set('array', array(11, 12));

$cb->getDelayed(array('int', 'array'), true);

//do something else

var_dump($cb->fetchAll());
?>

In the first two lines we create a new Couchbase client instance which is connected to the default bucket. Then we set some sample variables named int and array. We perform an asynchronous request to retrieve to retrieve the two keys. Using the fetchAll call we can retrieve any results returned by Couchbase server which are now in runtime memory.

This is only one example of the pattern of method calls used to perform an asynchronous operation. A few more examples will follow in this section, therefore we introduce the concept here. For more information, see Section 7.3, “Synchronous and Asynchronous Transactions”