ProxyStore provides a unique interface to object stores through transparent object proxies that is designed to simplify the use of object stores for transferring large objects in distributed applications. ProxyStore is backed by a suite of object storage backends including shared file systems, Redis, and KeyDB and custom backends that enable multi-site workloads and fast intra-site communication via RDMA.
ProxyStore’s goals are to:
- Improve productivity. ProxyStore enables easy decoupling of communication from the rest of the code, allowing developers to focus on functionality and performance.
- Improve compatibility. Consumers of data can be agnostic to the communication method because object proxies handle the communication behind the scenes.
- Improve performance. Transport methods and object stores can be changed at runtime to optimal choices for the given data without the consumers being aware of the change.
Funding and Acknowledgements