Thursday, March 02, 2006

Java Object Caching: Requirements

This is a follow-up of the Java Object Caching post that was posted on March 1st. As mentioned earlier, Object Caching refers to caching objects that are neither fully static not fully dynamic. There are a few Object Caching services available under the Apache License, and are quite easy to plug into your applications. The following is a list of features that may be available in a caching service, which can be used as a guide for determining the right requirements of a caching tool for your needs:
  1. Minimal dependencies
  2. Element grouping
  3. Quick nested categorical removal
  4. Data expiration: idle time, max life
  5. Configurable runtime parameters
  6. Security: Authentication or authorization should be completed before objects return from the cache. The information transmitted between caches should be encrypted.
  7. Disk overflow (and defragmentation)
  8. Thread pool controls
  9. Region data separation and configuration
  10. Element event handling
  11. Fine grained element configuration options
  12. Remote synchronization
  13. Remote store recovery
  14. Scheduled cache expiry
  15. Non-blocking "zombie" (balking facade) pattern: When using distributed caching, Puts and removals are queued and occur asynchronously in the background, and hence are non-blocking. Get requests are synchronous and can potentially block if there is a communication problem.
  16. Lateral distribution of elements via HTTP, TCP, or UDP
  17. UDP Discovery of other caches
  18. Remote server chaining (or clustering) and failover
  19. Reliability
  20. Maintainability
These are a few general issues when considering caching services. The specific application may have a superset or a subset or a combination with other requirements.

No comments:

Post a Comment

Popular Posts