Skip to content

proxystore.store.multi

MultiStore Implementation.

MultiStore

MultiStore(
    name: str,
    connectors: dict[str, tuple[Connector[Any], Policy]],
    *,
    serializer: SerializerT | None = None,
    deserializer: DeserializerT | None = None,
    cache_size: int = 16,
    metrics: bool = False
) -> None

Bases: Store[MultiConnector]

Store wrapper for MultiConnector.

Warning

This wrapper exists for backwards compatibility with ProxyStore <=0.4.* and will be deprecated in version 0.6.0.

Parameters:

  • name (str) –

    Name of the store instance.

  • connectors (dict[str, tuple[Connector[Any], Policy]]) –

    Mapping of names to tuples of a Connector and Policy.

  • serializer (SerializerT | None) –

    Optional callable which serializes the object. If None, the default serializer (serialize()) will be used.

  • deserializer (DeserializerT | None) –

    Optional callable used by the factory to deserialize the byte string. If None, the default deserializer (deserialize()) will be used.

  • cache_size (int) –

    Size of LRU cache (in # of objects). If 0, the cache is disabled. The cache is local to the Python process.

  • metrics (bool) –

    Enable recording operation metrics.

Source code in proxystore/store/multi.py
def __init__(
    self,
    name: str,
    connectors: dict[str, tuple[Connector[Any], Policy]],
    *,
    serializer: SerializerT | None = None,
    deserializer: DeserializerT | None = None,
    cache_size: int = 16,
    metrics: bool = False,
) -> None:
    warnings.warn(
        'The MultiStore will be deprecated in v0.6.0. Initializing a '
        'Store with a Connector is preferred. See '
        'https://github.com/proxystore/proxystore/issues/214 for details.',
        DeprecationWarning,
        stacklevel=2,
    )
    connector = MultiConnector(connectors)
    super().__init__(
        name,
        connector,
        serializer=serializer,
        deserializer=deserializer,
        cache_size=cache_size,
        metrics=metrics,
    )