swh.objstorage.backends.winery.rwshard module#

class swh.objstorage.backends.winery.rwshard.IdleHandler(name: str, timeout: float, callback: Callable[[], None])[source]#

Bases: Thread

Call the callback after being idle for timeout seconds.

This constructor should always be called with keyword arguments. Arguments are:

group should be None; reserved for future extension when a ThreadGroup class is implemented.

target is the callable object to be invoked by the run() method. Defaults to None, meaning nothing is called.

name is the thread name. By default, a unique name is constructed of the form “Thread-N” where N is a small decimal number.

args is a list or tuple of arguments for the target invocation. Defaults to ().

kwargs is a dictionary of keyword arguments for the target invocation. Defaults to {}.

If a subclass overrides the constructor, it must make sure to invoke the base class constructor (Thread.__init__()) before doing anything else to the thread.

quiesce()[source]#

Quiesce the timeout.

This should generally be used via the quiesce_then_reset() context manager, which wraps a block of code to quiesce the timeout while the code runs, then resets the timeout on completion.

reset()[source]#

Reset the timeout clock.

This should generally be used via the quiesce_then_reset() context manager, which wraps a block of code to quiesce the timeout while the code runs, then resets the timeout on completion.

quiesce_then_reset()[source]#

Wrap a block of code to quiesce the timeout while the code runs, then reset the timeout on completion.

join(timeout=None)[source]#

Gracefully terminate the thread.

run()[source]#

Method representing the thread’s activity.

You may override this method in a subclass. The standard run() method invokes the callable object passed to the object’s constructor as the target argument, if any, with sequential and keyword arguments taken from the args and kwargs arguments, respectively.

class swh.objstorage.backends.winery.rwshard.ShardIdleTimeoutCallback(*args, **kwargs)[source]#

Bases: Protocol

A function which takes a RWShard as shard argument, used as idle timeout callback for RWShard.

class swh.objstorage.backends.winery.rwshard.RWShard(name: str, base_dsn: str, shard_max_size: int, application_name: str | None = None, idle_timeout_cb: ShardIdleTimeoutCallback | None = None, idle_timeout: float | None = 5, **kwargs)[source]#

Bases: Database

disable_idle_handler()[source]#
property name: str#
property table_name: str#
is_full() bool[source]#
create() None[source]#
drop() None[source]#
total_size() int[source]#
add(db: Connection, obj_id: bytes, content: bytes) None[source]#
get(obj_id: bytes) bytes | None[source]#
delete(obj_id: bytes) None[source]#
all() Iterator[Tuple[bytes, bytes]][source]#
count() int[source]#