feature: pool of connections to back end swift endpoint
configure a max pool size
store pool in JNDI, assume all SwiftStorageAdapter instances in a JVM share the pool (it is the same config file)
use commons-pool to implement pool (see DBUtil extension in cadc-inventory-util for example GenericObjectPool usage)
Option 1: pool internal to SwiftStorageAdapter
Option 2: create PooledSwiftStorageAdapter that simply pools instances of and delegates to SwiftStorageAdapter
side note: SwiftStorageAdapter is intended to be thread-safe and a cursory look at the underlying joss library suggests it is thread-safe as well, but if we don't want to trust that then we would go with what looks like option 1.
feature: pool of connections to back end swift endpoint
configure a max pool size
store pool in JNDI, assume all SwiftStorageAdapter instances in a JVM share the pool (it is the same config file)
use commons-pool to implement pool (see DBUtil extension in cadc-inventory-util for example GenericObjectPool usage)
Option 1: pool internal to SwiftStorageAdapter
Option 2: create PooledSwiftStorageAdapter that simply pools instances of and delegates to SwiftStorageAdapter
side note: SwiftStorageAdapter is intended to be thread-safe and a cursory look at the underlying joss library suggests it is thread-safe as well, but if we don't want to trust that then we would go with what looks like option 1.