Improving Performance


Simol includes an integrated read/write/delete cache that is enabled by default. The default cache implementation (SimpleCache) is rather simplistic and does not support multi-server scenarios. However, even the default cache can dramatically improve performance and mitigates some of the side effects of SimpleDB's eventual consistency model.

Both full and partial attribute sets are cached. In othe words, if you get all attributes for an item and later get a single attribute, the full set of attributes will be returned from the cache rather than getting the single requested attribute from SimpleDB.

You can disable caching by setting SimolConfig.Cache to null.

Bulk Loads and Updates

There are several things you can do to improve the performance of mass data updates.
  • Add or update only the attributes that have changed if possible. See Typeless and Partial-Object Operations for more details.
  • Insert or update multiple items at a time by passing lists of items to SimolClient.Put. When you put multiple items at once Simol automatically uses the SimpleDB BatchPutAttributes operation to improve performance.
  • Delete multiple items at a time by passing lists of item names to SimolClient.Delete. Simol will automatically use the SimpleDB BatchDeleteAttributes operation.
  • Use multiple threads to insert and update data. See Asynchronous Operations for more details.
  • Temporarily set SimolConfig.BatchReplaceAttributes to false to improve the performance of BatchPutAttribute operations. Only use this when inserting new items. If you change this option for updates all new attribute values will simply be added to the existing ones.

Last edited May 24, 2011 at 12:39 PM by ashleytate, version 3


No comments yet.