Chapter 5. Writing and Deleting Records

Table of Contents

Write Exceptions
Writing Records to the Store
Other put Operations
Deleting Records from the Store
Using multiDelete()

This chapter discusses two different write operations: putting records into the store, and then deleting them.

Write Exceptions

There are three exceptions that you might be required to handle whenever you perform a write operation to the store. For simple cases where you use default policies, you can probably avoid explicitly handling these. However, as your code complexity increases, so too will the desirability of explicitly managing these exceptions.

The first of these is DurabilityException. This exception indicates that the operation cannot be completed because the durability policy cannot be met. For more information, see Durability Guarantees.

The second is RequestTimeoutException. This simply means that the operation could not be completed within the amount of time provided by the store's timeout property. This probably indicates an overloaded system. Perhaps your network is experiencing a slowdown, or your store's nodes are overloaded with too many operations (especially write operations) coming in too short of a period of time.

To handle a RequestTimeoutException, you could simply log the error and move on, or you could pause for a short period of time and then retry the operation. You could also retry the operation, but use a longer timeout value. (There is a version of the KVStore.put() method that allows you to specify a timeout value for that specific operation.)

Finally, you can receive a general FaultException, which indicates that some exception occurred which is neither a problem with durability nor a problem with the request timeout. Your only recourse here is to either log the error and move along, or retry the operation.