Этот проект представляет собой реализацию распределенного хранилища данных, использующего консистентное хеширование для распределения данных по узлам (нодам).
<key>: Ключ, по которому будут сохранены данные.<value>: Значение, которое нужно сохранить.
<key>: Ключ, по которому будут сохранены данные.
<key>: Ключ, по которому будут сохранены данные.
реализует механизм консистентного хеширования для распределения данных по узлам.
-
get_hash(key: str) -> int: вычисляет хеш для заданного ключа.
-
add_node(self, node: Node) -> None: добавляет узел в кольцо консистентного хеширования.
-
get_replicas(self, key: str, count: int) -> list[Node] | None: возвращает список реплик для заданного ключа.
представляет собой узел в распределенной системе хранения данных.
-
store(self, key: str, value: bytes) -> None: сохраняет данные на узле.
-
get(self, key: str) -> bytes: получает данные по заданному ключу.
-
delete(self, key: str) -> None: удаляет данные по заданному ключу.
-
get_hash(key: str) -> int: вычисляет хеш для заданного ключа.
обрабатывает HTTP-запросы к узлу.
-
do_PUT(self): обрабатывает PUT-запросы для сохранения данных.
-
do_GET(self): обрабатывает GET-запросы для получения данных.
-
do_DELETE(self): обрабатывает DELETE-запросы для удаления данных.
-
log_message(self, format, *args): переопределяет метод логирования для отключения вывода логов.
управляет распределенным хранилищем данных.
-
start(self): запускает систему распределенного хранилища.
-
get_replicas(self, key: str, replicas=2) -> list[Node]: возвращает список реплик для заданного ключа.
-
process_request(self, request: Request) -> str: обрабатывает запрос пользователя.
-
put_data(request: Request, replicas: list[Node]) -> str: сохраняет данные на указанных репликах.
-
get_data(request: Request, replicas: list[Node]) -> str: получает данные с указанных реплик.
-
delete_data(request: Request, replicas: list[Node]) -> str: удаляет данные с указанных реплик.