From e528626140730ff7c9c75e0db8def9a34dea3dbc Mon Sep 17 00:00:00 2001 From: Lu Qiu Date: Tue, 6 Feb 2024 14:28:36 -0800 Subject: [PATCH 01/17] Add initial hash ring update logics --- alluxio/alluxio_file_system.py | 14 ++- alluxio/const.py | 4 + alluxio/worker_ring.py | 155 ++++++++++++++++++--------------- 3 files changed, 99 insertions(+), 74 deletions(-) diff --git a/alluxio/alluxio_file_system.py b/alluxio/alluxio_file_system.py index 5f740da..33505a9 100644 --- a/alluxio/alluxio_file_system.py +++ b/alluxio/alluxio_file_system.py @@ -13,6 +13,8 @@ import requests from requests.adapters import HTTPAdapter +from .const import ALLUXIO_HASH_NODE_PER_WORKER_DEFAULT_VALUE +from .const import ALLUXIO_HASH_NODE_PER_WORKER_KEY from .const import ALLUXIO_PAGE_SIZE_DEFAULT_VALUE from .const import ALLUXIO_PAGE_SIZE_KEY from .const import ALLUXIO_SUCCESS_IDENTIFIER @@ -138,16 +140,24 @@ def __init__( # parse options page_size = ALLUXIO_PAGE_SIZE_DEFAULT_VALUE + hash_node_per_worker = int(ALLUXIO_HASH_NODE_PER_WORKER_DEFAULT_VALUE) if options: if ALLUXIO_PAGE_SIZE_KEY in options: page_size = options[ALLUXIO_PAGE_SIZE_KEY] self.logger.debug(f"Page size is set to {page_size}") + if ALLUXIO_HASH_NODE_PER_WORKER_KEY in options: + hash_node_per_worker = int( + options[ALLUXIO_HASH_NODE_PER_WORKER_KEY] + ) + self.logger.debug( + f"Hash node per worker is set to {hash_node_per_worker}" + ) + self.page_size = humanfriendly.parse_size(page_size, binary=True) self.hash_provider = ConsistentHashProvider( etcd_hosts=etcd_hosts, etcd_port=int(etcd_port), - worker_hosts=worker_hosts, - worker_http_port=http_port, + hash_node_per_worker=hash_node_per_worker, options=options, logger=self.logger, etcd_refresh_workers_interval=etcd_refresh_workers_interval, diff --git a/alluxio/const.py b/alluxio/const.py index 40de4ae..19cfaa5 100644 --- a/alluxio/const.py +++ b/alluxio/const.py @@ -1,5 +1,9 @@ ALLUXIO_PAGE_SIZE_KEY = "alluxio.worker.page.store.page.size" ALLUXIO_PAGE_SIZE_DEFAULT_VALUE = "1MB" +ALLUXIO_HASH_NODE_PER_WORKER_KEY = ( + "alluxio.user.consistent.hash.virtual.node.count.per.worker" +) +ALLUXIO_HASH_NODE_PER_WORKER_DEFAULT_VALUE = "5" ALLUXIO_SUCCESS_IDENTIFIER = "success" LIST_URL_FORMAT = "http://{worker_host}:{http_port}/v1/files" FULL_PAGE_URL_FORMAT = ( diff --git a/alluxio/worker_ring.py b/alluxio/worker_ring.py index 7ff177f..e8deecd 100644 --- a/alluxio/worker_ring.py +++ b/alluxio/worker_ring.py @@ -35,38 +35,62 @@ class WorkerNetAddress: domain_socket_path: str = DEFAULT_DOMAIN_SOCKET_PATH http_server_port: int = DEFAULT_HTTP_SERVER_PORT + +@dataclass(frozen=True) +class WorkerIdentity: + version: int + identifier: str + + +@dataclass(frozen=True) +class WorkerEntity: + worker_identity: WorkerIdentity + worker_net_address: WorkerNetAddress + @staticmethod def from_worker_info(worker_info): try: worker_info_string = worker_info.decode("utf-8") worker_info_json = json.loads(worker_info_string) - worker_net_address = worker_info_json.get("WorkerNetAddress", {}) + identity_info = worker_info_json.get("Identity", {}) + worker_identity = WorkerIdentity( + version=identity_info.get("version"), + identifier=identity_info.get("identifier"), + ) - return WorkerNetAddress( - host=worker_net_address.get("Host", DEFAULT_HOST), - container_host=worker_net_address.get( + worker_net_address_info = worker_info_json.get( + "WorkerNetAddress", {} + ) + worker_net_address = WorkerNetAddress( + host=worker_net_address_info.get("Host", DEFAULT_HOST), + container_host=worker_net_address_info.get( "ContainerHost", DEFAULT_CONTAINER_HOST ), - rpc_port=worker_net_address.get("RpcPort", DEFAULT_RPC_PORT), - data_port=worker_net_address.get( + rpc_port=worker_net_address_info.get( + "RpcPort", DEFAULT_RPC_PORT + ), + data_port=worker_net_address_info.get( "DataPort", DEFAULT_DATA_PORT ), - secure_rpc_port=worker_net_address.get( + secure_rpc_port=worker_net_address_info.get( "SecureRpcPort", DEFAULT_SECURE_RPC_PORT ), - netty_data_port=worker_net_address.get( + netty_data_port=worker_net_address_info.get( "NettyDataPort", DEFAULT_NETTY_DATA_PORT ), - web_port=worker_net_address.get("WebPort", DEFAULT_WEB_PORT), - domain_socket_path=worker_net_address.get( + web_port=worker_net_address_info.get( + "WebPort", DEFAULT_WEB_PORT + ), + domain_socket_path=worker_net_address_info.get( "DomainSocketPath", DEFAULT_DOMAIN_SOCKET_PATH, ), - http_server_port=worker_net_address.get( + http_server_port=worker_net_address_info.get( "HttpServerPort", DEFAULT_HTTP_SERVER_PORT, ), ) + return WorkerEntity(worker_identity, worker_net_address) except json.JSONDecodeError as e: raise ValueError( f"Provided worker_info is not a valid JSON string {e}" @@ -80,31 +104,6 @@ def from_worker_info(worker_info): f"Failed to process given worker_info {worker_info} {e}" ) from e - @staticmethod - def from_worker_hosts( - worker_hosts, worker_http_port=DEFAULT_HTTP_SERVER_PORT - ): - worker_addresses = set() - for host in worker_hosts.split(","): - worker_address = WorkerNetAddress( - host=host, http_server_port=worker_http_port - ) - worker_addresses.add(worker_address) - return worker_addresses - - def dump_main_info(self): - return ( - "WorkerNetAddress{{host={}, containerHost={}, rpcPort={}, " - "dataPort={}, webPort={}, domainSocketPath={}}}" - ).format( - self.host, - self.container_host, - self.rpc_port, - self.data_port, - self.web_port, - self.domain_socket_path, - ) - class EtcdClient: PREFIX = "/ServiceDiscovery/DefaultAlluxioCluster/" @@ -128,19 +127,19 @@ def __init__(self, host="localhost", port=2379, options=None): "Both ETCD username and password must be set or both should be unset." ) - def get_worker_addresses(self): + def get_worker_entities(self) -> Set[WorkerEntity]: """ - Retrieve worker addresses from etcd using the specified prefix. + Retrieve worker entities from etcd using the specified prefix. Returns: - list: A list of WorkerNetAddress objects. + set: A set of WorkerEntity objects. """ # Note that EtcdClient should not be passed through python multiprocessing etcd = self._get_etcd_client() - worker_addresses = set() + worker_entities: Set[WorkerEntity] = set() try: - worker_addresses = { - WorkerNetAddress.from_worker_info(worker_info) + worker_entities = { + WorkerEntity.from_worker_info(worker_info) for worker_info, _ in etcd.get_prefix(self.PREFIX) } except Exception as e: @@ -148,12 +147,12 @@ def get_worker_addresses(self): f"Failed to achieve worker info list from ETCD server {self.host}:{self.port} {e}" ) from e - if not worker_addresses: + if not worker_entities: # TODO(lu) deal with the alluxio cluster initalizing issue raise Exception( "Alluxio cluster may still be initializing. No worker registered" ) - return worker_addresses + return worker_entities def _get_etcd_client(self): if self.etcd_username: @@ -171,11 +170,9 @@ def __init__( self, etcd_hosts=None, etcd_port=2379, - worker_hosts=None, - worker_http_port=DEFAULT_HTTP_SERVER_PORT, options=None, logger=None, - num_virtual_nodes=2000, + hash_node_per_worker=5, max_attempts=100, etcd_refresh_workers_interval=None, ): @@ -183,18 +180,12 @@ def __init__( self._etcd_port = etcd_port self._options = options self._logger = logger or logging.getLogger("ConsistentHashProvider") - self._num_virtual_nodes = num_virtual_nodes + self._hash_node_per_worker = hash_node_per_worker self._max_attempts = max_attempts self._lock = threading.Lock() self._is_ring_initialized = False - self._worker_addresses = None + self._worker_info_map = {} self._etcd_refresh_workers_interval = etcd_refresh_workers_interval - if worker_hosts: - self._update_hash_ring( - WorkerNetAddress.from_worker_hosts( - worker_hosts, worker_http_port - ) - ) if self._etcd_hosts: self._fetch_workers_and_update_ring() if self._etcd_refresh_workers_interval > 0: @@ -250,19 +241,18 @@ def __del__(self): self.shutdown_background_update_ring() def _fetch_workers_and_update_ring(self): - worker_addresses = set() etcd_hosts_list = self._etcd_hosts.split(",") random.shuffle(etcd_hosts_list) + worker_entities: Set[WorkerEntity] = set() for host in etcd_hosts_list: try: - current_addresses = EtcdClient( + worker_entities = EtcdClient( host=host, port=self._etcd_port, options=self._options - ).get_worker_addresses() - worker_addresses.update(current_addresses) + ).get_worker_entities() break except Exception as e: continue - if not worker_addresses: + if not worker_entities: if self._is_ring_initialized: self._logger.info( f"Failed to achieve worker info list from ETCD servers:{self._etcd_hosts}" @@ -273,20 +263,37 @@ def _fetch_workers_and_update_ring(self): f"Failed to achieve worker info list from ETCD servers:{self._etcd_hosts}" ) - if worker_addresses != self._worker_addresses: - self._update_hash_ring(worker_addresses) + worker_info_map = {} + detect_diff_in_worker_info = False + for worker_entity in worker_entities: + worker_info_map[ + worker_entity.worker_identity + ] = worker_entity.worker_net_address + if worker_entity.worker_identity not in self._worker_info_map: + detect_diff_in_worker_info = True + elif ( + self._worker_info_map[worker_entity.worker_identity] + != worker_entity.worker_net_address + ): + detect_diff_in_worker_info = True - def _update_hash_ring(self, worker_addresses: Set[WorkerNetAddress]): + if len(worker_info_map) != len(self._worker_info_map): + detect_diff_in_worker_info = True + + if detect_diff_in_worker_info: + self._update_hash_ring(worker_info_map) + + def _update_hash_ring( + self, worker_info_map: dict[WorkerIdentity, WorkerNetAddress] + ): with self._lock: hash_ring = SortedDict() - weight = math.ceil(self._num_virtual_nodes / len(worker_addresses)) - for worker_address in worker_addresses: - worker_string = worker_address.dump_main_info() - for i in range(weight): - hash_key = self._hash(worker_string, i) - hash_ring[hash_key] = worker_address + for worker_identity in worker_info_map.keys(): + for i in range(self._hash_node_per_worker): + hash_key = self._hash(worker_identity, i) + hash_ring[hash_key] = worker_identity self._hash_ring = hash_ring - self._worker_addresses = worker_addresses + self._worker_info_map = worker_info_map self._is_ring_initialized = True def _get_ceiling_value(self, hash_key: int): @@ -298,5 +305,9 @@ def _get_ceiling_value(self, hash_key: int): else: return self._hash_ring.peekitem(0)[1] - def _hash(self, key: str, index: int) -> int: - return mmh3.hash(f"{key}{index}".encode("utf-8")) + def _hash(self, worker_identity: WorkerIdentity, index: int) -> int: + return mmh3.hash( + f"{worker_identity.identifier}{worker_identity.version}{index}".encode( + "utf-8" + ) + ) From bfcd30e979bb0996f36507b9d18199912f698c8e Mon Sep 17 00:00:00 2001 From: Lu Qiu Date: Tue, 6 Feb 2024 15:16:27 -0800 Subject: [PATCH 02/17] Fix values --- alluxio/worker_ring.py | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/alluxio/worker_ring.py b/alluxio/worker_ring.py index e8deecd..4d1d9c8 100644 --- a/alluxio/worker_ring.py +++ b/alluxio/worker_ring.py @@ -209,14 +209,16 @@ def get_multiple_workers( List[WorkerNetAddress]: A list containing the desired number of WorkerNetAddress objects. """ with self._lock: - if count >= len(self._worker_addresses): - return list(self._worker_addresses) - workers: Set[WorkerNetAddress] = set() + if count >= len(self._worker_info_map): + return list(self._worker_info_map.values()) + workers = [] attempts = 0 while len(workers) < count and attempts < self._max_attempts: attempts += 1 - workers.add(self._get_ceiling_value(self._hash(key, attempts))) - return list(workers) + worker = self._get_ceiling_value(self._hash(key, attempts)) + if worker not in workers: + workers.append(worker) + return workers def _start_background_update_ring(self, interval): def update_loop(): @@ -290,7 +292,10 @@ def _update_hash_ring( hash_ring = SortedDict() for worker_identity in worker_info_map.keys(): for i in range(self._hash_node_per_worker): - hash_key = self._hash(worker_identity, i) + hash_key = self._hash( + f"{worker_identity.identifier}{worker_identity.version}", + i, + ) hash_ring[hash_key] = worker_identity self._hash_ring = hash_ring self._worker_info_map = worker_info_map @@ -305,9 +310,5 @@ def _get_ceiling_value(self, hash_key: int): else: return self._hash_ring.peekitem(0)[1] - def _hash(self, worker_identity: WorkerIdentity, index: int) -> int: - return mmh3.hash( - f"{worker_identity.identifier}{worker_identity.version}{index}".encode( - "utf-8" - ) - ) + def _hash(self, key: str, index: int) -> int: + return mmh3.hash(f"{key}{index}".encode("utf-8")) From d23a3443d77ea0757efb96f1ef51efcd2fdde6a9 Mon Sep 17 00:00:00 2001 From: Lu Qiu Date: Tue, 6 Feb 2024 18:23:01 -0800 Subject: [PATCH 03/17] Add worker hash ring test file and worker list source file --- alluxio/worker_ring.py | 40 +- tests/hash_res/activeNodesMap.json | 1002 ++++++++++++++++++++++++++++ tests/hash_res/fileUrlWorkers.json | 464 +++++++++++++ tests/hash_res/workerList.json | 202 ++++++ tests/test_worker_hash_ring.py | 63 ++ 5 files changed, 1756 insertions(+), 15 deletions(-) create mode 100644 tests/hash_res/activeNodesMap.json create mode 100644 tests/hash_res/fileUrlWorkers.json create mode 100644 tests/hash_res/workerList.json create mode 100644 tests/test_worker_hash_ring.py diff --git a/alluxio/worker_ring.py b/alluxio/worker_ring.py index 4d1d9c8..e45cbdf 100644 --- a/alluxio/worker_ring.py +++ b/alluxio/worker_ring.py @@ -1,6 +1,5 @@ import json import logging -import math import random import threading import time @@ -209,8 +208,11 @@ def get_multiple_workers( List[WorkerNetAddress]: A list containing the desired number of WorkerNetAddress objects. """ with self._lock: - if count >= len(self._worker_info_map): - return list(self._worker_info_map.values()) + count = ( + len(self._worker_info_map) + if count >= len(self._worker_info_map) + else count + ) workers = [] attempts = 0 while len(workers) < count and attempts < self._max_attempts: @@ -283,32 +285,40 @@ def _fetch_workers_and_update_ring(self): detect_diff_in_worker_info = True if detect_diff_in_worker_info: - self._update_hash_ring(worker_info_map) + self.update_hash_ring(worker_info_map) - def _update_hash_ring( + def update_hash_ring( self, worker_info_map: dict[WorkerIdentity, WorkerNetAddress] ): with self._lock: hash_ring = SortedDict() for worker_identity in worker_info_map.keys(): for i in range(self._hash_node_per_worker): - hash_key = self._hash( - f"{worker_identity.identifier}{worker_identity.version}", - i, - ) + hash_key = self._hash_worker_identity(worker_identity, i) hash_ring[hash_key] = worker_identity - self._hash_ring = hash_ring + self.hash_ring = hash_ring self._worker_info_map = worker_info_map self._is_ring_initialized = True + def get_hash_ring(self): + with self._lock: + return self.hash_ring + def _get_ceiling_value(self, hash_key: int): - key_index = self._hash_ring.bisect_right(hash_key) - if key_index < len(self._hash_ring): - ceiling_key = self._hash_ring.keys()[key_index] - ceiling_value = self._hash_ring[ceiling_key] + key_index = self.hash_ring.bisect_right(hash_key) + if key_index < len(self.hash_ring): + ceiling_key = self.hash_ring.keys()[key_index] + ceiling_value = self.hash_ring[ceiling_key] return ceiling_value else: - return self._hash_ring.peekitem(0)[1] + return self.hash_ring.peekitem(0)[1] def _hash(self, key: str, index: int) -> int: return mmh3.hash(f"{key}{index}".encode("utf-8")) + + def _hash_worker_identity( + self, worker: WorkerIdentity, node_index: int + ) -> int: + return mmh3.hash( + f"{worker.identifier}{worker.version}{node_index}".encode("utf-8") + ) diff --git a/tests/hash_res/activeNodesMap.json b/tests/hash_res/activeNodesMap.json new file mode 100644 index 0000000..4aff5e1 --- /dev/null +++ b/tests/hash_res/activeNodesMap.json @@ -0,0 +1,1002 @@ +{ + "-2146357353": { + "version": 0, + "identifier": "69d2e1a9b22e3000" + }, + "-2143460032": { + "version": 0, + "identifier": "5606fa82b21b6c00" + }, + "-2141158724": { + "version": 0, + "identifier": "387b9d494248cc00" + }, + "-2134022876": { + "version": 0, + "identifier": "2231b2e34d0f9400" + }, + "-2099965959": { + "version": 0, + "identifier": "6b9e104903840800" + }, + "-2099758850": { + "version": 0, + "identifier": "66a512d72f143800" + }, + "-2097516076": { + "version": 0, + "identifier": "4ec9528c0f1d8400" + }, + "-2071158607": { + "version": 0, + "identifier": "3b675e5bfe25c000" + }, + "-2068068628": { + "version": 0, + "identifier": "6b9e104903840800" + }, + "-2027810955": { + "version": 0, + "identifier": "7bf8fca538019c00" + }, + "-2021256965": { + "version": 0, + "identifier": "735fcc8d7ff1d800" + }, + "-1990688043": { + "version": 0, + "identifier": "46ebfed922610800" + }, + "-1982695259": { + "version": 0, + "identifier": "735fcc8d7ff1d800" + }, + "-1972015073": { + "version": 0, + "identifier": "53e3d1a5572bb000" + }, + "-1962491694": { + "version": 0, + "identifier": "5606fa82b21b6c00" + }, + "-1915578848": { + "version": 0, + "identifier": "3b675e5bfe25c000" + }, + "-1907160995": { + "version": 0, + "identifier": "46ebfed922610800" + }, + "-1862899913": { + "version": 0, + "identifier": "600bef8f8d76b000" + }, + "-1828543214": { + "version": 0, + "identifier": "1f71b65921808400" + }, + "-1826690519": { + "version": 0, + "identifier": "5cc40b18be5bcc00" + }, + "-1813780276": { + "version": 0, + "identifier": "24cfe47f8a7eb800" + }, + "-1812445118": { + "version": 0, + "identifier": "0c2452cf3a590400" + }, + "-1796570379": { + "version": 0, + "identifier": "66a512d72f143800" + }, + "-1751516868": { + "version": 0, + "identifier": "1f71b65921808400" + }, + "-1690481356": { + "version": 0, + "identifier": "6b38af6afcd36c00" + }, + "-1667581797": { + "version": 0, + "identifier": "44c968cf5d59b800" + }, + "-1628140691": { + "version": 0, + "identifier": "3d2c3b0111f5b000" + }, + "-1621972663": { + "version": 0, + "identifier": "3b675e5bfe25c000" + }, + "-1610949457": { + "version": 0, + "identifier": "19bf523306b40c00" + }, + "-1602288201": { + "version": 0, + "identifier": "3b675e5bfe25c000" + }, + "-1600255205": { + "version": 0, + "identifier": "53e3d1a5572bb000" + }, + "-1594316559": { + "version": 0, + "identifier": "04c784c5b2411000" + }, + "-1587738534": { + "version": 0, + "identifier": "66a512d72f143800" + }, + "-1558824578": { + "version": 0, + "identifier": "4ec9528c0f1d8400" + }, + "-1537472838": { + "version": 0, + "identifier": "57044306fd09d000" + }, + "-1530996575": { + "version": 0, + "identifier": "7cd836521b5eec00" + }, + "-1524515064": { + "version": 0, + "identifier": "118bb2cc9438e800" + }, + "-1522590951": { + "version": 0, + "identifier": "6b38af6afcd36c00" + }, + "-1517534079": { + "version": 0, + "identifier": "1d45d885af8b2400" + }, + "-1507636414": { + "version": 0, + "identifier": "5cc40b18be5bcc00" + }, + "-1502407768": { + "version": 0, + "identifier": "655f6dd6e8ba1800" + }, + "-1480629903": { + "version": 0, + "identifier": "4232fa1a8d29d000" + }, + "-1471256726": { + "version": 0, + "identifier": "1ddbe94385ed9800" + }, + "-1456653720": { + "version": 0, + "identifier": "69d2e1a9b22e3000" + }, + "-1420097530": { + "version": 0, + "identifier": "1427c2f3d8507800" + }, + "-1416204422": { + "version": 0, + "identifier": "04c784c5b2411000" + }, + "-1391010768": { + "version": 0, + "identifier": "66a512d72f143800" + }, + "-1347436917": { + "version": 0, + "identifier": "3c197edb19fc4400" + }, + "-1323678227": { + "version": 0, + "identifier": "1d45d885af8b2400" + }, + "-1309139691": { + "version": 0, + "identifier": "142116a3b9126c00" + }, + "-1306436858": { + "version": 0, + "identifier": "2b6ad30b13873000" + }, + "-1285648222": { + "version": 0, + "identifier": "74425b8975cd4c00" + }, + "-1281045417": { + "version": 0, + "identifier": "1427c2f3d8507800" + }, + "-1275667618": { + "version": 0, + "identifier": "44c968cf5d59b800" + }, + "-1272607182": { + "version": 0, + "identifier": "7b791ba51dc0dc00" + }, + "-1225639621": { + "version": 0, + "identifier": "512db1f1465b0000" + }, + "-1223542060": { + "version": 0, + "identifier": "6276d056e5124000" + }, + "-1209296842": { + "version": 0, + "identifier": "735fcc8d7ff1d800" + }, + "-1200460955": { + "version": 0, + "identifier": "0c2452cf3a590400" + }, + "-1198181784": { + "version": 0, + "identifier": "2b6ad30b13873000" + }, + "-1194552198": { + "version": 0, + "identifier": "04c784c5b2411000" + }, + "-1159514286": { + "version": 0, + "identifier": "6ae9cebc84b2dc00" + }, + "-1148906285": { + "version": 0, + "identifier": "2b6ad30b13873000" + }, + "-1148444282": { + "version": 0, + "identifier": "6ae9cebc84b2dc00" + }, + "-1132117350": { + "version": 0, + "identifier": "7cd836521b5eec00" + }, + "-1130355896": { + "version": 0, + "identifier": "735fcc8d7ff1d800" + }, + "-1128119183": { + "version": 0, + "identifier": "3c197edb19fc4400" + }, + "-1103943523": { + "version": 0, + "identifier": "7b791ba51dc0dc00" + }, + "-1089825959": { + "version": 0, + "identifier": "1ddbe94385ed9800" + }, + "-1048626267": { + "version": 0, + "identifier": "1ddbe94385ed9800" + }, + "-1004397368": { + "version": 0, + "identifier": "52dd426a8b0bd000" + }, + "-995767295": { + "version": 0, + "identifier": "5606fa82b21b6c00" + }, + "-987360326": { + "version": 0, + "identifier": "3d2c3b0111f5b000" + }, + "-943526723": { + "version": 0, + "identifier": "2231b2e34d0f9400" + }, + "-941854251": { + "version": 0, + "identifier": "44c968cf5d59b800" + }, + "-899938886": { + "version": 0, + "identifier": "0c2452cf3a590400" + }, + "-883108869": { + "version": 0, + "identifier": "1f71b65921808400" + }, + "-785757493": { + "version": 0, + "identifier": "04c784c5b2411000" + }, + "-776406837": { + "version": 0, + "identifier": "0d2f56aec9d46800" + }, + "-760513952": { + "version": 0, + "identifier": "49a1d53d04e7d000" + }, + "-745120187": { + "version": 0, + "identifier": "74425b8975cd4c00" + }, + "-737525786": { + "version": 0, + "identifier": "6276d056e5124000" + }, + "-721673653": { + "version": 0, + "identifier": "0a66121330df7800" + }, + "-714712924": { + "version": 0, + "identifier": "61e79fffc3494000" + }, + "-666923259": { + "version": 0, + "identifier": "0d2f56aec9d46800" + }, + "-652279460": { + "version": 0, + "identifier": "4232fa1a8d29d000" + }, + "-645674328": { + "version": 0, + "identifier": "600bef8f8d76b000" + }, + "-645388201": { + "version": 0, + "identifier": "735fcc8d7ff1d800" + }, + "-618319776": { + "version": 0, + "identifier": "142116a3b9126c00" + }, + "-599542405": { + "version": 0, + "identifier": "2f7a5c7f0cf6a400" + }, + "-599051763": { + "version": 0, + "identifier": "6b38af6afcd36c00" + }, + "-591622750": { + "version": 0, + "identifier": "4885f3391740d800" + }, + "-589656948": { + "version": 0, + "identifier": "655f6dd6e8ba1800" + }, + "-571491026": { + "version": 0, + "identifier": "24cfe47f8a7eb800" + }, + "-556031666": { + "version": 0, + "identifier": "4232fa1a8d29d000" + }, + "-554939029": { + "version": 0, + "identifier": "7cd836521b5eec00" + }, + "-549338233": { + "version": 0, + "identifier": "74425b8975cd4c00" + }, + "-542440718": { + "version": 0, + "identifier": "118bb2cc9438e800" + }, + "-541349409": { + "version": 0, + "identifier": "387b9d494248cc00" + }, + "-526193478": { + "version": 0, + "identifier": "54a70c21eab28000" + }, + "-519230293": { + "version": 0, + "identifier": "7dc2007ecb9a2800" + }, + "-499456376": { + "version": 0, + "identifier": "49a1d53d04e7d000" + }, + "-489929831": { + "version": 0, + "identifier": "6b38af6afcd36c00" + }, + "-486327478": { + "version": 0, + "identifier": "2231b2e34d0f9400" + }, + "-482535420": { + "version": 0, + "identifier": "118bb2cc9438e800" + }, + "-475927715": { + "version": 0, + "identifier": "52dd426a8b0bd000" + }, + "-453481942": { + "version": 0, + "identifier": "49a1d53d04e7d000" + }, + "-449841744": { + "version": 0, + "identifier": "512db1f1465b0000" + }, + "-438668324": { + "version": 0, + "identifier": "6b9e104903840800" + }, + "-434528465": { + "version": 0, + "identifier": "19bf523306b40c00" + }, + "-384219169": { + "version": 0, + "identifier": "1427c2f3d8507800" + }, + "-378539718": { + "version": 0, + "identifier": "54a70c21eab28000" + }, + "-359435024": { + "version": 0, + "identifier": "7dc2007ecb9a2800" + }, + "-358883804": { + "version": 0, + "identifier": "57044306fd09d000" + }, + "-294386214": { + "version": 0, + "identifier": "19bf523306b40c00" + }, + "-293222101": { + "version": 0, + "identifier": "57044306fd09d000" + }, + "-259155632": { + "version": 0, + "identifier": "57044306fd09d000" + }, + "-193963868": { + "version": 0, + "identifier": "600bef8f8d76b000" + }, + "-186073372": { + "version": 0, + "identifier": "0a66121330df7800" + }, + "-181517408": { + "version": 0, + "identifier": "19bf523306b40c00" + }, + "-138416764": { + "version": 0, + "identifier": "728fb281f67aac00" + }, + "-120941004": { + "version": 0, + "identifier": "6ae9cebc84b2dc00" + }, + "-117085933": { + "version": 0, + "identifier": "61e79fffc3494000" + }, + "-96106515": { + "version": 0, + "identifier": "53e3d1a5572bb000" + }, + "-93674826": { + "version": 0, + "identifier": "69d2e1a9b22e3000" + }, + "-77064930": { + "version": 0, + "identifier": "3d2c3b0111f5b000" + }, + "-65271511": { + "version": 0, + "identifier": "754fb5bd2dfa2800" + }, + "-44676346": { + "version": 0, + "identifier": "387b9d494248cc00" + }, + "24392629": { + "version": 0, + "identifier": "4ec9528c0f1d8400" + }, + "24761713": { + "version": 0, + "identifier": "5371de8188688000" + }, + "38874236": { + "version": 0, + "identifier": "54a70c21eab28000" + }, + "43197917": { + "version": 0, + "identifier": "118bb2cc9438e800" + }, + "63872261": { + "version": 0, + "identifier": "7bf8fca538019c00" + }, + "78807795": { + "version": 0, + "identifier": "142116a3b9126c00" + }, + "102858897": { + "version": 0, + "identifier": "5cc40b18be5bcc00" + }, + "117381448": { + "version": 0, + "identifier": "2f7a5c7f0cf6a400" + }, + "120830737": { + "version": 0, + "identifier": "7dc2007ecb9a2800" + }, + "146549525": { + "version": 0, + "identifier": "387b9d494248cc00" + }, + "154072976": { + "version": 0, + "identifier": "142116a3b9126c00" + }, + "207593172": { + "version": 0, + "identifier": "74425b8975cd4c00" + }, + "208238404": { + "version": 0, + "identifier": "44c968cf5d59b800" + }, + "210097756": { + "version": 0, + "identifier": "0d2f56aec9d46800" + }, + "252083957": { + "version": 0, + "identifier": "61e79fffc3494000" + }, + "256890876": { + "version": 0, + "identifier": "66a512d72f143800" + }, + "274612042": { + "version": 0, + "identifier": "6ae9cebc84b2dc00" + }, + "291216256": { + "version": 0, + "identifier": "24cfe47f8a7eb800" + }, + "297342464": { + "version": 0, + "identifier": "5606fa82b21b6c00" + }, + "321815079": { + "version": 0, + "identifier": "4885f3391740d800" + }, + "345007578": { + "version": 0, + "identifier": "6b38af6afcd36c00" + }, + "353287258": { + "version": 0, + "identifier": "3c197edb19fc4400" + }, + "406613043": { + "version": 0, + "identifier": "04c784c5b2411000" + }, + "410441496": { + "version": 0, + "identifier": "6ae9cebc84b2dc00" + }, + "415426970": { + "version": 0, + "identifier": "5cc40b18be5bcc00" + }, + "431427756": { + "version": 0, + "identifier": "5cc40b18be5bcc00" + }, + "531114485": { + "version": 0, + "identifier": "387b9d494248cc00" + }, + "543491474": { + "version": 0, + "identifier": "1ddbe94385ed9800" + }, + "554018797": { + "version": 0, + "identifier": "2f7a5c7f0cf6a400" + }, + "562527835": { + "version": 0, + "identifier": "69d2e1a9b22e3000" + }, + "579168057": { + "version": 0, + "identifier": "2f7a5c7f0cf6a400" + }, + "587836129": { + "version": 0, + "identifier": "4232fa1a8d29d000" + }, + "607281837": { + "version": 0, + "identifier": "5371de8188688000" + }, + "614360365": { + "version": 0, + "identifier": "512db1f1465b0000" + }, + "629942766": { + "version": 0, + "identifier": "655f6dd6e8ba1800" + }, + "670744299": { + "version": 0, + "identifier": "728fb281f67aac00" + }, + "699186983": { + "version": 0, + "identifier": "6276d056e5124000" + }, + "709914026": { + "version": 0, + "identifier": "4ec9528c0f1d8400" + }, + "715839764": { + "version": 0, + "identifier": "142116a3b9126c00" + }, + "718350851": { + "version": 0, + "identifier": "5371de8188688000" + }, + "719124815": { + "version": 0, + "identifier": "4232fa1a8d29d000" + }, + "758240441": { + "version": 0, + "identifier": "754fb5bd2dfa2800" + }, + "761993041": { + "version": 0, + "identifier": "728fb281f67aac00" + }, + "794310381": { + "version": 0, + "identifier": "7dc2007ecb9a2800" + }, + "821702058": { + "version": 0, + "identifier": "754fb5bd2dfa2800" + }, + "849560531": { + "version": 0, + "identifier": "46ebfed922610800" + }, + "867271170": { + "version": 0, + "identifier": "5371de8188688000" + }, + "901170181": { + "version": 0, + "identifier": "6b9e104903840800" + }, + "930886304": { + "version": 0, + "identifier": "54a70c21eab28000" + }, + "931754669": { + "version": 0, + "identifier": "754fb5bd2dfa2800" + }, + "943281110": { + "version": 0, + "identifier": "2b6ad30b13873000" + }, + "959573544": { + "version": 0, + "identifier": "3d2c3b0111f5b000" + }, + "974871369": { + "version": 0, + "identifier": "4ec9528c0f1d8400" + }, + "1027739394": { + "version": 0, + "identifier": "4885f3391740d800" + }, + "1030184489": { + "version": 0, + "identifier": "600bef8f8d76b000" + }, + "1057976678": { + "version": 0, + "identifier": "1d45d885af8b2400" + }, + "1076362799": { + "version": 0, + "identifier": "74425b8975cd4c00" + }, + "1097405157": { + "version": 0, + "identifier": "118bb2cc9438e800" + }, + "1116909615": { + "version": 0, + "identifier": "52dd426a8b0bd000" + }, + "1140405000": { + "version": 0, + "identifier": "7bf8fca538019c00" + }, + "1153531709": { + "version": 0, + "identifier": "6b9e104903840800" + }, + "1158833684": { + "version": 0, + "identifier": "52dd426a8b0bd000" + }, + "1190081762": { + "version": 0, + "identifier": "61e79fffc3494000" + }, + "1190706468": { + "version": 0, + "identifier": "7b791ba51dc0dc00" + }, + "1193697165": { + "version": 0, + "identifier": "7bf8fca538019c00" + }, + "1201740402": { + "version": 0, + "identifier": "69d2e1a9b22e3000" + }, + "1211688990": { + "version": 0, + "identifier": "52dd426a8b0bd000" + }, + "1216797717": { + "version": 0, + "identifier": "53e3d1a5572bb000" + }, + "1250966948": { + "version": 0, + "identifier": "1f71b65921808400" + }, + "1251147801": { + "version": 0, + "identifier": "512db1f1465b0000" + }, + "1252860074": { + "version": 0, + "identifier": "0c2452cf3a590400" + }, + "1268389013": { + "version": 0, + "identifier": "44c968cf5d59b800" + }, + "1269130099": { + "version": 0, + "identifier": "1427c2f3d8507800" + }, + "1271292003": { + "version": 0, + "identifier": "7dc2007ecb9a2800" + }, + "1291010030": { + "version": 0, + "identifier": "3c197edb19fc4400" + }, + "1293769232": { + "version": 0, + "identifier": "0a66121330df7800" + }, + "1310609113": { + "version": 0, + "identifier": "6276d056e5124000" + }, + "1333305604": { + "version": 0, + "identifier": "655f6dd6e8ba1800" + }, + "1353967978": { + "version": 0, + "identifier": "0a66121330df7800" + }, + "1356291181": { + "version": 0, + "identifier": "728fb281f67aac00" + }, + "1378239379": { + "version": 0, + "identifier": "3b675e5bfe25c000" + }, + "1405698708": { + "version": 0, + "identifier": "7cd836521b5eec00" + }, + "1422443848": { + "version": 0, + "identifier": "5371de8188688000" + }, + "1433675459": { + "version": 0, + "identifier": "1ddbe94385ed9800" + }, + "1447458665": { + "version": 0, + "identifier": "2231b2e34d0f9400" + }, + "1453279030": { + "version": 0, + "identifier": "61e79fffc3494000" + }, + "1464203858": { + "version": 0, + "identifier": "7cd836521b5eec00" + }, + "1501246461": { + "version": 0, + "identifier": "0a66121330df7800" + }, + "1515068375": { + "version": 0, + "identifier": "19bf523306b40c00" + }, + "1524087076": { + "version": 0, + "identifier": "6276d056e5124000" + }, + "1568892385": { + "version": 0, + "identifier": "24cfe47f8a7eb800" + }, + "1584057679": { + "version": 0, + "identifier": "2231b2e34d0f9400" + }, + "1586416046": { + "version": 0, + "identifier": "46ebfed922610800" + }, + "1634353645": { + "version": 0, + "identifier": "1d45d885af8b2400" + }, + "1642221423": { + "version": 0, + "identifier": "2f7a5c7f0cf6a400" + }, + "1660217432": { + "version": 0, + "identifier": "1d45d885af8b2400" + }, + "1674764772": { + "version": 0, + "identifier": "4885f3391740d800" + }, + "1683659727": { + "version": 0, + "identifier": "728fb281f67aac00" + }, + "1691493937": { + "version": 0, + "identifier": "49a1d53d04e7d000" + }, + "1726699406": { + "version": 0, + "identifier": "7b791ba51dc0dc00" + }, + "1738714508": { + "version": 0, + "identifier": "53e3d1a5572bb000" + }, + "1762985245": { + "version": 0, + "identifier": "0d2f56aec9d46800" + }, + "1777309509": { + "version": 0, + "identifier": "7b791ba51dc0dc00" + }, + "1795037250": { + "version": 0, + "identifier": "5606fa82b21b6c00" + }, + "1814188161": { + "version": 0, + "identifier": "512db1f1465b0000" + }, + "1839321968": { + "version": 0, + "identifier": "2b6ad30b13873000" + }, + "1855529427": { + "version": 0, + "identifier": "24cfe47f8a7eb800" + }, + "1871669117": { + "version": 0, + "identifier": "3d2c3b0111f5b000" + }, + "1884438331": { + "version": 0, + "identifier": "754fb5bd2dfa2800" + }, + "1891464174": { + "version": 0, + "identifier": "7bf8fca538019c00" + }, + "1902385606": { + "version": 0, + "identifier": "1f71b65921808400" + }, + "1915954789": { + "version": 0, + "identifier": "4885f3391740d800" + }, + "1926230451": { + "version": 0, + "identifier": "3c197edb19fc4400" + }, + "1947302292": { + "version": 0, + "identifier": "54a70c21eab28000" + }, + "1968554086": { + "version": 0, + "identifier": "49a1d53d04e7d000" + }, + "1973096303": { + "version": 0, + "identifier": "600bef8f8d76b000" + }, + "1999282053": { + "version": 0, + "identifier": "0d2f56aec9d46800" + }, + "2032912222": { + "version": 0, + "identifier": "0c2452cf3a590400" + }, + "2056375654": { + "version": 0, + "identifier": "46ebfed922610800" + }, + "2095555874": { + "version": 0, + "identifier": "655f6dd6e8ba1800" + }, + "2131663264": { + "version": 0, + "identifier": "57044306fd09d000" + }, + "2145664408": { + "version": 0, + "identifier": "1427c2f3d8507800" + } +} diff --git a/tests/hash_res/fileUrlWorkers.json b/tests/hash_res/fileUrlWorkers.json new file mode 100644 index 0000000..2410f36 --- /dev/null +++ b/tests/hash_res/fileUrlWorkers.json @@ -0,0 +1,464 @@ +{ + "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_checkin.json": [ + { + "version": 0, + "identifier": "19bf523306b40c00" + }, + { + "version": 0, + "identifier": "6b38af6afcd36c00" + }, + { + "version": 0, + "identifier": "0d2f56aec9d46800" + }, + { + "version": 0, + "identifier": "5371de8188688000" + }, + { + "version": 0, + "identifier": "61e79fffc3494000" + } + ], + "gcs://bucket/file.txt": [ + { + "version": 0, + "identifier": "6b38af6afcd36c00" + }, + { + "version": 0, + "identifier": "4ec9528c0f1d8400" + }, + { + "version": 0, + "identifier": "24cfe47f8a7eb800" + }, + { + "version": 0, + "identifier": "2231b2e34d0f9400" + }, + { + "version": 0, + "identifier": "7cd836521b5eec00" + } + ], + "s://ai-testing/": [ + { + "version": 0, + "identifier": "1427c2f3d8507800" + }, + { + "version": 0, + "identifier": "387b9d494248cc00" + }, + { + "version": 0, + "identifier": "600bef8f8d76b000" + }, + { + "version": 0, + "identifier": "142116a3b9126c00" + }, + { + "version": 0, + "identifier": "0a66121330df7800" + } + ], + "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_review.json": [ + { + "version": 0, + "identifier": "74425b8975cd4c00" + }, + { + "version": 0, + "identifier": "2231b2e34d0f9400" + }, + { + "version": 0, + "identifier": "1f71b65921808400" + }, + { + "version": 0, + "identifier": "754fb5bd2dfa2800" + }, + { + "version": 0, + "identifier": "54a70c21eab28000" + } + ], + "s3://bucket/path/to/dir": [ + { + "version": 0, + "identifier": "5606fa82b21b6c00" + }, + { + "version": 0, + "identifier": "2231b2e34d0f9400" + }, + { + "version": 0, + "identifier": "44c968cf5d59b800" + }, + { + "version": 0, + "identifier": "74425b8975cd4c00" + }, + { + "version": 0, + "identifier": "46ebfed922610800" + } + ], + "hdfs://host:port/path/to/file": [ + { + "version": 0, + "identifier": "600bef8f8d76b000" + }, + { + "version": 0, + "identifier": "04c784c5b2411000" + }, + { + "version": 0, + "identifier": "7b791ba51dc0dc00" + }, + { + "version": 0, + "identifier": "3b675e5bfe25c000" + }, + { + "version": 0, + "identifier": "24cfe47f8a7eb800" + } + ], + "wasbs://container@account.blob.core.windows.net/dir": [ + { + "version": 0, + "identifier": "4885f3391740d800" + }, + { + "version": 0, + "identifier": "655f6dd6e8ba1800" + }, + { + "version": 0, + "identifier": "24cfe47f8a7eb800" + }, + { + "version": 0, + "identifier": "600bef8f8d76b000" + }, + { + "version": 0, + "identifier": "142116a3b9126c00" + } + ], + "gs://bucket/file.txt": [ + { + "version": 0, + "identifier": "0c2452cf3a590400" + }, + { + "version": 0, + "identifier": "4885f3391740d800" + }, + { + "version": 0, + "identifier": "3d2c3b0111f5b000" + }, + { + "version": 0, + "identifier": "1427c2f3d8507800" + }, + { + "version": 0, + "identifier": "4ec9528c0f1d8400" + } + ], + "s3://ai-ref-arch/yelp-review/yelp_review_sample_large.csv": [ + { + "version": 0, + "identifier": "1d45d885af8b2400" + }, + { + "version": 0, + "identifier": "735fcc8d7ff1d800" + }, + { + "version": 0, + "identifier": "1ddbe94385ed9800" + }, + { + "version": 0, + "identifier": "728fb281f67aac00" + }, + { + "version": 0, + "identifier": "7cd836521b5eec00" + } + ], + "s3://ai-ref-arch/yelp-review/model.pt": [ + { + "version": 0, + "identifier": "735fcc8d7ff1d800" + }, + { + "version": 0, + "identifier": "4ec9528c0f1d8400" + }, + { + "version": 0, + "identifier": "04c784c5b2411000" + }, + { + "version": 0, + "identifier": "19bf523306b40c00" + }, + { + "version": 0, + "identifier": "5371de8188688000" + } + ], + "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_business.json": [ + { + "version": 0, + "identifier": "2b6ad30b13873000" + }, + { + "version": 0, + "identifier": "49a1d53d04e7d000" + }, + { + "version": 0, + "identifier": "3d2c3b0111f5b000" + }, + { + "version": 0, + "identifier": "3c197edb19fc4400" + }, + { + "version": 0, + "identifier": "4232fa1a8d29d000" + } + ], + "hdfs://namenode:8020/user/hadoop/file.txt": [ + { + "version": 0, + "identifier": "1d45d885af8b2400" + }, + { + "version": 0, + "identifier": "54a70c21eab28000" + }, + { + "version": 0, + "identifier": "6b38af6afcd36c00" + }, + { + "version": 0, + "identifier": "3b675e5bfe25c000" + }, + { + "version": 0, + "identifier": "4232fa1a8d29d000" + } + ], + "gs://bucket/dir": [ + { + "version": 0, + "identifier": "387b9d494248cc00" + }, + { + "version": 0, + "identifier": "3d2c3b0111f5b000" + }, + { + "version": 0, + "identifier": "04c784c5b2411000" + }, + { + "version": 0, + "identifier": "57044306fd09d000" + }, + { + "version": 0, + "identifier": "0a66121330df7800" + } + ], + "gcs://bucket/dir": [ + { + "version": 0, + "identifier": "04c784c5b2411000" + }, + { + "version": 0, + "identifier": "19bf523306b40c00" + }, + { + "version": 0, + "identifier": "2231b2e34d0f9400" + }, + { + "version": 0, + "identifier": "5371de8188688000" + }, + { + "version": 0, + "identifier": "387b9d494248cc00" + } + ], + "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_user.json": [ + { + "version": 0, + "identifier": "6ae9cebc84b2dc00" + }, + { + "version": 0, + "identifier": "3b675e5bfe25c000" + }, + { + "version": 0, + "identifier": "6b9e104903840800" + }, + { + "version": 0, + "identifier": "2231b2e34d0f9400" + }, + { + "version": 0, + "identifier": "74425b8975cd4c00" + } + ], + "s3://bucket/path/to/file": [ + { + "version": 0, + "identifier": "7dc2007ecb9a2800" + }, + { + "version": 0, + "identifier": "0c2452cf3a590400" + }, + { + "version": 0, + "identifier": "19bf523306b40c00" + }, + { + "version": 0, + "identifier": "5606fa82b21b6c00" + }, + { + "version": 0, + "identifier": "5371de8188688000" + } + ], + "hdfs://host:port/path/to/dir": [ + { + "version": 0, + "identifier": "512db1f1465b0000" + }, + { + "version": 0, + "identifier": "2b6ad30b13873000" + }, + { + "version": 0, + "identifier": "6b38af6afcd36c00" + }, + { + "version": 0, + "identifier": "5606fa82b21b6c00" + }, + { + "version": 0, + "identifier": "5371de8188688000" + } + ], + "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_tip.json": [ + { + "version": 0, + "identifier": "54a70c21eab28000" + }, + { + "version": 0, + "identifier": "04c784c5b2411000" + }, + { + "version": 0, + "identifier": "0a66121330df7800" + }, + { + "version": 0, + "identifier": "3c197edb19fc4400" + }, + { + "version": 0, + "identifier": "6ae9cebc84b2dc00" + } + ], + "hdfs://namenode:8020/user/hadoop/dir": [ + { + "version": 0, + "identifier": "1ddbe94385ed9800" + }, + { + "version": 0, + "identifier": "0d2f56aec9d46800" + }, + { + "version": 0, + "identifier": "387b9d494248cc00" + }, + { + "version": 0, + "identifier": "1d45d885af8b2400" + }, + { + "version": 0, + "identifier": "04c784c5b2411000" + } + ], + "s3://ai-ref-arch/yelp-review/yelp_review_sample.csv": [ + { + "version": 0, + "identifier": "0d2f56aec9d46800" + }, + { + "version": 0, + "identifier": "4885f3391740d800" + }, + { + "version": 0, + "identifier": "1d45d885af8b2400" + }, + { + "version": 0, + "identifier": "0c2452cf3a590400" + }, + { + "version": 0, + "identifier": "7bf8fca538019c00" + } + ], + "wasbs://container@account.blob.core.windows.net/file.txt": [ + { + "version": 0, + "identifier": "6b38af6afcd36c00" + }, + { + "version": 0, + "identifier": "74425b8975cd4c00" + }, + { + "version": 0, + "identifier": "54a70c21eab28000" + }, + { + "version": 0, + "identifier": "57044306fd09d000" + }, + { + "version": 0, + "identifier": "6ae9cebc84b2dc00" + } + ] +} diff --git a/tests/hash_res/workerList.json b/tests/hash_res/workerList.json new file mode 100644 index 0000000..c54058c --- /dev/null +++ b/tests/hash_res/workerList.json @@ -0,0 +1,202 @@ +[ + { + "version": 0, + "identifier": "7dc2007ecb9a2800" + }, + { + "version": 0, + "identifier": "4885f3391740d800" + }, + { + "version": 0, + "identifier": "0a66121330df7800" + }, + { + "version": 0, + "identifier": "52dd426a8b0bd000" + }, + { + "version": 0, + "identifier": "735fcc8d7ff1d800" + }, + { + "version": 0, + "identifier": "7bf8fca538019c00" + }, + { + "version": 0, + "identifier": "53e3d1a5572bb000" + }, + { + "version": 0, + "identifier": "655f6dd6e8ba1800" + }, + { + "version": 0, + "identifier": "04c784c5b2411000" + }, + { + "version": 0, + "identifier": "142116a3b9126c00" + }, + { + "version": 0, + "identifier": "728fb281f67aac00" + }, + { + "version": 0, + "identifier": "1427c2f3d8507800" + }, + { + "version": 0, + "identifier": "6276d056e5124000" + }, + { + "version": 0, + "identifier": "57044306fd09d000" + }, + { + "version": 0, + "identifier": "7cd836521b5eec00" + }, + { + "version": 0, + "identifier": "46ebfed922610800" + }, + { + "version": 0, + "identifier": "49a1d53d04e7d000" + }, + { + "version": 0, + "identifier": "6b38af6afcd36c00" + }, + { + "version": 0, + "identifier": "5cc40b18be5bcc00" + }, + { + "version": 0, + "identifier": "754fb5bd2dfa2800" + }, + { + "version": 0, + "identifier": "0d2f56aec9d46800" + }, + { + "version": 0, + "identifier": "387b9d494248cc00" + }, + { + "version": 0, + "identifier": "6ae9cebc84b2dc00" + }, + { + "version": 0, + "identifier": "3c197edb19fc4400" + }, + { + "version": 0, + "identifier": "74425b8975cd4c00" + }, + { + "version": 0, + "identifier": "66a512d72f143800" + }, + { + "version": 0, + "identifier": "1d45d885af8b2400" + }, + { + "version": 0, + "identifier": "44c968cf5d59b800" + }, + { + "version": 0, + "identifier": "2f7a5c7f0cf6a400" + }, + { + "version": 0, + "identifier": "4ec9528c0f1d8400" + }, + { + "version": 0, + "identifier": "54a70c21eab28000" + }, + { + "version": 0, + "identifier": "1f71b65921808400" + }, + { + "version": 0, + "identifier": "4232fa1a8d29d000" + }, + { + "version": 0, + "identifier": "7b791ba51dc0dc00" + }, + { + "version": 0, + "identifier": "118bb2cc9438e800" + }, + { + "version": 0, + "identifier": "69d2e1a9b22e3000" + }, + { + "version": 0, + "identifier": "3d2c3b0111f5b000" + }, + { + "version": 0, + "identifier": "2231b2e34d0f9400" + }, + { + "version": 0, + "identifier": "3b675e5bfe25c000" + }, + { + "version": 0, + "identifier": "1ddbe94385ed9800" + }, + { + "version": 0, + "identifier": "0c2452cf3a590400" + }, + { + "version": 0, + "identifier": "512db1f1465b0000" + }, + { + "version": 0, + "identifier": "2b6ad30b13873000" + }, + { + "version": 0, + "identifier": "24cfe47f8a7eb800" + }, + { + "version": 0, + "identifier": "600bef8f8d76b000" + }, + { + "version": 0, + "identifier": "61e79fffc3494000" + }, + { + "version": 0, + "identifier": "5606fa82b21b6c00" + }, + { + "version": 0, + "identifier": "5371de8188688000" + }, + { + "version": 0, + "identifier": "6b9e104903840800" + }, + { + "version": 0, + "identifier": "19bf523306b40c00" + } +] diff --git a/tests/test_worker_hash_ring.py b/tests/test_worker_hash_ring.py new file mode 100644 index 0000000..1cac515 --- /dev/null +++ b/tests/test_worker_hash_ring.py @@ -0,0 +1,63 @@ +import json + +from alluxio.worker_ring import ConsistentHashProvider +from alluxio.worker_ring import WorkerIdentity +from alluxio.worker_ring import WorkerNetAddress + + +def main(): + hash_provider = ConsistentHashProvider( + etcd_hosts="localhost", + etcd_port=2379, + hash_node_per_worker=5, + etcd_refresh_workers_interval=100000000, + ) + worker_list_path = "/Users/alluxio/downloads/testData/workerList.json" + with open(worker_list_path, "r") as file: + workers_data = json.load(file) + + worker_info_map = {} + for worker_data in workers_data: + worker_identity = WorkerIdentity( + version=worker_data["version"], + identifier=worker_data["identifier"], + ) + # Assuming you want to use a default WorkerNetAddress for each WorkerIdentity + default_worker_net_address = WorkerNetAddress() # Using default values + worker_info_map[worker_identity] = default_worker_net_address + + hash_provider.update_hash_ring(worker_info_map) + current_ring = hash_provider.get_hash_ring() + for hash_key, worker_identity in current_ring.items(): + print(f"Hash Key: {hash_key}, Worker: {worker_identity}") + + hash_ring_path = "/Users/alluxio/downloads/testData/activeNodesMap.json" + with open(hash_ring_path, "r") as file: + hash_ring_data = json.load(file) + + not_found_count = 0 + mismatch_count = 0 + for hash_key, worker_identity in hash_ring_data.items(): + if hash_key in current_ring: + # Fetch the WorkerIdentity object from current_ring + current_worker_identity = current_ring[hash_key] + + # Check if the version and identifier match + if ( + current_worker_identity.version == worker_identity["version"] + and current_worker_identity.identifier + == worker_identity["identifier"] + ): + continue + else: + mismatch_count += 1 + else: + not_found_count += 1 + + print( + f"Total not found: {not_found_count}, Total mismatches: {mismatch_count}" + ) + + +if __name__ == "__main__": + main() From 9cb8b316786a7fe67b34f13d086c026411a0d6dc Mon Sep 17 00:00:00 2001 From: Lu Qiu Date: Wed, 7 Feb 2024 13:35:34 -0800 Subject: [PATCH 04/17] Update --- alluxio/worker_ring.py | 24 +- tests/hash_res/activeNodesMap.json | 1018 +--------------------------- tests/hash_res/fileUrlWorkers.json | 420 +++--------- tests/hash_res/workerList.json | 200 +----- tests/test_worker_hash_ring.py | 11 +- 5 files changed, 142 insertions(+), 1531 deletions(-) diff --git a/alluxio/worker_ring.py b/alluxio/worker_ring.py index e45cbdf..0844bd3 100644 --- a/alluxio/worker_ring.py +++ b/alluxio/worker_ring.py @@ -1,8 +1,10 @@ import json import logging import random +import struct import threading import time +import uuid from dataclasses import dataclass from typing import List from typing import Set @@ -38,7 +40,7 @@ class WorkerNetAddress: @dataclass(frozen=True) class WorkerIdentity: version: int - identifier: str + identifier: bytes @dataclass(frozen=True) @@ -53,8 +55,8 @@ def from_worker_info(worker_info): worker_info_json = json.loads(worker_info_string) identity_info = worker_info_json.get("Identity", {}) worker_identity = WorkerIdentity( - version=identity_info.get("version"), - identifier=identity_info.get("identifier"), + version=int(identity_info.get("version")), + identifier=bytes.fromhex(identity_info.get("identifier")), ) worker_net_address_info = worker_info_json.get( @@ -220,7 +222,11 @@ def get_multiple_workers( worker = self._get_ceiling_value(self._hash(key, attempts)) if worker not in workers: workers.append(worker) - return workers + + worker_addresses = [] + for worker in workers: + worker_addresses.append(self._worker_info_map.get(worker)) + return worker_addresses def _start_background_update_ring(self, interval): def update_loop(): @@ -319,6 +325,12 @@ def _hash(self, key: str, index: int) -> int: def _hash_worker_identity( self, worker: WorkerIdentity, node_index: int ) -> int: - return mmh3.hash( - f"{worker.identifier}{worker.version}{node_index}".encode("utf-8") + version_node_bytes = str(f"{worker.version}{node_index}").encode( + "utf-8" ) + + # Concatenate bytes + combined_bytes = worker.identifier + version_node_bytes + + # Hash the combined bytes + return mmh3.hash(combined_bytes) diff --git a/tests/hash_res/activeNodesMap.json b/tests/hash_res/activeNodesMap.json index 4aff5e1..0c890c3 100644 --- a/tests/hash_res/activeNodesMap.json +++ b/tests/hash_res/activeNodesMap.json @@ -1,1002 +1,38 @@ { - "-2146357353": { - "version": 0, - "identifier": "69d2e1a9b22e3000" + "-1842457281": { + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" }, - "-2143460032": { - "version": 0, - "identifier": "5606fa82b21b6c00" + "-1140083228": { + "version": 1, + "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" }, - "-2141158724": { - "version": 0, - "identifier": "387b9d494248cc00" + "-665881297": { + "version": 1, + "identifier": "e2893632291944699a84f65b82d96047" }, - "-2134022876": { - "version": 0, - "identifier": "2231b2e34d0f9400" + "-567769085": { + "version": 1, + "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" }, - "-2099965959": { - "version": 0, - "identifier": "6b9e104903840800" + "-352654653": { + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" }, - "-2099758850": { - "version": 0, - "identifier": "66a512d72f143800" + "-245959937": { + "version": 1, + "identifier": "e2893632291944699a84f65b82d96047" }, - "-2097516076": { - "version": 0, - "identifier": "4ec9528c0f1d8400" + "175941702": { + "version": 1, + "identifier": "e2893632291944699a84f65b82d96047" }, - "-2071158607": { - "version": 0, - "identifier": "3b675e5bfe25c000" + "351151894": { + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" }, - "-2068068628": { - "version": 0, - "identifier": "6b9e104903840800" - }, - "-2027810955": { - "version": 0, - "identifier": "7bf8fca538019c00" - }, - "-2021256965": { - "version": 0, - "identifier": "735fcc8d7ff1d800" - }, - "-1990688043": { - "version": 0, - "identifier": "46ebfed922610800" - }, - "-1982695259": { - "version": 0, - "identifier": "735fcc8d7ff1d800" - }, - "-1972015073": { - "version": 0, - "identifier": "53e3d1a5572bb000" - }, - "-1962491694": { - "version": 0, - "identifier": "5606fa82b21b6c00" - }, - "-1915578848": { - "version": 0, - "identifier": "3b675e5bfe25c000" - }, - "-1907160995": { - "version": 0, - "identifier": "46ebfed922610800" - }, - "-1862899913": { - "version": 0, - "identifier": "600bef8f8d76b000" - }, - "-1828543214": { - "version": 0, - "identifier": "1f71b65921808400" - }, - "-1826690519": { - "version": 0, - "identifier": "5cc40b18be5bcc00" - }, - "-1813780276": { - "version": 0, - "identifier": "24cfe47f8a7eb800" - }, - "-1812445118": { - "version": 0, - "identifier": "0c2452cf3a590400" - }, - "-1796570379": { - "version": 0, - "identifier": "66a512d72f143800" - }, - "-1751516868": { - "version": 0, - "identifier": "1f71b65921808400" - }, - "-1690481356": { - "version": 0, - "identifier": "6b38af6afcd36c00" - }, - "-1667581797": { - "version": 0, - "identifier": "44c968cf5d59b800" - }, - "-1628140691": { - "version": 0, - "identifier": "3d2c3b0111f5b000" - }, - "-1621972663": { - "version": 0, - "identifier": "3b675e5bfe25c000" - }, - "-1610949457": { - "version": 0, - "identifier": "19bf523306b40c00" - }, - "-1602288201": { - "version": 0, - "identifier": "3b675e5bfe25c000" - }, - "-1600255205": { - "version": 0, - "identifier": "53e3d1a5572bb000" - }, - "-1594316559": { - "version": 0, - "identifier": "04c784c5b2411000" - }, - "-1587738534": { - "version": 0, - "identifier": "66a512d72f143800" - }, - "-1558824578": { - "version": 0, - "identifier": "4ec9528c0f1d8400" - }, - "-1537472838": { - "version": 0, - "identifier": "57044306fd09d000" - }, - "-1530996575": { - "version": 0, - "identifier": "7cd836521b5eec00" - }, - "-1524515064": { - "version": 0, - "identifier": "118bb2cc9438e800" - }, - "-1522590951": { - "version": 0, - "identifier": "6b38af6afcd36c00" - }, - "-1517534079": { - "version": 0, - "identifier": "1d45d885af8b2400" - }, - "-1507636414": { - "version": 0, - "identifier": "5cc40b18be5bcc00" - }, - "-1502407768": { - "version": 0, - "identifier": "655f6dd6e8ba1800" - }, - "-1480629903": { - "version": 0, - "identifier": "4232fa1a8d29d000" - }, - "-1471256726": { - "version": 0, - "identifier": "1ddbe94385ed9800" - }, - "-1456653720": { - "version": 0, - "identifier": "69d2e1a9b22e3000" - }, - "-1420097530": { - "version": 0, - "identifier": "1427c2f3d8507800" - }, - "-1416204422": { - "version": 0, - "identifier": "04c784c5b2411000" - }, - "-1391010768": { - "version": 0, - "identifier": "66a512d72f143800" - }, - "-1347436917": { - "version": 0, - "identifier": "3c197edb19fc4400" - }, - "-1323678227": { - "version": 0, - "identifier": "1d45d885af8b2400" - }, - "-1309139691": { - "version": 0, - "identifier": "142116a3b9126c00" - }, - "-1306436858": { - "version": 0, - "identifier": "2b6ad30b13873000" - }, - "-1285648222": { - "version": 0, - "identifier": "74425b8975cd4c00" - }, - "-1281045417": { - "version": 0, - "identifier": "1427c2f3d8507800" - }, - "-1275667618": { - "version": 0, - "identifier": "44c968cf5d59b800" - }, - "-1272607182": { - "version": 0, - "identifier": "7b791ba51dc0dc00" - }, - "-1225639621": { - "version": 0, - "identifier": "512db1f1465b0000" - }, - "-1223542060": { - "version": 0, - "identifier": "6276d056e5124000" - }, - "-1209296842": { - "version": 0, - "identifier": "735fcc8d7ff1d800" - }, - "-1200460955": { - "version": 0, - "identifier": "0c2452cf3a590400" - }, - "-1198181784": { - "version": 0, - "identifier": "2b6ad30b13873000" - }, - "-1194552198": { - "version": 0, - "identifier": "04c784c5b2411000" - }, - "-1159514286": { - "version": 0, - "identifier": "6ae9cebc84b2dc00" - }, - "-1148906285": { - "version": 0, - "identifier": "2b6ad30b13873000" - }, - "-1148444282": { - "version": 0, - "identifier": "6ae9cebc84b2dc00" - }, - "-1132117350": { - "version": 0, - "identifier": "7cd836521b5eec00" - }, - "-1130355896": { - "version": 0, - "identifier": "735fcc8d7ff1d800" - }, - "-1128119183": { - "version": 0, - "identifier": "3c197edb19fc4400" - }, - "-1103943523": { - "version": 0, - "identifier": "7b791ba51dc0dc00" - }, - "-1089825959": { - "version": 0, - "identifier": "1ddbe94385ed9800" - }, - "-1048626267": { - "version": 0, - "identifier": "1ddbe94385ed9800" - }, - "-1004397368": { - "version": 0, - "identifier": "52dd426a8b0bd000" - }, - "-995767295": { - "version": 0, - "identifier": "5606fa82b21b6c00" - }, - "-987360326": { - "version": 0, - "identifier": "3d2c3b0111f5b000" - }, - "-943526723": { - "version": 0, - "identifier": "2231b2e34d0f9400" - }, - "-941854251": { - "version": 0, - "identifier": "44c968cf5d59b800" - }, - "-899938886": { - "version": 0, - "identifier": "0c2452cf3a590400" - }, - "-883108869": { - "version": 0, - "identifier": "1f71b65921808400" - }, - "-785757493": { - "version": 0, - "identifier": "04c784c5b2411000" - }, - "-776406837": { - "version": 0, - "identifier": "0d2f56aec9d46800" - }, - "-760513952": { - "version": 0, - "identifier": "49a1d53d04e7d000" - }, - "-745120187": { - "version": 0, - "identifier": "74425b8975cd4c00" - }, - "-737525786": { - "version": 0, - "identifier": "6276d056e5124000" - }, - "-721673653": { - "version": 0, - "identifier": "0a66121330df7800" - }, - "-714712924": { - "version": 0, - "identifier": "61e79fffc3494000" - }, - "-666923259": { - "version": 0, - "identifier": "0d2f56aec9d46800" - }, - "-652279460": { - "version": 0, - "identifier": "4232fa1a8d29d000" - }, - "-645674328": { - "version": 0, - "identifier": "600bef8f8d76b000" - }, - "-645388201": { - "version": 0, - "identifier": "735fcc8d7ff1d800" - }, - "-618319776": { - "version": 0, - "identifier": "142116a3b9126c00" - }, - "-599542405": { - "version": 0, - "identifier": "2f7a5c7f0cf6a400" - }, - "-599051763": { - "version": 0, - "identifier": "6b38af6afcd36c00" - }, - "-591622750": { - "version": 0, - "identifier": "4885f3391740d800" - }, - "-589656948": { - "version": 0, - "identifier": "655f6dd6e8ba1800" - }, - "-571491026": { - "version": 0, - "identifier": "24cfe47f8a7eb800" - }, - "-556031666": { - "version": 0, - "identifier": "4232fa1a8d29d000" - }, - "-554939029": { - "version": 0, - "identifier": "7cd836521b5eec00" - }, - "-549338233": { - "version": 0, - "identifier": "74425b8975cd4c00" - }, - "-542440718": { - "version": 0, - "identifier": "118bb2cc9438e800" - }, - "-541349409": { - "version": 0, - "identifier": "387b9d494248cc00" - }, - "-526193478": { - "version": 0, - "identifier": "54a70c21eab28000" - }, - "-519230293": { - "version": 0, - "identifier": "7dc2007ecb9a2800" - }, - "-499456376": { - "version": 0, - "identifier": "49a1d53d04e7d000" - }, - "-489929831": { - "version": 0, - "identifier": "6b38af6afcd36c00" - }, - "-486327478": { - "version": 0, - "identifier": "2231b2e34d0f9400" - }, - "-482535420": { - "version": 0, - "identifier": "118bb2cc9438e800" - }, - "-475927715": { - "version": 0, - "identifier": "52dd426a8b0bd000" - }, - "-453481942": { - "version": 0, - "identifier": "49a1d53d04e7d000" - }, - "-449841744": { - "version": 0, - "identifier": "512db1f1465b0000" - }, - "-438668324": { - "version": 0, - "identifier": "6b9e104903840800" - }, - "-434528465": { - "version": 0, - "identifier": "19bf523306b40c00" - }, - "-384219169": { - "version": 0, - "identifier": "1427c2f3d8507800" - }, - "-378539718": { - "version": 0, - "identifier": "54a70c21eab28000" - }, - "-359435024": { - "version": 0, - "identifier": "7dc2007ecb9a2800" - }, - "-358883804": { - "version": 0, - "identifier": "57044306fd09d000" - }, - "-294386214": { - "version": 0, - "identifier": "19bf523306b40c00" - }, - "-293222101": { - "version": 0, - "identifier": "57044306fd09d000" - }, - "-259155632": { - "version": 0, - "identifier": "57044306fd09d000" - }, - "-193963868": { - "version": 0, - "identifier": "600bef8f8d76b000" - }, - "-186073372": { - "version": 0, - "identifier": "0a66121330df7800" - }, - "-181517408": { - "version": 0, - "identifier": "19bf523306b40c00" - }, - "-138416764": { - "version": 0, - "identifier": "728fb281f67aac00" - }, - "-120941004": { - "version": 0, - "identifier": "6ae9cebc84b2dc00" - }, - "-117085933": { - "version": 0, - "identifier": "61e79fffc3494000" - }, - "-96106515": { - "version": 0, - "identifier": "53e3d1a5572bb000" - }, - "-93674826": { - "version": 0, - "identifier": "69d2e1a9b22e3000" - }, - "-77064930": { - "version": 0, - "identifier": "3d2c3b0111f5b000" - }, - "-65271511": { - "version": 0, - "identifier": "754fb5bd2dfa2800" - }, - "-44676346": { - "version": 0, - "identifier": "387b9d494248cc00" - }, - "24392629": { - "version": 0, - "identifier": "4ec9528c0f1d8400" - }, - "24761713": { - "version": 0, - "identifier": "5371de8188688000" - }, - "38874236": { - "version": 0, - "identifier": "54a70c21eab28000" - }, - "43197917": { - "version": 0, - "identifier": "118bb2cc9438e800" - }, - "63872261": { - "version": 0, - "identifier": "7bf8fca538019c00" - }, - "78807795": { - "version": 0, - "identifier": "142116a3b9126c00" - }, - "102858897": { - "version": 0, - "identifier": "5cc40b18be5bcc00" - }, - "117381448": { - "version": 0, - "identifier": "2f7a5c7f0cf6a400" - }, - "120830737": { - "version": 0, - "identifier": "7dc2007ecb9a2800" - }, - "146549525": { - "version": 0, - "identifier": "387b9d494248cc00" - }, - "154072976": { - "version": 0, - "identifier": "142116a3b9126c00" - }, - "207593172": { - "version": 0, - "identifier": "74425b8975cd4c00" - }, - "208238404": { - "version": 0, - "identifier": "44c968cf5d59b800" - }, - "210097756": { - "version": 0, - "identifier": "0d2f56aec9d46800" - }, - "252083957": { - "version": 0, - "identifier": "61e79fffc3494000" - }, - "256890876": { - "version": 0, - "identifier": "66a512d72f143800" - }, - "274612042": { - "version": 0, - "identifier": "6ae9cebc84b2dc00" - }, - "291216256": { - "version": 0, - "identifier": "24cfe47f8a7eb800" - }, - "297342464": { - "version": 0, - "identifier": "5606fa82b21b6c00" - }, - "321815079": { - "version": 0, - "identifier": "4885f3391740d800" - }, - "345007578": { - "version": 0, - "identifier": "6b38af6afcd36c00" - }, - "353287258": { - "version": 0, - "identifier": "3c197edb19fc4400" - }, - "406613043": { - "version": 0, - "identifier": "04c784c5b2411000" - }, - "410441496": { - "version": 0, - "identifier": "6ae9cebc84b2dc00" - }, - "415426970": { - "version": 0, - "identifier": "5cc40b18be5bcc00" - }, - "431427756": { - "version": 0, - "identifier": "5cc40b18be5bcc00" - }, - "531114485": { - "version": 0, - "identifier": "387b9d494248cc00" - }, - "543491474": { - "version": 0, - "identifier": "1ddbe94385ed9800" - }, - "554018797": { - "version": 0, - "identifier": "2f7a5c7f0cf6a400" - }, - "562527835": { - "version": 0, - "identifier": "69d2e1a9b22e3000" - }, - "579168057": { - "version": 0, - "identifier": "2f7a5c7f0cf6a400" - }, - "587836129": { - "version": 0, - "identifier": "4232fa1a8d29d000" - }, - "607281837": { - "version": 0, - "identifier": "5371de8188688000" - }, - "614360365": { - "version": 0, - "identifier": "512db1f1465b0000" - }, - "629942766": { - "version": 0, - "identifier": "655f6dd6e8ba1800" - }, - "670744299": { - "version": 0, - "identifier": "728fb281f67aac00" - }, - "699186983": { - "version": 0, - "identifier": "6276d056e5124000" - }, - "709914026": { - "version": 0, - "identifier": "4ec9528c0f1d8400" - }, - "715839764": { - "version": 0, - "identifier": "142116a3b9126c00" - }, - "718350851": { - "version": 0, - "identifier": "5371de8188688000" - }, - "719124815": { - "version": 0, - "identifier": "4232fa1a8d29d000" - }, - "758240441": { - "version": 0, - "identifier": "754fb5bd2dfa2800" - }, - "761993041": { - "version": 0, - "identifier": "728fb281f67aac00" - }, - "794310381": { - "version": 0, - "identifier": "7dc2007ecb9a2800" - }, - "821702058": { - "version": 0, - "identifier": "754fb5bd2dfa2800" - }, - "849560531": { - "version": 0, - "identifier": "46ebfed922610800" - }, - "867271170": { - "version": 0, - "identifier": "5371de8188688000" - }, - "901170181": { - "version": 0, - "identifier": "6b9e104903840800" - }, - "930886304": { - "version": 0, - "identifier": "54a70c21eab28000" - }, - "931754669": { - "version": 0, - "identifier": "754fb5bd2dfa2800" - }, - "943281110": { - "version": 0, - "identifier": "2b6ad30b13873000" - }, - "959573544": { - "version": 0, - "identifier": "3d2c3b0111f5b000" - }, - "974871369": { - "version": 0, - "identifier": "4ec9528c0f1d8400" - }, - "1027739394": { - "version": 0, - "identifier": "4885f3391740d800" - }, - "1030184489": { - "version": 0, - "identifier": "600bef8f8d76b000" - }, - "1057976678": { - "version": 0, - "identifier": "1d45d885af8b2400" - }, - "1076362799": { - "version": 0, - "identifier": "74425b8975cd4c00" - }, - "1097405157": { - "version": 0, - "identifier": "118bb2cc9438e800" - }, - "1116909615": { - "version": 0, - "identifier": "52dd426a8b0bd000" - }, - "1140405000": { - "version": 0, - "identifier": "7bf8fca538019c00" - }, - "1153531709": { - "version": 0, - "identifier": "6b9e104903840800" - }, - "1158833684": { - "version": 0, - "identifier": "52dd426a8b0bd000" - }, - "1190081762": { - "version": 0, - "identifier": "61e79fffc3494000" - }, - "1190706468": { - "version": 0, - "identifier": "7b791ba51dc0dc00" - }, - "1193697165": { - "version": 0, - "identifier": "7bf8fca538019c00" - }, - "1201740402": { - "version": 0, - "identifier": "69d2e1a9b22e3000" - }, - "1211688990": { - "version": 0, - "identifier": "52dd426a8b0bd000" - }, - "1216797717": { - "version": 0, - "identifier": "53e3d1a5572bb000" - }, - "1250966948": { - "version": 0, - "identifier": "1f71b65921808400" - }, - "1251147801": { - "version": 0, - "identifier": "512db1f1465b0000" - }, - "1252860074": { - "version": 0, - "identifier": "0c2452cf3a590400" - }, - "1268389013": { - "version": 0, - "identifier": "44c968cf5d59b800" - }, - "1269130099": { - "version": 0, - "identifier": "1427c2f3d8507800" - }, - "1271292003": { - "version": 0, - "identifier": "7dc2007ecb9a2800" - }, - "1291010030": { - "version": 0, - "identifier": "3c197edb19fc4400" - }, - "1293769232": { - "version": 0, - "identifier": "0a66121330df7800" - }, - "1310609113": { - "version": 0, - "identifier": "6276d056e5124000" - }, - "1333305604": { - "version": 0, - "identifier": "655f6dd6e8ba1800" - }, - "1353967978": { - "version": 0, - "identifier": "0a66121330df7800" - }, - "1356291181": { - "version": 0, - "identifier": "728fb281f67aac00" - }, - "1378239379": { - "version": 0, - "identifier": "3b675e5bfe25c000" - }, - "1405698708": { - "version": 0, - "identifier": "7cd836521b5eec00" - }, - "1422443848": { - "version": 0, - "identifier": "5371de8188688000" - }, - "1433675459": { - "version": 0, - "identifier": "1ddbe94385ed9800" - }, - "1447458665": { - "version": 0, - "identifier": "2231b2e34d0f9400" - }, - "1453279030": { - "version": 0, - "identifier": "61e79fffc3494000" - }, - "1464203858": { - "version": 0, - "identifier": "7cd836521b5eec00" - }, - "1501246461": { - "version": 0, - "identifier": "0a66121330df7800" - }, - "1515068375": { - "version": 0, - "identifier": "19bf523306b40c00" - }, - "1524087076": { - "version": 0, - "identifier": "6276d056e5124000" - }, - "1568892385": { - "version": 0, - "identifier": "24cfe47f8a7eb800" - }, - "1584057679": { - "version": 0, - "identifier": "2231b2e34d0f9400" - }, - "1586416046": { - "version": 0, - "identifier": "46ebfed922610800" - }, - "1634353645": { - "version": 0, - "identifier": "1d45d885af8b2400" - }, - "1642221423": { - "version": 0, - "identifier": "2f7a5c7f0cf6a400" - }, - "1660217432": { - "version": 0, - "identifier": "1d45d885af8b2400" - }, - "1674764772": { - "version": 0, - "identifier": "4885f3391740d800" - }, - "1683659727": { - "version": 0, - "identifier": "728fb281f67aac00" - }, - "1691493937": { - "version": 0, - "identifier": "49a1d53d04e7d000" - }, - "1726699406": { - "version": 0, - "identifier": "7b791ba51dc0dc00" - }, - "1738714508": { - "version": 0, - "identifier": "53e3d1a5572bb000" - }, - "1762985245": { - "version": 0, - "identifier": "0d2f56aec9d46800" - }, - "1777309509": { - "version": 0, - "identifier": "7b791ba51dc0dc00" - }, - "1795037250": { - "version": 0, - "identifier": "5606fa82b21b6c00" - }, - "1814188161": { - "version": 0, - "identifier": "512db1f1465b0000" - }, - "1839321968": { - "version": 0, - "identifier": "2b6ad30b13873000" - }, - "1855529427": { - "version": 0, - "identifier": "24cfe47f8a7eb800" - }, - "1871669117": { - "version": 0, - "identifier": "3d2c3b0111f5b000" - }, - "1884438331": { - "version": 0, - "identifier": "754fb5bd2dfa2800" - }, - "1891464174": { - "version": 0, - "identifier": "7bf8fca538019c00" - }, - "1902385606": { - "version": 0, - "identifier": "1f71b65921808400" - }, - "1915954789": { - "version": 0, - "identifier": "4885f3391740d800" - }, - "1926230451": { - "version": 0, - "identifier": "3c197edb19fc4400" - }, - "1947302292": { - "version": 0, - "identifier": "54a70c21eab28000" - }, - "1968554086": { - "version": 0, - "identifier": "49a1d53d04e7d000" - }, - "1973096303": { - "version": 0, - "identifier": "600bef8f8d76b000" - }, - "1999282053": { - "version": 0, - "identifier": "0d2f56aec9d46800" - }, - "2032912222": { - "version": 0, - "identifier": "0c2452cf3a590400" - }, - "2056375654": { - "version": 0, - "identifier": "46ebfed922610800" - }, - "2095555874": { - "version": 0, - "identifier": "655f6dd6e8ba1800" - }, - "2131663264": { - "version": 0, - "identifier": "57044306fd09d000" - }, - "2145664408": { - "version": 0, - "identifier": "1427c2f3d8507800" + "711669571": { + "version": 1, + "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" } } diff --git a/tests/hash_res/fileUrlWorkers.json b/tests/hash_res/fileUrlWorkers.json index 2410f36..1cd2010 100644 --- a/tests/hash_res/fileUrlWorkers.json +++ b/tests/hash_res/fileUrlWorkers.json @@ -1,464 +1,212 @@ { "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_checkin.json": [ { - "version": 0, - "identifier": "19bf523306b40c00" + "version": 1, + "identifier": "e2893632291944699a84f65b82d96047" }, { - "version": 0, - "identifier": "6b38af6afcd36c00" - }, - { - "version": 0, - "identifier": "0d2f56aec9d46800" - }, - { - "version": 0, - "identifier": "5371de8188688000" - }, - { - "version": 0, - "identifier": "61e79fffc3494000" + "version": 1, + "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" } ], "gcs://bucket/file.txt": [ { - "version": 0, - "identifier": "6b38af6afcd36c00" - }, - { - "version": 0, - "identifier": "4ec9528c0f1d8400" + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" }, { - "version": 0, - "identifier": "24cfe47f8a7eb800" - }, - { - "version": 0, - "identifier": "2231b2e34d0f9400" - }, - { - "version": 0, - "identifier": "7cd836521b5eec00" + "version": 1, + "identifier": "e2893632291944699a84f65b82d96047" } ], "s://ai-testing/": [ { - "version": 0, - "identifier": "1427c2f3d8507800" - }, - { - "version": 0, - "identifier": "387b9d494248cc00" - }, - { - "version": 0, - "identifier": "600bef8f8d76b000" + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" }, { - "version": 0, - "identifier": "142116a3b9126c00" - }, - { - "version": 0, - "identifier": "0a66121330df7800" + "version": 1, + "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" } ], "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_review.json": [ { - "version": 0, - "identifier": "74425b8975cd4c00" - }, - { - "version": 0, - "identifier": "2231b2e34d0f9400" - }, - { - "version": 0, - "identifier": "1f71b65921808400" - }, - { - "version": 0, - "identifier": "754fb5bd2dfa2800" + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" }, { - "version": 0, - "identifier": "54a70c21eab28000" + "version": 1, + "identifier": "e2893632291944699a84f65b82d96047" } ], "s3://bucket/path/to/dir": [ { - "version": 0, - "identifier": "5606fa82b21b6c00" + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" }, { - "version": 0, - "identifier": "2231b2e34d0f9400" - }, - { - "version": 0, - "identifier": "44c968cf5d59b800" - }, - { - "version": 0, - "identifier": "74425b8975cd4c00" - }, - { - "version": 0, - "identifier": "46ebfed922610800" + "version": 1, + "identifier": "e2893632291944699a84f65b82d96047" } ], "hdfs://host:port/path/to/file": [ { - "version": 0, - "identifier": "600bef8f8d76b000" - }, - { - "version": 0, - "identifier": "04c784c5b2411000" + "version": 1, + "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" }, { - "version": 0, - "identifier": "7b791ba51dc0dc00" - }, - { - "version": 0, - "identifier": "3b675e5bfe25c000" - }, - { - "version": 0, - "identifier": "24cfe47f8a7eb800" + "version": 1, + "identifier": "e2893632291944699a84f65b82d96047" } ], "wasbs://container@account.blob.core.windows.net/dir": [ { - "version": 0, - "identifier": "4885f3391740d800" - }, - { - "version": 0, - "identifier": "655f6dd6e8ba1800" - }, - { - "version": 0, - "identifier": "24cfe47f8a7eb800" + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" }, { - "version": 0, - "identifier": "600bef8f8d76b000" - }, - { - "version": 0, - "identifier": "142116a3b9126c00" + "version": 1, + "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" } ], "gs://bucket/file.txt": [ { - "version": 0, - "identifier": "0c2452cf3a590400" - }, - { - "version": 0, - "identifier": "4885f3391740d800" - }, - { - "version": 0, - "identifier": "3d2c3b0111f5b000" - }, - { - "version": 0, - "identifier": "1427c2f3d8507800" + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" }, { - "version": 0, - "identifier": "4ec9528c0f1d8400" + "version": 1, + "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" } ], "s3://ai-ref-arch/yelp-review/yelp_review_sample_large.csv": [ { - "version": 0, - "identifier": "1d45d885af8b2400" + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" }, { - "version": 0, - "identifier": "735fcc8d7ff1d800" - }, - { - "version": 0, - "identifier": "1ddbe94385ed9800" - }, - { - "version": 0, - "identifier": "728fb281f67aac00" - }, - { - "version": 0, - "identifier": "7cd836521b5eec00" + "version": 1, + "identifier": "e2893632291944699a84f65b82d96047" } ], "s3://ai-ref-arch/yelp-review/model.pt": [ { - "version": 0, - "identifier": "735fcc8d7ff1d800" - }, - { - "version": 0, - "identifier": "4ec9528c0f1d8400" + "version": 1, + "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" }, { - "version": 0, - "identifier": "04c784c5b2411000" - }, - { - "version": 0, - "identifier": "19bf523306b40c00" - }, - { - "version": 0, - "identifier": "5371de8188688000" + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" } ], "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_business.json": [ { - "version": 0, - "identifier": "2b6ad30b13873000" - }, - { - "version": 0, - "identifier": "49a1d53d04e7d000" - }, - { - "version": 0, - "identifier": "3d2c3b0111f5b000" - }, - { - "version": 0, - "identifier": "3c197edb19fc4400" + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" }, { - "version": 0, - "identifier": "4232fa1a8d29d000" + "version": 1, + "identifier": "e2893632291944699a84f65b82d96047" } ], "hdfs://namenode:8020/user/hadoop/file.txt": [ { - "version": 0, - "identifier": "1d45d885af8b2400" - }, - { - "version": 0, - "identifier": "54a70c21eab28000" - }, - { - "version": 0, - "identifier": "6b38af6afcd36c00" - }, - { - "version": 0, - "identifier": "3b675e5bfe25c000" + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" }, { - "version": 0, - "identifier": "4232fa1a8d29d000" + "version": 1, + "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" } ], "gs://bucket/dir": [ { - "version": 0, - "identifier": "387b9d494248cc00" - }, - { - "version": 0, - "identifier": "3d2c3b0111f5b000" - }, - { - "version": 0, - "identifier": "04c784c5b2411000" - }, - { - "version": 0, - "identifier": "57044306fd09d000" + "version": 1, + "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" }, { - "version": 0, - "identifier": "0a66121330df7800" + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" } ], "gcs://bucket/dir": [ { - "version": 0, - "identifier": "04c784c5b2411000" - }, - { - "version": 0, - "identifier": "19bf523306b40c00" - }, - { - "version": 0, - "identifier": "2231b2e34d0f9400" - }, - { - "version": 0, - "identifier": "5371de8188688000" + "version": 1, + "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" }, { - "version": 0, - "identifier": "387b9d494248cc00" + "version": 1, + "identifier": "e2893632291944699a84f65b82d96047" } ], "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_user.json": [ { - "version": 0, - "identifier": "6ae9cebc84b2dc00" - }, - { - "version": 0, - "identifier": "3b675e5bfe25c000" - }, - { - "version": 0, - "identifier": "6b9e104903840800" - }, - { - "version": 0, - "identifier": "2231b2e34d0f9400" + "version": 1, + "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" }, { - "version": 0, - "identifier": "74425b8975cd4c00" + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" } ], "s3://bucket/path/to/file": [ { - "version": 0, - "identifier": "7dc2007ecb9a2800" - }, - { - "version": 0, - "identifier": "0c2452cf3a590400" - }, - { - "version": 0, - "identifier": "19bf523306b40c00" + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" }, { - "version": 0, - "identifier": "5606fa82b21b6c00" - }, - { - "version": 0, - "identifier": "5371de8188688000" + "version": 1, + "identifier": "e2893632291944699a84f65b82d96047" } ], "hdfs://host:port/path/to/dir": [ { - "version": 0, - "identifier": "512db1f1465b0000" - }, - { - "version": 0, - "identifier": "2b6ad30b13873000" - }, - { - "version": 0, - "identifier": "6b38af6afcd36c00" - }, - { - "version": 0, - "identifier": "5606fa82b21b6c00" + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" }, { - "version": 0, - "identifier": "5371de8188688000" + "version": 1, + "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" } ], "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_tip.json": [ { - "version": 0, - "identifier": "54a70c21eab28000" - }, - { - "version": 0, - "identifier": "04c784c5b2411000" - }, - { - "version": 0, - "identifier": "0a66121330df7800" - }, - { - "version": 0, - "identifier": "3c197edb19fc4400" + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" }, { - "version": 0, - "identifier": "6ae9cebc84b2dc00" + "version": 1, + "identifier": "e2893632291944699a84f65b82d96047" } ], "hdfs://namenode:8020/user/hadoop/dir": [ { - "version": 0, - "identifier": "1ddbe94385ed9800" - }, - { - "version": 0, - "identifier": "0d2f56aec9d46800" + "version": 1, + "identifier": "e2893632291944699a84f65b82d96047" }, { - "version": 0, - "identifier": "387b9d494248cc00" - }, - { - "version": 0, - "identifier": "1d45d885af8b2400" - }, - { - "version": 0, - "identifier": "04c784c5b2411000" + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" } ], "s3://ai-ref-arch/yelp-review/yelp_review_sample.csv": [ { - "version": 0, - "identifier": "0d2f56aec9d46800" - }, - { - "version": 0, - "identifier": "4885f3391740d800" - }, - { - "version": 0, - "identifier": "1d45d885af8b2400" + "version": 1, + "identifier": "e2893632291944699a84f65b82d96047" }, { - "version": 0, - "identifier": "0c2452cf3a590400" - }, - { - "version": 0, - "identifier": "7bf8fca538019c00" + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" } ], "wasbs://container@account.blob.core.windows.net/file.txt": [ { - "version": 0, - "identifier": "6b38af6afcd36c00" - }, - { - "version": 0, - "identifier": "74425b8975cd4c00" - }, - { - "version": 0, - "identifier": "54a70c21eab28000" - }, - { - "version": 0, - "identifier": "57044306fd09d000" + "version": 1, + "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" }, { - "version": 0, - "identifier": "6ae9cebc84b2dc00" + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" } ] } diff --git a/tests/hash_res/workerList.json b/tests/hash_res/workerList.json index c54058c..c9afa46 100644 --- a/tests/hash_res/workerList.json +++ b/tests/hash_res/workerList.json @@ -1,202 +1,14 @@ [ { - "version": 0, - "identifier": "7dc2007ecb9a2800" + "version": 1, + "identifier": "e2893632291944699a84f65b82d96047" }, { - "version": 0, - "identifier": "4885f3391740d800" + "version": 1, + "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" }, { - "version": 0, - "identifier": "0a66121330df7800" - }, - { - "version": 0, - "identifier": "52dd426a8b0bd000" - }, - { - "version": 0, - "identifier": "735fcc8d7ff1d800" - }, - { - "version": 0, - "identifier": "7bf8fca538019c00" - }, - { - "version": 0, - "identifier": "53e3d1a5572bb000" - }, - { - "version": 0, - "identifier": "655f6dd6e8ba1800" - }, - { - "version": 0, - "identifier": "04c784c5b2411000" - }, - { - "version": 0, - "identifier": "142116a3b9126c00" - }, - { - "version": 0, - "identifier": "728fb281f67aac00" - }, - { - "version": 0, - "identifier": "1427c2f3d8507800" - }, - { - "version": 0, - "identifier": "6276d056e5124000" - }, - { - "version": 0, - "identifier": "57044306fd09d000" - }, - { - "version": 0, - "identifier": "7cd836521b5eec00" - }, - { - "version": 0, - "identifier": "46ebfed922610800" - }, - { - "version": 0, - "identifier": "49a1d53d04e7d000" - }, - { - "version": 0, - "identifier": "6b38af6afcd36c00" - }, - { - "version": 0, - "identifier": "5cc40b18be5bcc00" - }, - { - "version": 0, - "identifier": "754fb5bd2dfa2800" - }, - { - "version": 0, - "identifier": "0d2f56aec9d46800" - }, - { - "version": 0, - "identifier": "387b9d494248cc00" - }, - { - "version": 0, - "identifier": "6ae9cebc84b2dc00" - }, - { - "version": 0, - "identifier": "3c197edb19fc4400" - }, - { - "version": 0, - "identifier": "74425b8975cd4c00" - }, - { - "version": 0, - "identifier": "66a512d72f143800" - }, - { - "version": 0, - "identifier": "1d45d885af8b2400" - }, - { - "version": 0, - "identifier": "44c968cf5d59b800" - }, - { - "version": 0, - "identifier": "2f7a5c7f0cf6a400" - }, - { - "version": 0, - "identifier": "4ec9528c0f1d8400" - }, - { - "version": 0, - "identifier": "54a70c21eab28000" - }, - { - "version": 0, - "identifier": "1f71b65921808400" - }, - { - "version": 0, - "identifier": "4232fa1a8d29d000" - }, - { - "version": 0, - "identifier": "7b791ba51dc0dc00" - }, - { - "version": 0, - "identifier": "118bb2cc9438e800" - }, - { - "version": 0, - "identifier": "69d2e1a9b22e3000" - }, - { - "version": 0, - "identifier": "3d2c3b0111f5b000" - }, - { - "version": 0, - "identifier": "2231b2e34d0f9400" - }, - { - "version": 0, - "identifier": "3b675e5bfe25c000" - }, - { - "version": 0, - "identifier": "1ddbe94385ed9800" - }, - { - "version": 0, - "identifier": "0c2452cf3a590400" - }, - { - "version": 0, - "identifier": "512db1f1465b0000" - }, - { - "version": 0, - "identifier": "2b6ad30b13873000" - }, - { - "version": 0, - "identifier": "24cfe47f8a7eb800" - }, - { - "version": 0, - "identifier": "600bef8f8d76b000" - }, - { - "version": 0, - "identifier": "61e79fffc3494000" - }, - { - "version": 0, - "identifier": "5606fa82b21b6c00" - }, - { - "version": 0, - "identifier": "5371de8188688000" - }, - { - "version": 0, - "identifier": "6b9e104903840800" - }, - { - "version": 0, - "identifier": "19bf523306b40c00" + "version": 1, + "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" } ] diff --git a/tests/test_worker_hash_ring.py b/tests/test_worker_hash_ring.py index 1cac515..852d3ba 100644 --- a/tests/test_worker_hash_ring.py +++ b/tests/test_worker_hash_ring.py @@ -9,7 +9,7 @@ def main(): hash_provider = ConsistentHashProvider( etcd_hosts="localhost", etcd_port=2379, - hash_node_per_worker=5, + hash_node_per_worker=3, etcd_refresh_workers_interval=100000000, ) worker_list_path = "/Users/alluxio/downloads/testData/workerList.json" @@ -19,8 +19,8 @@ def main(): worker_info_map = {} for worker_data in workers_data: worker_identity = WorkerIdentity( - version=worker_data["version"], - identifier=worker_data["identifier"], + version=int(worker_data["version"]), + identifier=bytes.fromhex(worker_data["identifier"]), ) # Assuming you want to use a default WorkerNetAddress for each WorkerIdentity default_worker_net_address = WorkerNetAddress() # Using default values @@ -28,8 +28,11 @@ def main(): hash_provider.update_hash_ring(worker_info_map) current_ring = hash_provider.get_hash_ring() + # Use the above function in the printing section of your main function for hash_key, worker_identity in current_ring.items(): - print(f"Hash Key: {hash_key}, Worker: {worker_identity}") + print( + f"Hash Key: {hash_key}, Worker: WorkerIdentity(version={worker_identity.version}, identifier={worker_identity.identifier.hex()})" + ) hash_ring_path = "/Users/alluxio/downloads/testData/activeNodesMap.json" with open(hash_ring_path, "r") as file: From c926fab0afa7758c84f42e42d2514002c8d31cdb Mon Sep 17 00:00:00 2001 From: Jianjian Date: Thu, 8 Feb 2024 16:00:27 -0800 Subject: [PATCH 05/17] update hasher and fix test --- alluxio/worker_ring.py | 20 +++++++++----------- tests/test_worker_hash_ring.py | 34 ++++++++++++++++------------------ 2 files changed, 25 insertions(+), 29 deletions(-) diff --git a/alluxio/worker_ring.py b/alluxio/worker_ring.py index 0844bd3..9076c8e 100644 --- a/alluxio/worker_ring.py +++ b/alluxio/worker_ring.py @@ -1,10 +1,8 @@ import json import logging import random -import struct import threading import time -import uuid from dataclasses import dataclass from typing import List from typing import Set @@ -320,17 +318,17 @@ def _get_ceiling_value(self, hash_key: int): return self.hash_ring.peekitem(0)[1] def _hash(self, key: str, index: int) -> int: - return mmh3.hash(f"{key}{index}".encode("utf-8")) + hasher = mmh3.mmh3_32() + hasher.update(key) + hasher.update(index.to_bytes(4, "little")) + return hasher.sintdigest() def _hash_worker_identity( self, worker: WorkerIdentity, node_index: int ) -> int: - version_node_bytes = str(f"{worker.version}{node_index}").encode( - "utf-8" - ) - - # Concatenate bytes - combined_bytes = worker.identifier + version_node_bytes - # Hash the combined bytes - return mmh3.hash(combined_bytes) + hasher = mmh3.mmh3_32() + hasher.update(worker.identifier) + hasher.update(worker.version.to_bytes(4, "little")) + hasher.update(node_index.to_bytes(4, "little")) + return hasher.sintdigest() diff --git a/tests/test_worker_hash_ring.py b/tests/test_worker_hash_ring.py index 852d3ba..b67a9ef 100644 --- a/tests/test_worker_hash_ring.py +++ b/tests/test_worker_hash_ring.py @@ -5,14 +5,14 @@ from alluxio.worker_ring import WorkerNetAddress -def main(): +def test_hash_ring(): hash_provider = ConsistentHashProvider( - etcd_hosts="localhost", - etcd_port=2379, + # etcd_hosts="localhost", + # etcd_port=2379, hash_node_per_worker=3, etcd_refresh_workers_interval=100000000, ) - worker_list_path = "/Users/alluxio/downloads/testData/workerList.json" + worker_list_path = "tests/hash_res/workerList.json" with open(worker_list_path, "r") as file: workers_data = json.load(file) @@ -34,22 +34,23 @@ def main(): f"Hash Key: {hash_key}, Worker: WorkerIdentity(version={worker_identity.version}, identifier={worker_identity.identifier.hex()})" ) - hash_ring_path = "/Users/alluxio/downloads/testData/activeNodesMap.json" + hash_ring_path = "tests/hash_res/activeNodesMap.json" with open(hash_ring_path, "r") as file: hash_ring_data = json.load(file) not_found_count = 0 mismatch_count = 0 for hash_key, worker_identity in hash_ring_data.items(): - if hash_key in current_ring: + key = int(hash_key) + if key in current_ring: # Fetch the WorkerIdentity object from current_ring - current_worker_identity = current_ring[hash_key] + current_worker_identity = current_ring[key] # Check if the version and identifier match - if ( - current_worker_identity.version == worker_identity["version"] - and current_worker_identity.identifier - == worker_identity["identifier"] + if current_worker_identity.version == worker_identity[ + "version" + ] and current_worker_identity.identifier == bytes.fromhex( + worker_identity["identifier"] ): continue else: @@ -57,10 +58,7 @@ def main(): else: not_found_count += 1 - print( - f"Total not found: {not_found_count}, Total mismatches: {mismatch_count}" - ) - - -if __name__ == "__main__": - main() + assert ( + not_found_count == 0 + ), "Some hash keys were not found in the current ring" + assert mismatch_count == 0, "Some hash keys had mismatched WorkerIdentity" From 8b7bb40ed761554bd2722183746fe18e272ac02c Mon Sep 17 00:00:00 2001 From: Jianjian Date: Thu, 8 Feb 2024 16:06:00 -0800 Subject: [PATCH 06/17] ignore async test for now --- tests/test_fake_server.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tests/test_fake_server.py b/tests/test_fake_server.py index dec4c50..e2409bb 100644 --- a/tests/test_fake_server.py +++ b/tests/test_fake_server.py @@ -52,6 +52,7 @@ async def startup(app: web.Application): return server +@pytest.mark.skip @pytest.mark.asyncio async def test_read_page(server): fs = AlluxioAsyncFileSystem( @@ -62,6 +63,7 @@ async def test_read_page(server): assert data == b"es" +@pytest.mark.skip @pytest.mark.asyncio async def test_put_page(server): fs = AlluxioAsyncFileSystem( From 1848063cff9eb5787befbc0a306b1d3dd0733eed Mon Sep 17 00:00:00 2001 From: Lu Qiu Date: Thu, 8 Feb 2024 20:12:07 -0800 Subject: [PATCH 07/17] Test worked --- alluxio/worker_ring.py | 31 +- tests/hash_res/activeNodesMap.json | 1000 +++++++++++++++++++++++++++- tests/hash_res/fileUrlWorkers.json | 336 ++++++++-- tests/hash_res/workerList.json | 194 +++++- tests/test_worker_hash_ring.py | 25 +- 5 files changed, 1516 insertions(+), 70 deletions(-) diff --git a/alluxio/worker_ring.py b/alluxio/worker_ring.py index 9076c8e..658f6ef 100644 --- a/alluxio/worker_ring.py +++ b/alluxio/worker_ring.py @@ -226,6 +226,35 @@ def get_multiple_workers( worker_addresses.append(self._worker_info_map.get(worker)) return worker_addresses + def get_multiple_worker_identities( + self, key: str, count: int + ) -> List[WorkerIdentity]: + """ + Retrieve a specified number of worker addresses based on a given key. + + Args: + key (str): The unique path identifier, e.g., full UFS path. + count (int): The number of worker addresses to retrieve. + + Returns: + List[WorkerNetAddress]: A list containing the desired number of WorkerNetAddress objects. + """ + with self._lock: + count = ( + len(self._worker_info_map) + if count >= len(self._worker_info_map) + else count + ) + workers = [] + attempts = 0 + while len(workers) < count and attempts < self._max_attempts: + attempts += 1 + worker = self._get_ceiling_value(self._hash(key, attempts)) + if worker not in workers: + workers.append(worker) + + return workers + def _start_background_update_ring(self, interval): def update_loop(): while not self._shutdown_background_update_ring_event.is_set(): @@ -319,7 +348,7 @@ def _get_ceiling_value(self, hash_key: int): def _hash(self, key: str, index: int) -> int: hasher = mmh3.mmh3_32() - hasher.update(key) + hasher.update(key.encode("utf-8")) hasher.update(index.to_bytes(4, "little")) return hasher.sintdigest() diff --git a/tests/hash_res/activeNodesMap.json b/tests/hash_res/activeNodesMap.json index 0c890c3..94e9d33 100644 --- a/tests/hash_res/activeNodesMap.json +++ b/tests/hash_res/activeNodesMap.json @@ -1,38 +1,1002 @@ { - "-1842457281": { + "-2147037003": { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "2221b89d987d4ab89f40bae7bd5623b7" }, - "-1140083228": { + "-2136385726": { "version": 1, - "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" + "identifier": "f1240a3152a74359b9f252a4b3a070a3" }, - "-665881297": { + "-2107381643": { "version": 1, - "identifier": "e2893632291944699a84f65b82d96047" + "identifier": "f20ceecc3e2b40899a82d192ce298202" }, - "-567769085": { + "-2085858555": { "version": 1, - "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" + "identifier": "2a48613754ad4ba69f0ed7cebbc7b9b3" }, - "-352654653": { + "-2085010431": { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "1628d1cdcdcd4223803a74455b0d1424" }, - "-245959937": { + "-2080022540": { "version": 1, - "identifier": "e2893632291944699a84f65b82d96047" + "identifier": "16a00c00ed8a45a6ba231f8ff015c7ab" }, - "175941702": { + "-2079271087": { "version": 1, - "identifier": "e2893632291944699a84f65b82d96047" + "identifier": "6019d4b170f84e27b695bc228ed1794f" }, - "351151894": { + "-2077140693": { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "9fcac170b7364b3abf00d40c0b818792" }, - "711669571": { + "-2058307409": { "version": 1, - "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" + "identifier": "ffa9296cdae94e77b619b4864166f464" + }, + "-2053083231": { + "version": 1, + "identifier": "127fa9d7a9264743bfee61f1933d5f16" + }, + "-2050433596": { + "version": 1, + "identifier": "1628d1cdcdcd4223803a74455b0d1424" + }, + "-2015244654": { + "version": 1, + "identifier": "54e42cdcca514b01a4c9a7939586254d" + }, + "-2004289150": { + "version": 1, + "identifier": "16a00c00ed8a45a6ba231f8ff015c7ab" + }, + "-2001145313": { + "version": 1, + "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" + }, + "-1991457023": { + "version": 1, + "identifier": "35f1e149f1f84603900be6d16001433b" + }, + "-1893173965": { + "version": 1, + "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" + }, + "-1886617746": { + "version": 1, + "identifier": "fdf02756bc1b4cfbab9c54de27d1200e" + }, + "-1856940869": { + "version": 1, + "identifier": "16ba9c1573ed4feea538ae4380385c5e" + }, + "-1815633608": { + "version": 1, + "identifier": "acbe23f8588e4d58b9cd9951a966feb1" + }, + "-1812206178": { + "version": 1, + "identifier": "d21480430bc240f7ba60d988312099b9" + }, + "-1790057509": { + "version": 1, + "identifier": "ffa9296cdae94e77b619b4864166f464" + }, + "-1777649102": { + "version": 1, + "identifier": "2221b89d987d4ab89f40bae7bd5623b7" + }, + "-1776256734": { + "version": 1, + "identifier": "bfe6c591f7e640ea98fe2ef4b15d2512" + }, + "-1771584881": { + "version": 1, + "identifier": "5d0383d1daff4a1e92266cc00aa2cf96" + }, + "-1766048673": { + "version": 1, + "identifier": "22f74d5dc562436f9104327171445dab" + }, + "-1743228713": { + "version": 1, + "identifier": "482680d03f254e37ad80b495cf65efd7" + }, + "-1730284415": { + "version": 1, + "identifier": "a6b04dcf49e1402ba1bf2a39611fa5d8" + }, + "-1710940096": { + "version": 1, + "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" + }, + "-1691135344": { + "version": 1, + "identifier": "1cbe80b1b856443db4af92494d13dd63" + }, + "-1682155819": { + "version": 1, + "identifier": "1cbe80b1b856443db4af92494d13dd63" + }, + "-1669503370": { + "version": 1, + "identifier": "4c5eed8e352e406da8acc61e0df28bc1" + }, + "-1620556226": { + "version": 1, + "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" + }, + "-1609234386": { + "version": 1, + "identifier": "a65c8210e79343809b68fe4ca0a5ef64" + }, + "-1602859885": { + "version": 1, + "identifier": "4a4ab283e3f349b5b70d3227f1eab5ba" + }, + "-1598407585": { + "version": 1, + "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" + }, + "-1556018009": { + "version": 1, + "identifier": "2a48613754ad4ba69f0ed7cebbc7b9b3" + }, + "-1502905965": { + "version": 1, + "identifier": "fa20f443cbd544a38af8eb104e948cf1" + }, + "-1494854089": { + "version": 1, + "identifier": "a2acf0efab5a431da403e7f0becf1759" + }, + "-1490796491": { + "version": 1, + "identifier": "9096e1f61ec545cfa1bc04fcd2a8d5ed" + }, + "-1467572242": { + "version": 1, + "identifier": "a65c8210e79343809b68fe4ca0a5ef64" + }, + "-1462428377": { + "version": 1, + "identifier": "d5537caa9d084e8db24b3ddc685001f5" + }, + "-1450002643": { + "version": 1, + "identifier": "482680d03f254e37ad80b495cf65efd7" + }, + "-1415287558": { + "version": 1, + "identifier": "6019d4b170f84e27b695bc228ed1794f" + }, + "-1406624503": { + "version": 1, + "identifier": "dd636d26b64a4ba290e3353cdeeaa47e" + }, + "-1406008720": { + "version": 1, + "identifier": "482680d03f254e37ad80b495cf65efd7" + }, + "-1388373382": { + "version": 1, + "identifier": "133afae612e446299aaa18bcbce5ea5b" + }, + "-1385277929": { + "version": 1, + "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" + }, + "-1373149942": { + "version": 1, + "identifier": "4a4ab283e3f349b5b70d3227f1eab5ba" + }, + "-1366747090": { + "version": 1, + "identifier": "d5537caa9d084e8db24b3ddc685001f5" + }, + "-1366352519": { + "version": 1, + "identifier": "29c13c9356e747b09af6758501fd12cc" + }, + "-1359103193": { + "version": 1, + "identifier": "16a00c00ed8a45a6ba231f8ff015c7ab" + }, + "-1345710449": { + "version": 1, + "identifier": "1628d1cdcdcd4223803a74455b0d1424" + }, + "-1323438353": { + "version": 1, + "identifier": "d21480430bc240f7ba60d988312099b9" + }, + "-1318869495": { + "version": 1, + "identifier": "1cbe80b1b856443db4af92494d13dd63" + }, + "-1308429423": { + "version": 1, + "identifier": "16ba9c1573ed4feea538ae4380385c5e" + }, + "-1297263578": { + "version": 1, + "identifier": "35f1e149f1f84603900be6d16001433b" + }, + "-1235389240": { + "version": 1, + "identifier": "f1240a3152a74359b9f252a4b3a070a3" + }, + "-1220310749": { + "version": 1, + "identifier": "fa20f443cbd544a38af8eb104e948cf1" + }, + "-1189812585": { + "version": 1, + "identifier": "133afae612e446299aaa18bcbce5ea5b" + }, + "-1187585518": { + "version": 1, + "identifier": "5050bb85776e4993961aac6235911e73" + }, + "-1182407564": { + "version": 1, + "identifier": "051c61bf048745a39273dfddd10e11d2" + }, + "-1171199490": { + "version": 1, + "identifier": "051c61bf048745a39273dfddd10e11d2" + }, + "-1170402988": { + "version": 1, + "identifier": "1628d1cdcdcd4223803a74455b0d1424" + }, + "-1165536618": { + "version": 1, + "identifier": "e7ecc1fb3ffc414ea9a5c7a19f1a81e5" + }, + "-1144949582": { + "version": 1, + "identifier": "5050bb85776e4993961aac6235911e73" + }, + "-1095940197": { + "version": 1, + "identifier": "a65c8210e79343809b68fe4ca0a5ef64" + }, + "-1079315490": { + "version": 1, + "identifier": "4c5eed8e352e406da8acc61e0df28bc1" + }, + "-1062030577": { + "version": 1, + "identifier": "dc6efddd3aa7485099176a8401dde8d0" + }, + "-1057225802": { + "version": 1, + "identifier": "127fa9d7a9264743bfee61f1933d5f16" + }, + "-1043828836": { + "version": 1, + "identifier": "dd636d26b64a4ba290e3353cdeeaa47e" + }, + "-1032784640": { + "version": 1, + "identifier": "05b6efe52b9441f9a344605810e34675" + }, + "-1018212595": { + "version": 1, + "identifier": "16a00c00ed8a45a6ba231f8ff015c7ab" + }, + "-993395225": { + "version": 1, + "identifier": "6019d4b170f84e27b695bc228ed1794f" + }, + "-954403889": { + "version": 1, + "identifier": "2221b89d987d4ab89f40bae7bd5623b7" + }, + "-944941422": { + "version": 1, + "identifier": "f1240a3152a74359b9f252a4b3a070a3" + }, + "-941087395": { + "version": 1, + "identifier": "1b7bc381cecf4f248b27ef7cc72c793a" + }, + "-925712338": { + "version": 1, + "identifier": "a65c8210e79343809b68fe4ca0a5ef64" + }, + "-899554206": { + "version": 1, + "identifier": "54e42cdcca514b01a4c9a7939586254d" + }, + "-895789220": { + "version": 1, + "identifier": "a0909547073e477eb5bc1bca75b75721" + }, + "-881177281": { + "version": 1, + "identifier": "1b7bc381cecf4f248b27ef7cc72c793a" + }, + "-855597008": { + "version": 1, + "identifier": "a2acf0efab5a431da403e7f0becf1759" + }, + "-826560609": { + "version": 1, + "identifier": "dc6efddd3aa7485099176a8401dde8d0" + }, + "-808606218": { + "version": 1, + "identifier": "fa10d6092a3d4f2086245ee7f96415ae" + }, + "-808209171": { + "version": 1, + "identifier": "1cbe80b1b856443db4af92494d13dd63" + }, + "-807527262": { + "version": 1, + "identifier": "a6b04dcf49e1402ba1bf2a39611fa5d8" + }, + "-787018612": { + "version": 1, + "identifier": "4a4ab283e3f349b5b70d3227f1eab5ba" + }, + "-759273880": { + "version": 1, + "identifier": "35f1e149f1f84603900be6d16001433b" + }, + "-748433153": { + "version": 1, + "identifier": "35f1e149f1f84603900be6d16001433b" + }, + "-736752689": { + "version": 1, + "identifier": "051c61bf048745a39273dfddd10e11d2" + }, + "-729934343": { + "version": 1, + "identifier": "fa20f443cbd544a38af8eb104e948cf1" + }, + "-719673932": { + "version": 1, + "identifier": "4a4ab283e3f349b5b70d3227f1eab5ba" + }, + "-662723138": { + "version": 1, + "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" + }, + "-657548540": { + "version": 1, + "identifier": "ffa9296cdae94e77b619b4864166f464" + }, + "-638927622": { + "version": 1, + "identifier": "5d0383d1daff4a1e92266cc00aa2cf96" + }, + "-634363964": { + "version": 1, + "identifier": "54e42cdcca514b01a4c9a7939586254d" + }, + "-633960076": { + "version": 1, + "identifier": "52989dff7cd14f00af4db7e62a220ab6" + }, + "-608416112": { + "version": 1, + "identifier": "2b5656cdc77a40d09edd03abd25980fa" + }, + "-599951114": { + "version": 1, + "identifier": "420653785c00459994f0f541fdfc86b4" + }, + "-589239459": { + "version": 1, + "identifier": "fa10d6092a3d4f2086245ee7f96415ae" + }, + "-585820330": { + "version": 1, + "identifier": "05b6efe52b9441f9a344605810e34675" + }, + "-573044542": { + "version": 1, + "identifier": "dd636d26b64a4ba290e3353cdeeaa47e" + }, + "-559416974": { + "version": 1, + "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" + }, + "-545931827": { + "version": 1, + "identifier": "9fcac170b7364b3abf00d40c0b818792" + }, + "-528631945": { + "version": 1, + "identifier": "5050bb85776e4993961aac6235911e73" + }, + "-509202142": { + "version": 1, + "identifier": "52d9926172cb48368f001fb8af52214b" + }, + "-505477224": { + "version": 1, + "identifier": "e7ecc1fb3ffc414ea9a5c7a19f1a81e5" + }, + "-499295719": { + "version": 1, + "identifier": "5d0383d1daff4a1e92266cc00aa2cf96" + }, + "-458938272": { + "version": 1, + "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" + }, + "-437074881": { + "version": 1, + "identifier": "5050bb85776e4993961aac6235911e73" + }, + "-414402003": { + "version": 1, + "identifier": "16ba9c1573ed4feea538ae4380385c5e" + }, + "-353447062": { + "version": 1, + "identifier": "d5537caa9d084e8db24b3ddc685001f5" + }, + "-346236520": { + "version": 1, + "identifier": "fa20f443cbd544a38af8eb104e948cf1" + }, + "-344682443": { + "version": 1, + "identifier": "133afae612e446299aaa18bcbce5ea5b" + }, + "-325442587": { + "version": 1, + "identifier": "22f74d5dc562436f9104327171445dab" + }, + "-310212236": { + "version": 1, + "identifier": "acbe23f8588e4d58b9cd9951a966feb1" + }, + "-280224957": { + "version": 1, + "identifier": "bfe6c591f7e640ea98fe2ef4b15d2512" + }, + "-228287302": { + "version": 1, + "identifier": "05b6efe52b9441f9a344605810e34675" + }, + "-201601103": { + "version": 1, + "identifier": "133afae612e446299aaa18bcbce5ea5b" + }, + "-182017741": { + "version": 1, + "identifier": "2b5656cdc77a40d09edd03abd25980fa" + }, + "-179001702": { + "version": 1, + "identifier": "6019d4b170f84e27b695bc228ed1794f" + }, + "-143324811": { + "version": 1, + "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" + }, + "-142324108": { + "version": 1, + "identifier": "29c13c9356e747b09af6758501fd12cc" + }, + "-60296691": { + "version": 1, + "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" + }, + "-57769687": { + "version": 1, + "identifier": "fdf02756bc1b4cfbab9c54de27d1200e" + }, + "-32415901": { + "version": 1, + "identifier": "52989dff7cd14f00af4db7e62a220ab6" + }, + "-21100913": { + "version": 1, + "identifier": "1b7bc381cecf4f248b27ef7cc72c793a" + }, + "-18808014": { + "version": 1, + "identifier": "2b5656cdc77a40d09edd03abd25980fa" + }, + "-16202236": { + "version": 1, + "identifier": "dd636d26b64a4ba290e3353cdeeaa47e" + }, + "3261602": { + "version": 1, + "identifier": "482680d03f254e37ad80b495cf65efd7" + }, + "8419689": { + "version": 1, + "identifier": "fdf02756bc1b4cfbab9c54de27d1200e" + }, + "16551880": { + "version": 1, + "identifier": "fa20f443cbd544a38af8eb104e948cf1" + }, + "35908741": { + "version": 1, + "identifier": "a2acf0efab5a431da403e7f0becf1759" + }, + "55402960": { + "version": 1, + "identifier": "52ff6f496cd84ddea111101fbb17177d" + }, + "65835106": { + "version": 1, + "identifier": "1b7bc381cecf4f248b27ef7cc72c793a" + }, + "72371777": { + "version": 1, + "identifier": "9096e1f61ec545cfa1bc04fcd2a8d5ed" + }, + "88316963": { + "version": 1, + "identifier": "35f1e149f1f84603900be6d16001433b" + }, + "125821842": { + "version": 1, + "identifier": "d5537caa9d084e8db24b3ddc685001f5" + }, + "175834184": { + "version": 1, + "identifier": "d21480430bc240f7ba60d988312099b9" + }, + "177231983": { + "version": 1, + "identifier": "29c13c9356e747b09af6758501fd12cc" + }, + "199727110": { + "version": 1, + "identifier": "2b5656cdc77a40d09edd03abd25980fa" + }, + "215231819": { + "version": 1, + "identifier": "52989dff7cd14f00af4db7e62a220ab6" + }, + "243754705": { + "version": 1, + "identifier": "22f74d5dc562436f9104327171445dab" + }, + "272078313": { + "version": 1, + "identifier": "5d0383d1daff4a1e92266cc00aa2cf96" + }, + "272594943": { + "version": 1, + "identifier": "420653785c00459994f0f541fdfc86b4" + }, + "290528794": { + "version": 1, + "identifier": "fa10d6092a3d4f2086245ee7f96415ae" + }, + "307379980": { + "version": 1, + "identifier": "29c13c9356e747b09af6758501fd12cc" + }, + "349601449": { + "version": 1, + "identifier": "16ba9c1573ed4feea538ae4380385c5e" + }, + "373866734": { + "version": 1, + "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" + }, + "381292344": { + "version": 1, + "identifier": "9096e1f61ec545cfa1bc04fcd2a8d5ed" + }, + "415493956": { + "version": 1, + "identifier": "1628d1cdcdcd4223803a74455b0d1424" + }, + "420315200": { + "version": 1, + "identifier": "2a48613754ad4ba69f0ed7cebbc7b9b3" + }, + "422063867": { + "version": 1, + "identifier": "a0909547073e477eb5bc1bca75b75721" + }, + "431202939": { + "version": 1, + "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" + }, + "438228498": { + "version": 1, + "identifier": "e7ecc1fb3ffc414ea9a5c7a19f1a81e5" + }, + "449136273": { + "version": 1, + "identifier": "051c61bf048745a39273dfddd10e11d2" + }, + "463151766": { + "version": 1, + "identifier": "2a48613754ad4ba69f0ed7cebbc7b9b3" + }, + "469117075": { + "version": 1, + "identifier": "54e42cdcca514b01a4c9a7939586254d" + }, + "500316198": { + "version": 1, + "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" + }, + "520619796": { + "version": 1, + "identifier": "4c5eed8e352e406da8acc61e0df28bc1" + }, + "521281547": { + "version": 1, + "identifier": "9fcac170b7364b3abf00d40c0b818792" + }, + "537128589": { + "version": 1, + "identifier": "22f74d5dc562436f9104327171445dab" + }, + "547671016": { + "version": 1, + "identifier": "54e42cdcca514b01a4c9a7939586254d" + }, + "566243735": { + "version": 1, + "identifier": "420653785c00459994f0f541fdfc86b4" + }, + "569684004": { + "version": 1, + "identifier": "f20ceecc3e2b40899a82d192ce298202" + }, + "603385877": { + "version": 1, + "identifier": "e7ecc1fb3ffc414ea9a5c7a19f1a81e5" + }, + "605310974": { + "version": 1, + "identifier": "9096e1f61ec545cfa1bc04fcd2a8d5ed" + }, + "644305362": { + "version": 1, + "identifier": "fa10d6092a3d4f2086245ee7f96415ae" + }, + "644652214": { + "version": 1, + "identifier": "1b7bc381cecf4f248b27ef7cc72c793a" + }, + "680891966": { + "version": 1, + "identifier": "46a7f7d340474c968ed699e0e4f90435" + }, + "706751053": { + "version": 1, + "identifier": "52ff6f496cd84ddea111101fbb17177d" + }, + "717637095": { + "version": 1, + "identifier": "52ff6f496cd84ddea111101fbb17177d" + }, + "765593425": { + "version": 1, + "identifier": "05b6efe52b9441f9a344605810e34675" + }, + "791059141": { + "version": 1, + "identifier": "127fa9d7a9264743bfee61f1933d5f16" + }, + "804925827": { + "version": 1, + "identifier": "ffa9296cdae94e77b619b4864166f464" + }, + "825609630": { + "version": 1, + "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" + }, + "853853100": { + "version": 1, + "identifier": "d21480430bc240f7ba60d988312099b9" + }, + "900275247": { + "version": 1, + "identifier": "f20ceecc3e2b40899a82d192ce298202" + }, + "905963382": { + "version": 1, + "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" + }, + "919660168": { + "version": 1, + "identifier": "6019d4b170f84e27b695bc228ed1794f" + }, + "931442005": { + "version": 1, + "identifier": "a0909547073e477eb5bc1bca75b75721" + }, + "938821648": { + "version": 1, + "identifier": "9fcac170b7364b3abf00d40c0b818792" + }, + "947588580": { + "version": 1, + "identifier": "a2acf0efab5a431da403e7f0becf1759" + }, + "958502404": { + "version": 1, + "identifier": "d5537caa9d084e8db24b3ddc685001f5" + }, + "958847781": { + "version": 1, + "identifier": "52d9926172cb48368f001fb8af52214b" + }, + "982683634": { + "version": 1, + "identifier": "52ff6f496cd84ddea111101fbb17177d" + }, + "987335772": { + "version": 1, + "identifier": "05b6efe52b9441f9a344605810e34675" + }, + "1021600877": { + "version": 1, + "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" + }, + "1065354451": { + "version": 1, + "identifier": "46a7f7d340474c968ed699e0e4f90435" + }, + "1128960391": { + "version": 1, + "identifier": "29c13c9356e747b09af6758501fd12cc" + }, + "1170633184": { + "version": 1, + "identifier": "f20ceecc3e2b40899a82d192ce298202" + }, + "1175210918": { + "version": 1, + "identifier": "5050bb85776e4993961aac6235911e73" + }, + "1185983052": { + "version": 1, + "identifier": "16ba9c1573ed4feea538ae4380385c5e" + }, + "1188548044": { + "version": 1, + "identifier": "4c5eed8e352e406da8acc61e0df28bc1" + }, + "1195070863": { + "version": 1, + "identifier": "52d9926172cb48368f001fb8af52214b" + }, + "1197700826": { + "version": 1, + "identifier": "46a7f7d340474c968ed699e0e4f90435" + }, + "1257028272": { + "version": 1, + "identifier": "420653785c00459994f0f541fdfc86b4" + }, + "1280484680": { + "version": 1, + "identifier": "2b5656cdc77a40d09edd03abd25980fa" + }, + "1282538971": { + "version": 1, + "identifier": "4c5eed8e352e406da8acc61e0df28bc1" + }, + "1287336063": { + "version": 1, + "identifier": "f1240a3152a74359b9f252a4b3a070a3" + }, + "1346855286": { + "version": 1, + "identifier": "420653785c00459994f0f541fdfc86b4" + }, + "1347975627": { + "version": 1, + "identifier": "bfe6c591f7e640ea98fe2ef4b15d2512" + }, + "1349153867": { + "version": 1, + "identifier": "52989dff7cd14f00af4db7e62a220ab6" + }, + "1349167086": { + "version": 1, + "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" + }, + "1362760029": { + "version": 1, + "identifier": "f20ceecc3e2b40899a82d192ce298202" + }, + "1364297841": { + "version": 1, + "identifier": "127fa9d7a9264743bfee61f1933d5f16" + }, + "1406041512": { + "version": 1, + "identifier": "2221b89d987d4ab89f40bae7bd5623b7" + }, + "1411529592": { + "version": 1, + "identifier": "acbe23f8588e4d58b9cd9951a966feb1" + }, + "1438665754": { + "version": 1, + "identifier": "bfe6c591f7e640ea98fe2ef4b15d2512" + }, + "1501178527": { + "version": 1, + "identifier": "4a4ab283e3f349b5b70d3227f1eab5ba" + }, + "1501774627": { + "version": 1, + "identifier": "dc6efddd3aa7485099176a8401dde8d0" + }, + "1518740434": { + "version": 1, + "identifier": "22f74d5dc562436f9104327171445dab" + }, + "1535896348": { + "version": 1, + "identifier": "5d0383d1daff4a1e92266cc00aa2cf96" + }, + "1537728391": { + "version": 1, + "identifier": "46a7f7d340474c968ed699e0e4f90435" + }, + "1539129336": { + "version": 1, + "identifier": "e7ecc1fb3ffc414ea9a5c7a19f1a81e5" + }, + "1543283713": { + "version": 1, + "identifier": "16a00c00ed8a45a6ba231f8ff015c7ab" + }, + "1590725669": { + "version": 1, + "identifier": "dc6efddd3aa7485099176a8401dde8d0" + }, + "1648229063": { + "version": 1, + "identifier": "acbe23f8588e4d58b9cd9951a966feb1" + }, + "1685084511": { + "version": 1, + "identifier": "9fcac170b7364b3abf00d40c0b818792" + }, + "1690537268": { + "version": 1, + "identifier": "a6b04dcf49e1402ba1bf2a39611fa5d8" + }, + "1691916779": { + "version": 1, + "identifier": "52d9926172cb48368f001fb8af52214b" + }, + "1712721990": { + "version": 1, + "identifier": "127fa9d7a9264743bfee61f1933d5f16" + }, + "1720896129": { + "version": 1, + "identifier": "fa10d6092a3d4f2086245ee7f96415ae" + }, + "1726686007": { + "version": 1, + "identifier": "f1240a3152a74359b9f252a4b3a070a3" + }, + "1733849187": { + "version": 1, + "identifier": "52989dff7cd14f00af4db7e62a220ab6" + }, + "1743960297": { + "version": 1, + "identifier": "fdf02756bc1b4cfbab9c54de27d1200e" + }, + "1761464193": { + "version": 1, + "identifier": "a0909547073e477eb5bc1bca75b75721" + }, + "1766120811": { + "version": 1, + "identifier": "a6b04dcf49e1402ba1bf2a39611fa5d8" + }, + "1775006797": { + "version": 1, + "identifier": "acbe23f8588e4d58b9cd9951a966feb1" + }, + "1790268926": { + "version": 1, + "identifier": "2221b89d987d4ab89f40bae7bd5623b7" + }, + "1790595837": { + "version": 1, + "identifier": "133afae612e446299aaa18bcbce5ea5b" + }, + "1825130773": { + "version": 1, + "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" + }, + "1869234683": { + "version": 1, + "identifier": "ffa9296cdae94e77b619b4864166f464" + }, + "1883343638": { + "version": 1, + "identifier": "a6b04dcf49e1402ba1bf2a39611fa5d8" + }, + "1884043469": { + "version": 1, + "identifier": "1cbe80b1b856443db4af92494d13dd63" + }, + "1886998754": { + "version": 1, + "identifier": "46a7f7d340474c968ed699e0e4f90435" + }, + "1916179099": { + "version": 1, + "identifier": "dc6efddd3aa7485099176a8401dde8d0" + }, + "1922670221": { + "version": 1, + "identifier": "a65c8210e79343809b68fe4ca0a5ef64" + }, + "1929014617": { + "version": 1, + "identifier": "fdf02756bc1b4cfbab9c54de27d1200e" + }, + "1980823314": { + "version": 1, + "identifier": "a2acf0efab5a431da403e7f0becf1759" + }, + "1995527170": { + "version": 1, + "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" + }, + "2003670051": { + "version": 1, + "identifier": "051c61bf048745a39273dfddd10e11d2" + }, + "2008866144": { + "version": 1, + "identifier": "52ff6f496cd84ddea111101fbb17177d" + }, + "2009005246": { + "version": 1, + "identifier": "d21480430bc240f7ba60d988312099b9" + }, + "2048190733": { + "version": 1, + "identifier": "a0909547073e477eb5bc1bca75b75721" + }, + "2052706394": { + "version": 1, + "identifier": "2a48613754ad4ba69f0ed7cebbc7b9b3" + }, + "2065689032": { + "version": 1, + "identifier": "9096e1f61ec545cfa1bc04fcd2a8d5ed" + }, + "2092292537": { + "version": 1, + "identifier": "52d9926172cb48368f001fb8af52214b" + }, + "2096384476": { + "version": 1, + "identifier": "dd636d26b64a4ba290e3353cdeeaa47e" + }, + "2100444996": { + "version": 1, + "identifier": "bfe6c591f7e640ea98fe2ef4b15d2512" + }, + "2127600283": { + "version": 1, + "identifier": "482680d03f254e37ad80b495cf65efd7" } } diff --git a/tests/hash_res/fileUrlWorkers.json b/tests/hash_res/fileUrlWorkers.json index 1cd2010..5e6a9b5 100644 --- a/tests/hash_res/fileUrlWorkers.json +++ b/tests/hash_res/fileUrlWorkers.json @@ -2,211 +2,463 @@ "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_checkin.json": [ { "version": 1, - "identifier": "e2893632291944699a84f65b82d96047" + "identifier": "bfe6c591f7e640ea98fe2ef4b15d2512" }, { "version": 1, - "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" + "identifier": "a6b04dcf49e1402ba1bf2a39611fa5d8" + }, + { + "version": 1, + "identifier": "051c61bf048745a39273dfddd10e11d2" + }, + { + "version": 1, + "identifier": "52ff6f496cd84ddea111101fbb17177d" + }, + { + "version": 1, + "identifier": "16ba9c1573ed4feea538ae4380385c5e" } ], "gcs://bucket/file.txt": [ { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "16ba9c1573ed4feea538ae4380385c5e" + }, + { + "version": 1, + "identifier": "482680d03f254e37ad80b495cf65efd7" }, { "version": 1, - "identifier": "e2893632291944699a84f65b82d96047" + "identifier": "5d0383d1daff4a1e92266cc00aa2cf96" + }, + { + "version": 1, + "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" + }, + { + "version": 1, + "identifier": "a65c8210e79343809b68fe4ca0a5ef64" } ], "s://ai-testing/": [ { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "d5537caa9d084e8db24b3ddc685001f5" + }, + { + "version": 1, + "identifier": "4c5eed8e352e406da8acc61e0df28bc1" + }, + { + "version": 1, + "identifier": "16ba9c1573ed4feea538ae4380385c5e" }, { "version": 1, - "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" + "identifier": "9096e1f61ec545cfa1bc04fcd2a8d5ed" + }, + { + "version": 1, + "identifier": "f20ceecc3e2b40899a82d192ce298202" } ], "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_review.json": [ { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "52989dff7cd14f00af4db7e62a220ab6" + }, + { + "version": 1, + "identifier": "d21480430bc240f7ba60d988312099b9" + }, + { + "version": 1, + "identifier": "dc6efddd3aa7485099176a8401dde8d0" + }, + { + "version": 1, + "identifier": "acbe23f8588e4d58b9cd9951a966feb1" }, { "version": 1, - "identifier": "e2893632291944699a84f65b82d96047" + "identifier": "5d0383d1daff4a1e92266cc00aa2cf96" } ], "s3://bucket/path/to/dir": [ { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "2221b89d987d4ab89f40bae7bd5623b7" }, { "version": 1, - "identifier": "e2893632291944699a84f65b82d96047" + "identifier": "dc6efddd3aa7485099176a8401dde8d0" + }, + { + "version": 1, + "identifier": "2b5656cdc77a40d09edd03abd25980fa" + }, + { + "version": 1, + "identifier": "35f1e149f1f84603900be6d16001433b" + }, + { + "version": 1, + "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" } ], "hdfs://host:port/path/to/file": [ { "version": 1, - "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" + "identifier": "5d0383d1daff4a1e92266cc00aa2cf96" + }, + { + "version": 1, + "identifier": "1628d1cdcdcd4223803a74455b0d1424" }, { "version": 1, - "identifier": "e2893632291944699a84f65b82d96047" + "identifier": "a65c8210e79343809b68fe4ca0a5ef64" + }, + { + "version": 1, + "identifier": "ffa9296cdae94e77b619b4864166f464" + }, + { + "version": 1, + "identifier": "acbe23f8588e4d58b9cd9951a966feb1" } ], "wasbs://container@account.blob.core.windows.net/dir": [ { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "29c13c9356e747b09af6758501fd12cc" + }, + { + "version": 1, + "identifier": "420653785c00459994f0f541fdfc86b4" + }, + { + "version": 1, + "identifier": "ffa9296cdae94e77b619b4864166f464" }, { "version": 1, - "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" + "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" + }, + { + "version": 1, + "identifier": "2b5656cdc77a40d09edd03abd25980fa" } ], "gs://bucket/file.txt": [ { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "52ff6f496cd84ddea111101fbb17177d" + }, + { + "version": 1, + "identifier": "dc6efddd3aa7485099176a8401dde8d0" + }, + { + "version": 1, + "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" + }, + { + "version": 1, + "identifier": "6019d4b170f84e27b695bc228ed1794f" }, { "version": 1, - "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" + "identifier": "2221b89d987d4ab89f40bae7bd5623b7" } ], "s3://ai-ref-arch/yelp-review/yelp_review_sample_large.csv": [ { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "acbe23f8588e4d58b9cd9951a966feb1" }, { "version": 1, - "identifier": "e2893632291944699a84f65b82d96047" + "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" + }, + { + "version": 1, + "identifier": "a65c8210e79343809b68fe4ca0a5ef64" + }, + { + "version": 1, + "identifier": "46a7f7d340474c968ed699e0e4f90435" + }, + { + "version": 1, + "identifier": "f20ceecc3e2b40899a82d192ce298202" } ], "s3://ai-ref-arch/yelp-review/model.pt": [ { "version": 1, - "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" + "identifier": "133afae612e446299aaa18bcbce5ea5b" + }, + { + "version": 1, + "identifier": "52ff6f496cd84ddea111101fbb17177d" }, { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "1628d1cdcdcd4223803a74455b0d1424" + }, + { + "version": 1, + "identifier": "d5537caa9d084e8db24b3ddc685001f5" + }, + { + "version": 1, + "identifier": "f20ceecc3e2b40899a82d192ce298202" } ], "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_business.json": [ { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" }, { "version": 1, - "identifier": "e2893632291944699a84f65b82d96047" + "identifier": "35f1e149f1f84603900be6d16001433b" + }, + { + "version": 1, + "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" + }, + { + "version": 1, + "identifier": "16a00c00ed8a45a6ba231f8ff015c7ab" + }, + { + "version": 1, + "identifier": "9096e1f61ec545cfa1bc04fcd2a8d5ed" } ], "hdfs://namenode:8020/user/hadoop/file.txt": [ { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "acbe23f8588e4d58b9cd9951a966feb1" + }, + { + "version": 1, + "identifier": "6019d4b170f84e27b695bc228ed1794f" + }, + { + "version": 1, + "identifier": "a6b04dcf49e1402ba1bf2a39611fa5d8" + }, + { + "version": 1, + "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" }, { "version": 1, - "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" + "identifier": "e7ecc1fb3ffc414ea9a5c7a19f1a81e5" } ], "gs://bucket/dir": [ { "version": 1, - "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" + "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" + }, + { + "version": 1, + "identifier": "d5537caa9d084e8db24b3ddc685001f5" + }, + { + "version": 1, + "identifier": "35f1e149f1f84603900be6d16001433b" + }, + { + "version": 1, + "identifier": "fa20f443cbd544a38af8eb104e948cf1" }, { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "4a4ab283e3f349b5b70d3227f1eab5ba" } ], "gcs://bucket/dir": [ { "version": 1, - "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" + "identifier": "2a48613754ad4ba69f0ed7cebbc7b9b3" }, { "version": 1, - "identifier": "e2893632291944699a84f65b82d96047" + "identifier": "2b5656cdc77a40d09edd03abd25980fa" + }, + { + "version": 1, + "identifier": "2221b89d987d4ab89f40bae7bd5623b7" + }, + { + "version": 1, + "identifier": "e7ecc1fb3ffc414ea9a5c7a19f1a81e5" + }, + { + "version": 1, + "identifier": "4c5eed8e352e406da8acc61e0df28bc1" } ], "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_user.json": [ { "version": 1, - "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" + "identifier": "1628d1cdcdcd4223803a74455b0d1424" + }, + { + "version": 1, + "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" }, { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "f20ceecc3e2b40899a82d192ce298202" + }, + { + "version": 1, + "identifier": "dc6efddd3aa7485099176a8401dde8d0" + }, + { + "version": 1, + "identifier": "d21480430bc240f7ba60d988312099b9" } ], "s3://bucket/path/to/file": [ { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "ffa9296cdae94e77b619b4864166f464" + }, + { + "version": 1, + "identifier": "a0909547073e477eb5bc1bca75b75721" + }, + { + "version": 1, + "identifier": "22f74d5dc562436f9104327171445dab" + }, + { + "version": 1, + "identifier": "133afae612e446299aaa18bcbce5ea5b" }, { "version": 1, - "identifier": "e2893632291944699a84f65b82d96047" + "identifier": "2221b89d987d4ab89f40bae7bd5623b7" } ], "hdfs://host:port/path/to/dir": [ { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" + }, + { + "version": 1, + "identifier": "fa20f443cbd544a38af8eb104e948cf1" + }, + { + "version": 1, + "identifier": "29c13c9356e747b09af6758501fd12cc" + }, + { + "version": 1, + "identifier": "fa10d6092a3d4f2086245ee7f96415ae" }, { "version": 1, - "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" + "identifier": "ffa9296cdae94e77b619b4864166f464" } ], "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_tip.json": [ { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "a0909547073e477eb5bc1bca75b75721" + }, + { + "version": 1, + "identifier": "4a4ab283e3f349b5b70d3227f1eab5ba" + }, + { + "version": 1, + "identifier": "420653785c00459994f0f541fdfc86b4" + }, + { + "version": 1, + "identifier": "a65c8210e79343809b68fe4ca0a5ef64" }, { "version": 1, - "identifier": "e2893632291944699a84f65b82d96047" + "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" } ], "hdfs://namenode:8020/user/hadoop/dir": [ { "version": 1, - "identifier": "e2893632291944699a84f65b82d96047" + "identifier": "dc6efddd3aa7485099176a8401dde8d0" + }, + { + "version": 1, + "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" }, { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" + }, + { + "version": 1, + "identifier": "d21480430bc240f7ba60d988312099b9" + }, + { + "version": 1, + "identifier": "9096e1f61ec545cfa1bc04fcd2a8d5ed" } ], "s3://ai-ref-arch/yelp-review/yelp_review_sample.csv": [ { "version": 1, - "identifier": "e2893632291944699a84f65b82d96047" + "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" + }, + { + "version": 1, + "identifier": "29c13c9356e747b09af6758501fd12cc" + }, + { + "version": 1, + "identifier": "d21480430bc240f7ba60d988312099b9" }, { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "54e42cdcca514b01a4c9a7939586254d" + }, + { + "version": 1, + "identifier": "52ff6f496cd84ddea111101fbb17177d" } ], "wasbs://container@account.blob.core.windows.net/file.txt": [ { "version": 1, - "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" + "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" + }, + { + "version": 1, + "identifier": "9fcac170b7364b3abf00d40c0b818792" + }, + { + "version": 1, + "identifier": "a2acf0efab5a431da403e7f0becf1759" + }, + { + "version": 1, + "identifier": "2221b89d987d4ab89f40bae7bd5623b7" }, { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "5050bb85776e4993961aac6235911e73" } ] } diff --git a/tests/hash_res/workerList.json b/tests/hash_res/workerList.json index c9afa46..656aaf6 100644 --- a/tests/hash_res/workerList.json +++ b/tests/hash_res/workerList.json @@ -1,14 +1,202 @@ [ { "version": 1, - "identifier": "e2893632291944699a84f65b82d96047" + "identifier": "482680d03f254e37ad80b495cf65efd7" }, { "version": 1, - "identifier": "b7df6305f5d24cfd8389aeaffeb5b9f0" + "identifier": "bfe6c591f7e640ea98fe2ef4b15d2512" }, { "version": 1, - "identifier": "ba72593f48bf43fd8c284ce8ea5bb17e" + "identifier": "d5537caa9d084e8db24b3ddc685001f5" + }, + { + "version": 1, + "identifier": "a0909547073e477eb5bc1bca75b75721" + }, + { + "version": 1, + "identifier": "ffa9296cdae94e77b619b4864166f464" + }, + { + "version": 1, + "identifier": "4c5eed8e352e406da8acc61e0df28bc1" + }, + { + "version": 1, + "identifier": "46a7f7d340474c968ed699e0e4f90435" + }, + { + "version": 1, + "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" + }, + { + "version": 1, + "identifier": "127fa9d7a9264743bfee61f1933d5f16" + }, + { + "version": 1, + "identifier": "f1240a3152a74359b9f252a4b3a070a3" + }, + { + "version": 1, + "identifier": "1b7bc381cecf4f248b27ef7cc72c793a" + }, + { + "version": 1, + "identifier": "9096e1f61ec545cfa1bc04fcd2a8d5ed" + }, + { + "version": 1, + "identifier": "2b5656cdc77a40d09edd03abd25980fa" + }, + { + "version": 1, + "identifier": "a6b04dcf49e1402ba1bf2a39611fa5d8" + }, + { + "version": 1, + "identifier": "2221b89d987d4ab89f40bae7bd5623b7" + }, + { + "version": 1, + "identifier": "9fcac170b7364b3abf00d40c0b818792" + }, + { + "version": 1, + "identifier": "5050bb85776e4993961aac6235911e73" + }, + { + "version": 1, + "identifier": "29c13c9356e747b09af6758501fd12cc" + }, + { + "version": 1, + "identifier": "1cbe80b1b856443db4af92494d13dd63" + }, + { + "version": 1, + "identifier": "fa20f443cbd544a38af8eb104e948cf1" + }, + { + "version": 1, + "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" + }, + { + "version": 1, + "identifier": "54e42cdcca514b01a4c9a7939586254d" + }, + { + "version": 1, + "identifier": "4a4ab283e3f349b5b70d3227f1eab5ba" + }, + { + "version": 1, + "identifier": "dd636d26b64a4ba290e3353cdeeaa47e" + }, + { + "version": 1, + "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" + }, + { + "version": 1, + "identifier": "16a00c00ed8a45a6ba231f8ff015c7ab" + }, + { + "version": 1, + "identifier": "e7ecc1fb3ffc414ea9a5c7a19f1a81e5" + }, + { + "version": 1, + "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" + }, + { + "version": 1, + "identifier": "a65c8210e79343809b68fe4ca0a5ef64" + }, + { + "version": 1, + "identifier": "051c61bf048745a39273dfddd10e11d2" + }, + { + "version": 1, + "identifier": "05b6efe52b9441f9a344605810e34675" + }, + { + "version": 1, + "identifier": "a2acf0efab5a431da403e7f0becf1759" + }, + { + "version": 1, + "identifier": "52989dff7cd14f00af4db7e62a220ab6" + }, + { + "version": 1, + "identifier": "fdf02756bc1b4cfbab9c54de27d1200e" + }, + { + "version": 1, + "identifier": "22f74d5dc562436f9104327171445dab" + }, + { + "version": 1, + "identifier": "2a48613754ad4ba69f0ed7cebbc7b9b3" + }, + { + "version": 1, + "identifier": "dc6efddd3aa7485099176a8401dde8d0" + }, + { + "version": 1, + "identifier": "acbe23f8588e4d58b9cd9951a966feb1" + }, + { + "version": 1, + "identifier": "35f1e149f1f84603900be6d16001433b" + }, + { + "version": 1, + "identifier": "133afae612e446299aaa18bcbce5ea5b" + }, + { + "version": 1, + "identifier": "d21480430bc240f7ba60d988312099b9" + }, + { + "version": 1, + "identifier": "52d9926172cb48368f001fb8af52214b" + }, + { + "version": 1, + "identifier": "52ff6f496cd84ddea111101fbb17177d" + }, + { + "version": 1, + "identifier": "f20ceecc3e2b40899a82d192ce298202" + }, + { + "version": 1, + "identifier": "1628d1cdcdcd4223803a74455b0d1424" + }, + { + "version": 1, + "identifier": "fa10d6092a3d4f2086245ee7f96415ae" + }, + { + "version": 1, + "identifier": "420653785c00459994f0f541fdfc86b4" + }, + { + "version": 1, + "identifier": "5d0383d1daff4a1e92266cc00aa2cf96" + }, + { + "version": 1, + "identifier": "16ba9c1573ed4feea538ae4380385c5e" + }, + { + "version": 1, + "identifier": "6019d4b170f84e27b695bc228ed1794f" } ] diff --git a/tests/test_worker_hash_ring.py b/tests/test_worker_hash_ring.py index b67a9ef..88b547c 100644 --- a/tests/test_worker_hash_ring.py +++ b/tests/test_worker_hash_ring.py @@ -9,7 +9,7 @@ def test_hash_ring(): hash_provider = ConsistentHashProvider( # etcd_hosts="localhost", # etcd_port=2379, - hash_node_per_worker=3, + hash_node_per_worker=5, etcd_refresh_workers_interval=100000000, ) worker_list_path = "tests/hash_res/workerList.json" @@ -28,11 +28,6 @@ def test_hash_ring(): hash_provider.update_hash_ring(worker_info_map) current_ring = hash_provider.get_hash_ring() - # Use the above function in the printing section of your main function - for hash_key, worker_identity in current_ring.items(): - print( - f"Hash Key: {hash_key}, Worker: WorkerIdentity(version={worker_identity.version}, identifier={worker_identity.identifier.hex()})" - ) hash_ring_path = "tests/hash_res/activeNodesMap.json" with open(hash_ring_path, "r") as file: @@ -62,3 +57,21 @@ def test_hash_ring(): not_found_count == 0 ), "Some hash keys were not found in the current ring" assert mismatch_count == 0, "Some hash keys had mismatched WorkerIdentity" + + file_workers_path = "tests/hash_res/fileUrlWorkers.json" + with open(file_workers_path, "r") as file: + file_workers_data = json.load(file) + + for ufs_url, workers in file_workers_data.items(): + current_worker_identities = ( + hash_provider.get_multiple_worker_identities(ufs_url, 5) + ) + original_set = { + (worker["version"], bytes.fromhex(worker["identifier"])) + for worker in workers + } + current_set = { + (worker.version, worker.identifier) + for worker in current_worker_identities + } + assert original_set == current_set From e264021c29b6cd63f72d5740e5f18c04eede3b89 Mon Sep 17 00:00:00 2001 From: Lu Qiu Date: Tue, 13 Feb 2024 15:16:34 -0800 Subject: [PATCH 08/17] support setting Alluxio cluster name --- alluxio/const.py | 5 +++++ alluxio/worker_ring.py | 30 ++++++++++++++++++++---------- 2 files changed, 25 insertions(+), 10 deletions(-) diff --git a/alluxio/const.py b/alluxio/const.py index cc9dc78..619fa61 100644 --- a/alluxio/const.py +++ b/alluxio/const.py @@ -1,3 +1,7 @@ +ALLUXIO_CLUSTER_NAME_KEY = "alluxio.cluster.name" +ALLUXIO_CLUSTER_NAME_DEFAULT_VALUE = "DefaultAlluxioCluster" +ALLUXIO_ETCD_USERNAME_KEY = "alluxio.etcd.username" +ALLUXIO_ETCD_PASSWORD_KEY = "alluxio.etcd.password" ALLUXIO_PAGE_SIZE_KEY = "alluxio.worker.page.store.page.size" ALLUXIO_PAGE_SIZE_DEFAULT_VALUE = "1MB" ALLUXIO_SUCCESS_IDENTIFIER = "success" @@ -21,3 +25,4 @@ LOAD_STOP_URL_FORMAT = ( "http://{worker_host}:{http_port}/v1/load?path={path}&opType=stop" ) +ETCD_PREFIX_FORMAT = "/ServiceDiscovery/{cluster_name}/" diff --git a/alluxio/worker_ring.py b/alluxio/worker_ring.py index 7ff177f..e954919 100644 --- a/alluxio/worker_ring.py +++ b/alluxio/worker_ring.py @@ -12,6 +12,12 @@ import mmh3 from sortedcontainers import SortedDict +from .const import ALLUXIO_CLUSTER_NAME_DEFAULT_VALUE +from .const import ALLUXIO_CLUSTER_NAME_KEY +from .const import ALLUXIO_ETCD_PASSWORD_KEY +from .const import ALLUXIO_ETCD_USERNAME_KEY +from .const import ETCD_PREFIX_FORMAT + DEFAULT_HOST = "localhost" DEFAULT_CONTAINER_HOST = "" DEFAULT_RPC_PORT = 29999 @@ -107,10 +113,6 @@ def dump_main_info(self): class EtcdClient: - PREFIX = "/ServiceDiscovery/DefaultAlluxioCluster/" - ALLUXIO_ETCD_USERNAME = "alluxio.etcd.username" - ALLUXIO_ETCD_PASSWORD = "alluxio.etcd.password" - def __init__(self, host="localhost", port=2379, options=None): self.host = host self.port = port @@ -118,11 +120,19 @@ def __init__(self, host="localhost", port=2379, options=None): # Parse options self.etcd_username = None self.etcd_password = None + self.prefix = ETCD_PREFIX_FORMAT.format( + ALLUXIO_CLUSTER_NAME_DEFAULT_VALUE + ) if options: - if self.ALLUXIO_ETCD_USERNAME in options: - self.etcd_username = options[self.ALLUXIO_ETCD_USERNAME] - if self.ALLUXIO_ETCD_PASSWORD in options: - self.etcd_password = options[self.ALLUXIO_ETCD_PASSWORD] + if ALLUXIO_ETCD_USERNAME_KEY in options: + self.etcd_username = options[ALLUXIO_ETCD_USERNAME_KEY] + if ALLUXIO_ETCD_PASSWORD_KEY in options: + self.etcd_password = options[ALLUXIO_ETCD_PASSWORD_KEY] + if ALLUXIO_CLUSTER_NAME_KEY in options: + self.prefix = ETCD_PREFIX_FORMAT.format( + options[ALLUXIO_CLUSTER_NAME_KEY] + ) + if (self.etcd_username is None) != (self.etcd_password is None): raise ValueError( "Both ETCD username and password must be set or both should be unset." @@ -141,7 +151,7 @@ def get_worker_addresses(self): try: worker_addresses = { WorkerNetAddress.from_worker_info(worker_info) - for worker_info, _ in etcd.get_prefix(self.PREFIX) + for worker_info, _ in etcd.get_prefix(self.prefix) } except Exception as e: raise Exception( @@ -149,7 +159,7 @@ def get_worker_addresses(self): ) from e if not worker_addresses: - # TODO(lu) deal with the alluxio cluster initalizing issue + # TODO(lu) deal with the alluxio cluster initializing issue raise Exception( "Alluxio cluster may still be initializing. No worker registered" ) From 274ff788a2278c23ad003704fa54a692e224bb7c Mon Sep 17 00:00:00 2001 From: Lu Qiu Date: Tue, 13 Feb 2024 15:32:20 -0800 Subject: [PATCH 09/17] Fix --- alluxio/worker_ring.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/alluxio/worker_ring.py b/alluxio/worker_ring.py index e954919..3f3deac 100644 --- a/alluxio/worker_ring.py +++ b/alluxio/worker_ring.py @@ -121,7 +121,7 @@ def __init__(self, host="localhost", port=2379, options=None): self.etcd_username = None self.etcd_password = None self.prefix = ETCD_PREFIX_FORMAT.format( - ALLUXIO_CLUSTER_NAME_DEFAULT_VALUE + cluster_name=ALLUXIO_CLUSTER_NAME_DEFAULT_VALUE ) if options: if ALLUXIO_ETCD_USERNAME_KEY in options: @@ -130,7 +130,7 @@ def __init__(self, host="localhost", port=2379, options=None): self.etcd_password = options[ALLUXIO_ETCD_PASSWORD_KEY] if ALLUXIO_CLUSTER_NAME_KEY in options: self.prefix = ETCD_PREFIX_FORMAT.format( - options[ALLUXIO_CLUSTER_NAME_KEY] + cluster_name=options[ALLUXIO_CLUSTER_NAME_KEY] ) if (self.etcd_username is None) != (self.etcd_password is None): From 9dd830c8e0ce0f954e1e8a749b5415d179b3d44c Mon Sep 17 00:00:00 2001 From: Lu Qiu Date: Wed, 14 Feb 2024 17:39:13 -0800 Subject: [PATCH 10/17] Refactor --- alluxio/alluxio_file_system.py | 9 +-- alluxio/worker_ring.py | 102 +++++++++++++------------------ tests/test_worker_hash_ring.py | 8 +-- tests/test_worker_net_address.py | 4 +- 4 files changed, 48 insertions(+), 75 deletions(-) diff --git a/alluxio/alluxio_file_system.py b/alluxio/alluxio_file_system.py index 03b259a..61b663b 100644 --- a/alluxio/alluxio_file_system.py +++ b/alluxio/alluxio_file_system.py @@ -101,7 +101,6 @@ class AlluxioFileSystem: def __init__( self, etcd_hosts=None, - worker_hosts=None, options=None, logger=None, concurrency=64, @@ -116,8 +115,6 @@ def __init__( etcd_hosts (str, optional): The hostnames of ETCD to get worker addresses from The hostnames in host1,host2,host3 format. Either etcd_hosts or worker_hosts should be provided, not both. - worker_hosts (str, optional): - The worker hostnames in host1,host2,host3 format. Either etcd_hosts or worker_hosts should be provided, not both. options (dict, optional): A dictionary of Alluxio property key and values. Note that Alluxio Python API only support a limited set of Alluxio properties. @@ -134,14 +131,10 @@ def __init__( The interval to refresh worker list from ETCD membership service periodically. All non-negative values mean the service is disabled. """ - if etcd_hosts is None and worker_hosts is None: + if etcd_hosts is None: raise ValueError( "Must supply either 'etcd_hosts' or 'worker_hosts'" ) - if etcd_hosts and worker_hosts: - raise ValueError( - "Supply either 'etcd_hosts' or 'worker_hosts', not both" - ) self.logger = logger or logging.getLogger("AlluxioFileSystem") self.session = self._create_session(concurrency) diff --git a/alluxio/worker_ring.py b/alluxio/worker_ring.py index 0b5c694..508ace8 100644 --- a/alluxio/worker_ring.py +++ b/alluxio/worker_ring.py @@ -112,26 +112,26 @@ def from_worker_info(worker_info): class EtcdClient: def __init__(self, host="localhost", port=2379, options=None): - self.host = host - self.port = port + self._host = host + self._port = port # Parse options - self.etcd_username = None - self.etcd_password = None - self.prefix = ETCD_PREFIX_FORMAT.format( + self._etcd_username = None + self._etcd_password = None + self._prefix = ETCD_PREFIX_FORMAT.format( cluster_name=ALLUXIO_CLUSTER_NAME_DEFAULT_VALUE ) if options: if ALLUXIO_ETCD_USERNAME_KEY in options: - self.etcd_username = options[ALLUXIO_ETCD_USERNAME_KEY] + self._etcd_username = options[ALLUXIO_ETCD_USERNAME_KEY] if ALLUXIO_ETCD_PASSWORD_KEY in options: - self.etcd_password = options[ALLUXIO_ETCD_PASSWORD_KEY] + self._etcd_password = options[ALLUXIO_ETCD_PASSWORD_KEY] if ALLUXIO_CLUSTER_NAME_KEY in options: - self.prefix = ETCD_PREFIX_FORMAT.format( + self._prefix = ETCD_PREFIX_FORMAT.format( cluster_name=options[ALLUXIO_CLUSTER_NAME_KEY] ) - if (self.etcd_username is None) != (self.etcd_password is None): + if (self._etcd_username is None) != (self._etcd_password is None): raise ValueError( "Both ETCD username and password must be set or both should be unset." ) @@ -149,11 +149,11 @@ def get_worker_entities(self) -> Set[WorkerEntity]: try: worker_entities = { WorkerEntity.from_worker_info(worker_info) - for worker_info, _ in etcd.get_prefix(self.prefix) + for worker_info, _ in etcd.get_prefix(self._prefix) } except Exception as e: raise Exception( - f"Failed to achieve worker info list from ETCD server {self.host}:{self.port} {e}" + f"Failed to achieve worker info list from ETCD server {self._host}:{self._port} {e}" ) from e if not worker_entities: @@ -164,14 +164,14 @@ def get_worker_entities(self) -> Set[WorkerEntity]: return worker_entities def _get_etcd_client(self): - if self.etcd_username: + if self._etcd_username: return etcd3.client( - host=self.host, - port=self.port, - user=self.etcd_username, - password=self.etcd_password, + host=self._host, + port=self._port, + user=self._etcd_username, + password=self._etcd_password, ) - return etcd3.client(host=self.host, port=self.port) + return etcd3.client(host=self._host, port=self._port) class ConsistentHashProvider: @@ -218,52 +218,38 @@ def get_multiple_workers( List[WorkerNetAddress]: A list containing the desired number of WorkerNetAddress objects. """ with self._lock: - count = ( - len(self._worker_info_map) - if count >= len(self._worker_info_map) - else count + worker_identities = self._get_multiple_worker_identities( + key, count ) - workers = [] - attempts = 0 - while len(workers) < count and attempts < self._max_attempts: - attempts += 1 - worker = self._get_ceiling_value(self._hash(key, attempts)) - if worker not in workers: - workers.append(worker) - worker_addresses = [] - for worker in workers: - worker_addresses.append(self._worker_info_map.get(worker)) + for worker_identity in worker_identities: + worker_address = self._worker_info_map.get(worker_identity) + if ( + worker_address + ): # Check to ensure the worker_address is not None. + worker_addresses.append(worker_address) return worker_addresses - def get_multiple_worker_identities( + def _get_multiple_worker_identities( self, key: str, count: int ) -> List[WorkerIdentity]: """ - Retrieve a specified number of worker addresses based on a given key. - - Args: - key (str): The unique path identifier, e.g., full UFS path. - count (int): The number of worker addresses to retrieve. - - Returns: - List[WorkerNetAddress]: A list containing the desired number of WorkerNetAddress objects. + This method needs external lock to ensure safety """ - with self._lock: - count = ( - len(self._worker_info_map) - if count >= len(self._worker_info_map) - else count - ) - workers = [] - attempts = 0 - while len(workers) < count and attempts < self._max_attempts: - attempts += 1 - worker = self._get_ceiling_value(self._hash(key, attempts)) - if worker not in workers: - workers.append(worker) + count = ( + len(self._worker_info_map) + if count >= len(self._worker_info_map) + else count + ) + workers = [] + attempts = 0 + while len(workers) < count and attempts < self._max_attempts: + attempts += 1 + worker = self._get_ceiling_value(self._hash(key, attempts)) + if worker not in workers: + workers.append(worker) - return workers + return workers def _start_background_update_ring(self, interval): def update_loop(): @@ -328,9 +314,9 @@ def _fetch_workers_and_update_ring(self): detect_diff_in_worker_info = True if detect_diff_in_worker_info: - self.update_hash_ring(worker_info_map) + self._update_hash_ring(worker_info_map) - def update_hash_ring( + def _update_hash_ring( self, worker_info_map: dict[WorkerIdentity, WorkerNetAddress] ): with self._lock: @@ -343,10 +329,6 @@ def update_hash_ring( self._worker_info_map = worker_info_map self._is_ring_initialized = True - def get_hash_ring(self): - with self._lock: - return self.hash_ring - def _get_ceiling_value(self, hash_key: int): key_index = self.hash_ring.bisect_right(hash_key) if key_index < len(self.hash_ring): diff --git a/tests/test_worker_hash_ring.py b/tests/test_worker_hash_ring.py index 88b547c..9d66c89 100644 --- a/tests/test_worker_hash_ring.py +++ b/tests/test_worker_hash_ring.py @@ -7,8 +7,6 @@ def test_hash_ring(): hash_provider = ConsistentHashProvider( - # etcd_hosts="localhost", - # etcd_port=2379, hash_node_per_worker=5, etcd_refresh_workers_interval=100000000, ) @@ -26,8 +24,8 @@ def test_hash_ring(): default_worker_net_address = WorkerNetAddress() # Using default values worker_info_map[worker_identity] = default_worker_net_address - hash_provider.update_hash_ring(worker_info_map) - current_ring = hash_provider.get_hash_ring() + hash_provider._update_hash_ring(worker_info_map) + current_ring = hash_provider.hash_ring hash_ring_path = "tests/hash_res/activeNodesMap.json" with open(hash_ring_path, "r") as file: @@ -64,7 +62,7 @@ def test_hash_ring(): for ufs_url, workers in file_workers_data.items(): current_worker_identities = ( - hash_provider.get_multiple_worker_identities(ufs_url, 5) + hash_provider._get_multiple_worker_identities(ufs_url, 5) ) original_set = { (worker["version"], bytes.fromhex(worker["identifier"])) diff --git a/tests/test_worker_net_address.py b/tests/test_worker_net_address.py index 55f2966..4aeccbd 100644 --- a/tests/test_worker_net_address.py +++ b/tests/test_worker_net_address.py @@ -7,7 +7,7 @@ def test_worker_net_address_from_worker_info(): worker_info = b'{"WorkerNetAddress": {"Host": "localhost"}}' result = WorkerNetAddress.from_worker_info(worker_info) - assert result.host == "localhost", "The host should be localhost" + assert result._host == "localhost", "The host should be localhost" invalid_worker_info = b'{"invalid_json": {}' with pytest.raises(ValueError) as err: @@ -64,4 +64,4 @@ def test_worker_net_address_from_service_registry_worker_info(): b'"ServiceEntityName":"worker-cb157baa-afe0-4b98-8af0-1a4645d38456"}' ) result = WorkerNetAddress.from_worker_info(worker_info) - assert result.host == "192.168.4.36", "The host should be 192.168.4.36" + assert result._host == "192.168.4.36", "The host should be 192.168.4.36" From fadc23af6cd5be0080c05357efe1c2bf0a92f82a Mon Sep 17 00:00:00 2001 From: Lu Qiu Date: Wed, 14 Feb 2024 17:42:08 -0800 Subject: [PATCH 11/17] Small fix --- alluxio/alluxio_file_system.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/alluxio/alluxio_file_system.py b/alluxio/alluxio_file_system.py index 61b663b..47c9c17 100644 --- a/alluxio/alluxio_file_system.py +++ b/alluxio/alluxio_file_system.py @@ -112,9 +112,9 @@ def __init__( Inits Alluxio file system. Args: - etcd_hosts (str, optional): + etcd_hosts (str, required): The hostnames of ETCD to get worker addresses from - The hostnames in host1,host2,host3 format. Either etcd_hosts or worker_hosts should be provided, not both. + The hostnames in host1,host2,host3 format. options (dict, optional): A dictionary of Alluxio property key and values. Note that Alluxio Python API only support a limited set of Alluxio properties. @@ -132,9 +132,7 @@ def __init__( """ if etcd_hosts is None: - raise ValueError( - "Must supply either 'etcd_hosts' or 'worker_hosts'" - ) + raise ValueError("Must supply 'etcd_hosts'") self.logger = logger or logging.getLogger("AlluxioFileSystem") self.session = self._create_session(concurrency) From 5b82edd3a1ea73b26b55391af50bd053ad7b9055 Mon Sep 17 00:00:00 2001 From: Lu Qiu Date: Thu, 15 Feb 2024 15:07:46 -0800 Subject: [PATCH 12/17] Modify worker hash --- tests/test_worker_entity.py | 68 ++++++++++++++++++++++++++++++++ tests/test_worker_net_address.py | 67 ------------------------------- 2 files changed, 68 insertions(+), 67 deletions(-) create mode 100644 tests/test_worker_entity.py delete mode 100644 tests/test_worker_net_address.py diff --git a/tests/test_worker_entity.py b/tests/test_worker_entity.py new file mode 100644 index 0000000..99d909f --- /dev/null +++ b/tests/test_worker_entity.py @@ -0,0 +1,68 @@ +import json +import re + +from alluxio.worker_ring import WorkerEntity + + +def test_worker_entity_from_info_dynamic(): + # Define a mapping of field names to their specific values + field_values = { + "version": 1, + "identifier": "cb157baaafe04b988af01a4645d38456", + "Host": "192.168.4.36", + "ContainerHost": "container_host_value", + "RpcPort": 432423, + "DataPort": 54237, + "SecureRpcPort": 23514, + "NettyDataPort": 45837, + "WebPort": 65473, + "DomainSocketPath": "domain_socket_path_value", + "HttpServerPort": 39282, + } + + # Dynamically construct worker_info_dict using field_values + worker_info_dict = { + "Identity": { + k: v + for k, v in field_values.items() + if k in ["version", "identifier"] + }, + "WorkerNetAddress": { + k: v + for k, v in field_values.items() + if k not in ["version", "identifier"] + }, + } + worker_info_bytes = json.dumps(worker_info_dict).encode("utf-8") + + # Convert worker_info_bytes and instantiate WorkerEntity + worker_entity = WorkerEntity.from_worker_info(worker_info_bytes) + + # Validate WorkerIdentity fields + assert worker_entity.worker_identity.version == field_values["version"] + assert worker_entity.worker_identity.identifier == bytes.fromhex( + field_values["identifier"] + ) + # Dynamically validate WorkerNetAddress fields using field_values + for field_name, expected_value in field_values.items(): + if field_name in [ + "version", + "identifier", + ]: # Skip identity-specific fields + continue + # Convert CamelCase field_name to snake_case to match WorkerNetAddress attribute names + snake_case_field_name = camel_to_snake(field_name) + actual_value = getattr( + worker_entity.worker_net_address, snake_case_field_name + ) + assert ( + actual_value == expected_value + ), f"Field '{snake_case_field_name}' expected '{expected_value}', got '{actual_value}'" + + +def camel_to_snake(name): + """ + Convert a CamelCase name into snake_case. + """ + name = re.sub("(.)([A-Z][a-z]+)", r"\1_\2", name) + return re.sub("([a-z0-9])([A-Z])", r"\1_\2", name).lower() diff --git a/tests/test_worker_net_address.py b/tests/test_worker_net_address.py deleted file mode 100644 index 4aeccbd..0000000 --- a/tests/test_worker_net_address.py +++ /dev/null @@ -1,67 +0,0 @@ -import pytest - -from alluxio.worker_ring import DEFAULT_DATA_PORT -from alluxio.worker_ring import WorkerNetAddress - - -def test_worker_net_address_from_worker_info(): - worker_info = b'{"WorkerNetAddress": {"Host": "localhost"}}' - result = WorkerNetAddress.from_worker_info(worker_info) - assert result._host == "localhost", "The host should be localhost" - - invalid_worker_info = b'{"invalid_json": {}' - with pytest.raises(ValueError) as err: - WorkerNetAddress.from_worker_info(invalid_worker_info) - assert ( - "Provided worker_info is not a valid JSON string" in err.value.args[0] - ) - - non_bytes_worker_info = '{"WorkerNetAddress": {"Host": "localhost"}}' - with pytest.raises(AttributeError) as err: - WorkerNetAddress.from_worker_info(non_bytes_worker_info) - assert ( - "Provided worker_info must be a bytes-like object" in err.value.args[0] - ) - - -def test_worker_net_address_from_worker_hosts(): - worker_hosts = "host1,host2,host3" - result = WorkerNetAddress.from_worker_hosts(worker_hosts) - assert len(result) == 3, "The length of worker list should be 3" - - -def test_worker_net_address_dump_main_info(): - worker_address = WorkerNetAddress( - host="host", rpc_port=1234, http_server_port=38080 - ) - result = worker_address.dump_main_info() - - assert "host" in result, "host should be included in the dump info" - assert ( - "1234" in result - ), "rpc port 1234 should be included in the dump info" - assert ( - str(DEFAULT_DATA_PORT) in result - ), "default data port should be included in the dump info" - assert ( - "38080" not in result - ), "Http server port should not be included in the dump info" - - -def test_worker_net_address_from_service_registry_worker_info(): - worker_info = ( - b'{"Identity":{"version":1,' - b'"identifier":"cb157baaafe04b988af01a4645d38456"},' - b'"WorkerNetAddress":{"Host":"192.168.4.36",' - b'"ContainerHost":"",' - b'"RpcPort":29999,' - b'"DataPort":29997,"SecureRpcPort":0,' - b'"NettyDataPort":29997,' - b'"WebPort":30000,' - b'"DomainSocketPath":""},' - b'"State":"AUTHORIZED",' - b'"GenerationNumber":-1,' - b'"ServiceEntityName":"worker-cb157baa-afe0-4b98-8af0-1a4645d38456"}' - ) - result = WorkerNetAddress.from_worker_info(worker_info) - assert result._host == "192.168.4.36", "The host should be 192.168.4.36" From b1b8d8eb5bc4e5bb43cee1e2d546deb8a7c99cbc Mon Sep 17 00:00:00 2001 From: Lu Qiu Date: Thu, 15 Feb 2024 15:25:07 -0800 Subject: [PATCH 13/17] Skip docker test for now --- tests/test_docker_alluxio.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/test_docker_alluxio.py b/tests/test_docker_alluxio.py index bcb16f2..be6ffc3 100644 --- a/tests/test_docker_alluxio.py +++ b/tests/test_docker_alluxio.py @@ -1,5 +1,8 @@ +import pytest + from tests.conftest import TEST_ROOT +@pytest.mark.skip def test_simple(fs): fs.listdir(TEST_ROOT) # no error From 119f4c25bce8c92b67af78874a288d478698dfb9 Mon Sep 17 00:00:00 2001 From: Lu Qiu Date: Thu, 15 Feb 2024 15:28:15 -0800 Subject: [PATCH 14/17] Skip docker test for now --- tests/test_read_range_docker.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/test_read_range_docker.py b/tests/test_read_range_docker.py index 109192c..ed45359 100644 --- a/tests/test_read_range_docker.py +++ b/tests/test_read_range_docker.py @@ -1,6 +1,8 @@ import os import random +import pytest + from alluxio import AlluxioFileSystem from tests.conftest import ALLUXIO_FILE_PATH from tests.conftest import LOCAL_FILE_PATH @@ -64,6 +66,7 @@ def validate_invalid_read_range( ) +@pytest.mark.skip def test_alluxio_filesystem(fs: AlluxioFileSystem): file_size = os.path.getsize(LOCAL_FILE_PATH) assert fs.load(ALLUXIO_FILE_PATH, 200) From b5bd9e467541f41917a7b198c2b57c2bbbdf33fb Mon Sep 17 00:00:00 2001 From: Lu Qiu Date: Tue, 20 Feb 2024 12:44:17 -0800 Subject: [PATCH 15/17] Address comments --- alluxio/alluxio_file_system.py | 21 +++++++++++++++++---- alluxio/worker_ring.py | 14 ++++++-------- 2 files changed, 23 insertions(+), 12 deletions(-) diff --git a/alluxio/alluxio_file_system.py b/alluxio/alluxio_file_system.py index 47c9c17..93d4281 100644 --- a/alluxio/alluxio_file_system.py +++ b/alluxio/alluxio_file_system.py @@ -101,6 +101,7 @@ class AlluxioFileSystem: def __init__( self, etcd_hosts=None, + worker_hosts=None, options=None, logger=None, concurrency=64, @@ -112,9 +113,11 @@ def __init__( Inits Alluxio file system. Args: - etcd_hosts (str, required): + etcd_hosts (str, optional): The hostnames of ETCD to get worker addresses from - The hostnames in host1,host2,host3 format. + The hostnames in host1,host2,host3 format. Either etcd_hosts or worker_hosts should be provided, not both. + worker_hosts (str, optional): + The worker hostnames in host1,host2,host3 format. Either etcd_hosts or worker_hosts should be provided, not both. options (dict, optional): A dictionary of Alluxio property key and values. Note that Alluxio Python API only support a limited set of Alluxio properties. @@ -131,9 +134,19 @@ def __init__( The interval to refresh worker list from ETCD membership service periodically. All non-negative values mean the service is disabled. """ - if etcd_hosts is None: - raise ValueError("Must supply 'etcd_hosts'") + if etcd_hosts is None and worker_hosts is None: + raise ValueError( + "Must supply either 'etcd_hosts' or 'worker_hosts'" + ) + if etcd_hosts and worker_hosts: + raise ValueError( + "Supply either 'etcd_hosts' or 'worker_hosts', not both" + ) self.logger = logger or logging.getLogger("AlluxioFileSystem") + if etcd_hosts and not worker_hosts: + self.logger.warning( + "Does not supply 'etcd_host'. Cannot tolerate Alluxio cluster changes." + ) self.session = self._create_session(concurrency) # parse options diff --git a/alluxio/worker_ring.py b/alluxio/worker_ring.py index 508ace8..1636331 100644 --- a/alluxio/worker_ring.py +++ b/alluxio/worker_ring.py @@ -224,9 +224,7 @@ def get_multiple_workers( worker_addresses = [] for worker_identity in worker_identities: worker_address = self._worker_info_map.get(worker_identity) - if ( - worker_address - ): # Check to ensure the worker_address is not None. + if worker_address: worker_addresses.append(worker_address) return worker_addresses @@ -297,23 +295,23 @@ def _fetch_workers_and_update_ring(self): ) worker_info_map = {} - detect_diff_in_worker_info = False + diff_in_worker_info_detected = False for worker_entity in worker_entities: worker_info_map[ worker_entity.worker_identity ] = worker_entity.worker_net_address if worker_entity.worker_identity not in self._worker_info_map: - detect_diff_in_worker_info = True + diff_in_worker_info_detected = True elif ( self._worker_info_map[worker_entity.worker_identity] != worker_entity.worker_net_address ): - detect_diff_in_worker_info = True + diff_in_worker_info_detected = True if len(worker_info_map) != len(self._worker_info_map): - detect_diff_in_worker_info = True + diff_in_worker_info_detected = True - if detect_diff_in_worker_info: + if diff_in_worker_info_detected: self._update_hash_ring(worker_info_map) def _update_hash_ring( From 421461ac77f700882593829789244bc4926d0e6f Mon Sep 17 00:00:00 2001 From: Lu Qiu Date: Tue, 20 Feb 2024 13:19:00 -0800 Subject: [PATCH 16/17] Add initalize static membership service test --- alluxio/worker_ring.py | 39 +++++++++++++++++++++++++++++++++ tests/test_docker_alluxio.py | 3 --- tests/test_fake_server.py | 2 -- tests/test_read_range_docker.py | 3 --- 4 files changed, 39 insertions(+), 8 deletions(-) diff --git a/alluxio/worker_ring.py b/alluxio/worker_ring.py index 1636331..b163e1e 100644 --- a/alluxio/worker_ring.py +++ b/alluxio/worker_ring.py @@ -3,6 +3,7 @@ import random import threading import time +import uuid from dataclasses import dataclass from typing import List from typing import Set @@ -26,6 +27,7 @@ DEFAULT_WEB_PORT = 30000 DEFAULT_DOMAIN_SOCKET_PATH = "" DEFAULT_HTTP_SERVER_PORT = 28080 +DEFAULT_WORKER_IDENTIFIER_VERSION = 1 @dataclass(frozen=True) @@ -109,6 +111,26 @@ def from_worker_info(worker_info): f"Failed to process given worker_info {worker_info} {e}" ) from e + @staticmethod + def from_host_and_port(worker_host, worker_http_port): + worker_uuid = uuid.uuid5(uuid.NAMESPACE_DNS, worker_host) + uuid_bytes = worker_uuid.bytes + worker_identity = WorkerIdentity( + DEFAULT_WORKER_IDENTIFIER_VERSION, uuid_bytes + ) + worker_net_address = WorkerNetAddress( + host=worker_host, + container_host=DEFAULT_CONTAINER_HOST, + rpc_port=DEFAULT_RPC_PORT, + data_port=DEFAULT_DATA_PORT, + secure_rpc_port=DEFAULT_SECURE_RPC_PORT, + netty_data_port=DEFAULT_NETTY_DATA_PORT, + web_port=DEFAULT_WEB_PORT, + domain_socket_path=DEFAULT_DOMAIN_SOCKET_PATH, + http_server_port=worker_http_port, + ) + return WorkerEntity(worker_identity, worker_net_address) + class EtcdClient: def __init__(self, host="localhost", port=2379, options=None): @@ -179,6 +201,8 @@ def __init__( self, etcd_hosts=None, etcd_port=2379, + worker_hosts=None, + worker_http_port=DEFAULT_HTTP_SERVER_PORT, options=None, logger=None, hash_node_per_worker=5, @@ -195,6 +219,10 @@ def __init__( self._is_ring_initialized = False self._worker_info_map = {} self._etcd_refresh_workers_interval = etcd_refresh_workers_interval + if worker_hosts: + self._update_hash_ring( + self._generate_worker_info_map(worker_hosts, worker_http_port) + ) if self._etcd_hosts: self._fetch_workers_and_update_ring() if self._etcd_refresh_workers_interval > 0: @@ -351,3 +379,14 @@ def _hash_worker_identity( hasher.update(worker.version.to_bytes(4, "little")) hasher.update(node_index.to_bytes(4, "little")) return hasher.sintdigest() + + def _generate_worker_info_map(self, worker_hosts, worker_http_port): + worker_info_map = {} + for worker_host in worker_hosts: + worker_entity = WorkerEntity.from_host_and_port( + worker_host, worker_http_port + ) + worker_info_map[ + worker_entity.worker_identity + ] = worker_entity.worker_net_address + return worker_info_map diff --git a/tests/test_docker_alluxio.py b/tests/test_docker_alluxio.py index be6ffc3..bcb16f2 100644 --- a/tests/test_docker_alluxio.py +++ b/tests/test_docker_alluxio.py @@ -1,8 +1,5 @@ -import pytest - from tests.conftest import TEST_ROOT -@pytest.mark.skip def test_simple(fs): fs.listdir(TEST_ROOT) # no error diff --git a/tests/test_fake_server.py b/tests/test_fake_server.py index e2409bb..dec4c50 100644 --- a/tests/test_fake_server.py +++ b/tests/test_fake_server.py @@ -52,7 +52,6 @@ async def startup(app: web.Application): return server -@pytest.mark.skip @pytest.mark.asyncio async def test_read_page(server): fs = AlluxioAsyncFileSystem( @@ -63,7 +62,6 @@ async def test_read_page(server): assert data == b"es" -@pytest.mark.skip @pytest.mark.asyncio async def test_put_page(server): fs = AlluxioAsyncFileSystem( diff --git a/tests/test_read_range_docker.py b/tests/test_read_range_docker.py index ed45359..109192c 100644 --- a/tests/test_read_range_docker.py +++ b/tests/test_read_range_docker.py @@ -1,8 +1,6 @@ import os import random -import pytest - from alluxio import AlluxioFileSystem from tests.conftest import ALLUXIO_FILE_PATH from tests.conftest import LOCAL_FILE_PATH @@ -66,7 +64,6 @@ def validate_invalid_read_range( ) -@pytest.mark.skip def test_alluxio_filesystem(fs: AlluxioFileSystem): file_size = os.path.getsize(LOCAL_FILE_PATH) assert fs.load(ALLUXIO_FILE_PATH, 200) From af1d8b4064657dc8a5523568ef985a57ef453e16 Mon Sep 17 00:00:00 2001 From: Lu Qiu Date: Tue, 20 Feb 2024 14:44:21 -0800 Subject: [PATCH 17/17] Support staticMembership --- alluxio/worker_ring.py | 10 +- tests/hash_res/activeNodesMap.json | 1000 ++++++++++++++-------------- tests/hash_res/fileUrlWorkers.json | 210 +++--- tests/hash_res/workerList.json | 100 +-- tests/test_worker_hash_ring.py | 55 +- 5 files changed, 695 insertions(+), 680 deletions(-) diff --git a/alluxio/worker_ring.py b/alluxio/worker_ring.py index b163e1e..7f6ede5 100644 --- a/alluxio/worker_ring.py +++ b/alluxio/worker_ring.py @@ -49,6 +49,10 @@ class WorkerIdentity: identifier: bytes +class NULL_NAMESPACE: + bytes = b"" + + @dataclass(frozen=True) class WorkerEntity: worker_identity: WorkerIdentity @@ -113,8 +117,9 @@ def from_worker_info(worker_info): @staticmethod def from_host_and_port(worker_host, worker_http_port): - worker_uuid = uuid.uuid5(uuid.NAMESPACE_DNS, worker_host) + worker_uuid = uuid.uuid3(NULL_NAMESPACE, worker_host) uuid_bytes = worker_uuid.bytes + worker_identity = WorkerIdentity( DEFAULT_WORKER_IDENTIFIER_VERSION, uuid_bytes ) @@ -382,7 +387,8 @@ def _hash_worker_identity( def _generate_worker_info_map(self, worker_hosts, worker_http_port): worker_info_map = {} - for worker_host in worker_hosts: + host_list = [host.strip() for host in worker_hosts.split(",")] + for worker_host in host_list: worker_entity = WorkerEntity.from_host_and_port( worker_host, worker_http_port ) diff --git a/tests/hash_res/activeNodesMap.json b/tests/hash_res/activeNodesMap.json index 94e9d33..6260595 100644 --- a/tests/hash_res/activeNodesMap.json +++ b/tests/hash_res/activeNodesMap.json @@ -1,1002 +1,1002 @@ { - "-2147037003": { + "-2115369034": { "version": 1, - "identifier": "2221b89d987d4ab89f40bae7bd5623b7" + "identifier": "eb5a6614aa793f968ecc6426a8aaf31b" }, - "-2136385726": { + "-2091368727": { "version": 1, - "identifier": "f1240a3152a74359b9f252a4b3a070a3" + "identifier": "3e05246f5a4b37e7bd9a0b09b1706b95" }, - "-2107381643": { + "-2035703500": { "version": 1, - "identifier": "f20ceecc3e2b40899a82d192ce298202" + "identifier": "4f23e7a1a230318a912dbdf8f78e0aed" }, - "-2085858555": { + "-2020503163": { "version": 1, - "identifier": "2a48613754ad4ba69f0ed7cebbc7b9b3" + "identifier": "4f23e7a1a230318a912dbdf8f78e0aed" }, - "-2085010431": { + "-2018838375": { "version": 1, - "identifier": "1628d1cdcdcd4223803a74455b0d1424" + "identifier": "d53648c23d853765a0662482a16a4ca3" }, - "-2080022540": { + "-2001073348": { "version": 1, - "identifier": "16a00c00ed8a45a6ba231f8ff015c7ab" + "identifier": "5d2e3793fc6638e98507610a19a6079f" }, - "-2079271087": { + "-2001008823": { "version": 1, - "identifier": "6019d4b170f84e27b695bc228ed1794f" + "identifier": "8aac9641549c3663bc5fc2a1d7b652d1" }, - "-2077140693": { + "-2000498259": { "version": 1, - "identifier": "9fcac170b7364b3abf00d40c0b818792" + "identifier": "ed014f952f6c3e1ca0d5a479e4141456" }, - "-2058307409": { + "-1998016219": { "version": 1, - "identifier": "ffa9296cdae94e77b619b4864166f464" + "identifier": "ed014f952f6c3e1ca0d5a479e4141456" }, - "-2053083231": { + "-1992280867": { "version": 1, - "identifier": "127fa9d7a9264743bfee61f1933d5f16" + "identifier": "ed014f952f6c3e1ca0d5a479e4141456" }, - "-2050433596": { + "-1949531595": { "version": 1, - "identifier": "1628d1cdcdcd4223803a74455b0d1424" + "identifier": "d53648c23d853765a0662482a16a4ca3" }, - "-2015244654": { + "-1945615066": { "version": 1, - "identifier": "54e42cdcca514b01a4c9a7939586254d" + "identifier": "4f23e7a1a230318a912dbdf8f78e0aed" }, - "-2004289150": { + "-1905409545": { "version": 1, - "identifier": "16a00c00ed8a45a6ba231f8ff015c7ab" + "identifier": "4f23e7a1a230318a912dbdf8f78e0aed" }, - "-2001145313": { + "-1898825753": { "version": 1, - "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" + "identifier": "d71a716e22ef33e4baa94336282c6f3b" }, - "-1991457023": { + "-1880929873": { "version": 1, - "identifier": "35f1e149f1f84603900be6d16001433b" + "identifier": "acf3522e534a35c2a811716eeb29c22e" }, - "-1893173965": { + "-1879245916": { "version": 1, - "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" + "identifier": "55da12e6f8ea35059e783843d4733281" }, - "-1886617746": { + "-1874448919": { "version": 1, - "identifier": "fdf02756bc1b4cfbab9c54de27d1200e" + "identifier": "acf3522e534a35c2a811716eeb29c22e" }, - "-1856940869": { + "-1836289830": { "version": 1, - "identifier": "16ba9c1573ed4feea538ae4380385c5e" + "identifier": "4310bdfd3c763fb3a58edb9b4030d99f" }, - "-1815633608": { + "-1807338973": { "version": 1, - "identifier": "acbe23f8588e4d58b9cd9951a966feb1" + "identifier": "d1450ca53c3c3ccbb875326d4ec2d38f" }, - "-1812206178": { + "-1785695523": { "version": 1, - "identifier": "d21480430bc240f7ba60d988312099b9" + "identifier": "5d2e3793fc6638e98507610a19a6079f" }, - "-1790057509": { + "-1644192530": { "version": 1, - "identifier": "ffa9296cdae94e77b619b4864166f464" + "identifier": "d7028a8eab373a28b2a2f6109a13011d" }, - "-1777649102": { + "-1640144922": { "version": 1, - "identifier": "2221b89d987d4ab89f40bae7bd5623b7" + "identifier": "1ae5694808e43da58ba98374c7e51190" }, - "-1776256734": { + "-1621072852": { "version": 1, - "identifier": "bfe6c591f7e640ea98fe2ef4b15d2512" + "identifier": "8a812752548f33d4a7e83a2a7b4a5c80" }, - "-1771584881": { + "-1613871358": { "version": 1, - "identifier": "5d0383d1daff4a1e92266cc00aa2cf96" + "identifier": "865668aadaba3511a84d8054613dd14b" }, - "-1766048673": { + "-1607875238": { "version": 1, - "identifier": "22f74d5dc562436f9104327171445dab" + "identifier": "9f1304b5ef553bb99291561ab5fdccba" }, - "-1743228713": { + "-1603622913": { "version": 1, - "identifier": "482680d03f254e37ad80b495cf65efd7" + "identifier": "464294a547843ecca2be5a615b1397c0" }, - "-1730284415": { + "-1598860684": { "version": 1, - "identifier": "a6b04dcf49e1402ba1bf2a39611fa5d8" + "identifier": "02211ad6f0cf359e8a6b9ca7f79329c1" }, - "-1710940096": { + "-1591914451": { "version": 1, - "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" + "identifier": "eb5a6614aa793f968ecc6426a8aaf31b" }, - "-1691135344": { + "-1582782076": { "version": 1, - "identifier": "1cbe80b1b856443db4af92494d13dd63" + "identifier": "d5d8e197ad4f353b9ba5c2856bc844e1" }, - "-1682155819": { + "-1572608538": { "version": 1, - "identifier": "1cbe80b1b856443db4af92494d13dd63" + "identifier": "065141ec74bd3ad8bff25e7bc18408be" }, - "-1669503370": { + "-1565343821": { "version": 1, - "identifier": "4c5eed8e352e406da8acc61e0df28bc1" + "identifier": "35a44a2979bb392b86a4d51b44b666c7" }, - "-1620556226": { + "-1544884377": { "version": 1, - "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" + "identifier": "f4017d1d98933b659d6b0e2811c22a1c" }, - "-1609234386": { + "-1533586579": { "version": 1, - "identifier": "a65c8210e79343809b68fe4ca0a5ef64" + "identifier": "1ae5694808e43da58ba98374c7e51190" }, - "-1602859885": { + "-1502419178": { "version": 1, - "identifier": "4a4ab283e3f349b5b70d3227f1eab5ba" + "identifier": "8aac9641549c3663bc5fc2a1d7b652d1" }, - "-1598407585": { + "-1497415322": { "version": 1, - "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" + "identifier": "f170065c69273b4092cf73ffe2fb8a49" }, - "-1556018009": { + "-1481119148": { "version": 1, - "identifier": "2a48613754ad4ba69f0ed7cebbc7b9b3" + "identifier": "55da12e6f8ea35059e783843d4733281" }, - "-1502905965": { + "-1460481702": { "version": 1, - "identifier": "fa20f443cbd544a38af8eb104e948cf1" + "identifier": "02211ad6f0cf359e8a6b9ca7f79329c1" }, - "-1494854089": { + "-1454067970": { "version": 1, - "identifier": "a2acf0efab5a431da403e7f0becf1759" + "identifier": "63612b5f0daf3724b30428ee6a390e86" }, - "-1490796491": { + "-1428680219": { "version": 1, - "identifier": "9096e1f61ec545cfa1bc04fcd2a8d5ed" + "identifier": "b065a65d21613f30b210668f36b99865" }, - "-1467572242": { + "-1402396211": { "version": 1, - "identifier": "a65c8210e79343809b68fe4ca0a5ef64" + "identifier": "0fcc8d949efd3ed594bec8171d131a4e" }, - "-1462428377": { + "-1388188426": { "version": 1, - "identifier": "d5537caa9d084e8db24b3ddc685001f5" + "identifier": "3e05246f5a4b37e7bd9a0b09b1706b95" }, - "-1450002643": { + "-1361504644": { "version": 1, - "identifier": "482680d03f254e37ad80b495cf65efd7" + "identifier": "9f1304b5ef553bb99291561ab5fdccba" }, - "-1415287558": { + "-1353690830": { "version": 1, - "identifier": "6019d4b170f84e27b695bc228ed1794f" + "identifier": "b43de09a152b3d42ba0f628e69742db3" }, - "-1406624503": { + "-1308819006": { "version": 1, - "identifier": "dd636d26b64a4ba290e3353cdeeaa47e" + "identifier": "aacf21dd9eb537eeb332c48248e79865" }, - "-1406008720": { + "-1274190161": { "version": 1, - "identifier": "482680d03f254e37ad80b495cf65efd7" + "identifier": "3e05246f5a4b37e7bd9a0b09b1706b95" }, - "-1388373382": { + "-1274184776": { "version": 1, - "identifier": "133afae612e446299aaa18bcbce5ea5b" + "identifier": "70d7e21f675633c38b057731c646283b" }, - "-1385277929": { + "-1254602663": { "version": 1, - "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" + "identifier": "63612b5f0daf3724b30428ee6a390e86" }, - "-1373149942": { + "-1242990879": { "version": 1, - "identifier": "4a4ab283e3f349b5b70d3227f1eab5ba" + "identifier": "959e6e70afa63804bf6f6f003ab54adb" }, - "-1366747090": { + "-1209240677": { "version": 1, - "identifier": "d5537caa9d084e8db24b3ddc685001f5" + "identifier": "b43de09a152b3d42ba0f628e69742db3" }, - "-1366352519": { + "-1205533474": { "version": 1, - "identifier": "29c13c9356e747b09af6758501fd12cc" + "identifier": "d7028a8eab373a28b2a2f6109a13011d" }, - "-1359103193": { + "-1181002889": { "version": 1, - "identifier": "16a00c00ed8a45a6ba231f8ff015c7ab" + "identifier": "b2e9c4abf2c133cab118acca6b6fe4e7" }, - "-1345710449": { + "-1170547462": { "version": 1, - "identifier": "1628d1cdcdcd4223803a74455b0d1424" + "identifier": "89d35a3cb15e3664b0e5e9e5091d54c4" }, - "-1323438353": { + "-1136284210": { "version": 1, - "identifier": "d21480430bc240f7ba60d988312099b9" + "identifier": "1ae5694808e43da58ba98374c7e51190" }, - "-1318869495": { + "-1131198756": { "version": 1, - "identifier": "1cbe80b1b856443db4af92494d13dd63" + "identifier": "d71a716e22ef33e4baa94336282c6f3b" }, - "-1308429423": { + "-1108751870": { "version": 1, - "identifier": "16ba9c1573ed4feea538ae4380385c5e" + "identifier": "d7028a8eab373a28b2a2f6109a13011d" }, - "-1297263578": { + "-1085625064": { "version": 1, - "identifier": "35f1e149f1f84603900be6d16001433b" + "identifier": "1ae5694808e43da58ba98374c7e51190" }, - "-1235389240": { + "-1072596604": { "version": 1, - "identifier": "f1240a3152a74359b9f252a4b3a070a3" + "identifier": "865668aadaba3511a84d8054613dd14b" }, - "-1220310749": { + "-1067521732": { "version": 1, - "identifier": "fa20f443cbd544a38af8eb104e948cf1" + "identifier": "ff552a31dc9c31dfaae746915261cc0f" }, - "-1189812585": { + "-1027139400": { "version": 1, - "identifier": "133afae612e446299aaa18bcbce5ea5b" + "identifier": "18da1234f4cb339d8e563665adcbaae1" }, - "-1187585518": { + "-965000512": { "version": 1, - "identifier": "5050bb85776e4993961aac6235911e73" + "identifier": "f4017d1d98933b659d6b0e2811c22a1c" }, - "-1182407564": { + "-963201551": { "version": 1, - "identifier": "051c61bf048745a39273dfddd10e11d2" + "identifier": "b43de09a152b3d42ba0f628e69742db3" }, - "-1171199490": { + "-953941995": { "version": 1, - "identifier": "051c61bf048745a39273dfddd10e11d2" + "identifier": "ce88e51340d034eb95942143f1d177dd" }, - "-1170402988": { + "-949681777": { "version": 1, - "identifier": "1628d1cdcdcd4223803a74455b0d1424" + "identifier": "08dfb7f3f3bf3668889accd20d27ae56" }, - "-1165536618": { + "-948975218": { "version": 1, - "identifier": "e7ecc1fb3ffc414ea9a5c7a19f1a81e5" + "identifier": "a8fc3852f5b636bc846996f2f5fd52c4" }, - "-1144949582": { + "-929168312": { "version": 1, - "identifier": "5050bb85776e4993961aac6235911e73" + "identifier": "f4c597fd0865329ca22e1ab30e0adf33" }, - "-1095940197": { + "-928233989": { "version": 1, - "identifier": "a65c8210e79343809b68fe4ca0a5ef64" + "identifier": "b065a65d21613f30b210668f36b99865" }, - "-1079315490": { + "-910886540": { "version": 1, - "identifier": "4c5eed8e352e406da8acc61e0df28bc1" + "identifier": "0fcc8d949efd3ed594bec8171d131a4e" }, - "-1062030577": { + "-887685381": { "version": 1, - "identifier": "dc6efddd3aa7485099176a8401dde8d0" + "identifier": "865668aadaba3511a84d8054613dd14b" }, - "-1057225802": { + "-868669701": { "version": 1, - "identifier": "127fa9d7a9264743bfee61f1933d5f16" + "identifier": "a0e69147a1bc3b55ba88803686ee8ef8" }, - "-1043828836": { + "-858699180": { "version": 1, - "identifier": "dd636d26b64a4ba290e3353cdeeaa47e" + "identifier": "f4c597fd0865329ca22e1ab30e0adf33" }, - "-1032784640": { + "-819778837": { "version": 1, - "identifier": "05b6efe52b9441f9a344605810e34675" + "identifier": "d1450ca53c3c3ccbb875326d4ec2d38f" }, - "-1018212595": { + "-813715057": { "version": 1, - "identifier": "16a00c00ed8a45a6ba231f8ff015c7ab" + "identifier": "ce88e51340d034eb95942143f1d177dd" }, - "-993395225": { + "-788575516": { "version": 1, - "identifier": "6019d4b170f84e27b695bc228ed1794f" + "identifier": "d9824b27273034f69ddf0369b907de1e" }, - "-954403889": { + "-782399481": { "version": 1, - "identifier": "2221b89d987d4ab89f40bae7bd5623b7" + "identifier": "07a1007d01053baeb0aa798f88e1a0f2" }, - "-944941422": { + "-765629868": { "version": 1, - "identifier": "f1240a3152a74359b9f252a4b3a070a3" + "identifier": "18da1234f4cb339d8e563665adcbaae1" }, - "-941087395": { + "-713207990": { "version": 1, - "identifier": "1b7bc381cecf4f248b27ef7cc72c793a" + "identifier": "e4d8ef54fd3834628e07fd42e79978b3" }, - "-925712338": { + "-704126197": { "version": 1, - "identifier": "a65c8210e79343809b68fe4ca0a5ef64" + "identifier": "70d7e21f675633c38b057731c646283b" }, - "-899554206": { + "-703905062": { "version": 1, - "identifier": "54e42cdcca514b01a4c9a7939586254d" + "identifier": "b43de09a152b3d42ba0f628e69742db3" }, - "-895789220": { + "-677761763": { "version": 1, - "identifier": "a0909547073e477eb5bc1bca75b75721" + "identifier": "ff552a31dc9c31dfaae746915261cc0f" }, - "-881177281": { + "-677716059": { "version": 1, - "identifier": "1b7bc381cecf4f248b27ef7cc72c793a" + "identifier": "f170065c69273b4092cf73ffe2fb8a49" }, - "-855597008": { + "-650059480": { "version": 1, - "identifier": "a2acf0efab5a431da403e7f0becf1759" + "identifier": "b785d1f098863821a4eb6bee226c35b7" }, - "-826560609": { + "-601500921": { "version": 1, - "identifier": "dc6efddd3aa7485099176a8401dde8d0" + "identifier": "02211ad6f0cf359e8a6b9ca7f79329c1" }, - "-808606218": { + "-601452604": { "version": 1, - "identifier": "fa10d6092a3d4f2086245ee7f96415ae" + "identifier": "0714e1f5551736ff85cef7d9fd8c28f2" }, - "-808209171": { + "-558607524": { "version": 1, - "identifier": "1cbe80b1b856443db4af92494d13dd63" + "identifier": "d9824b27273034f69ddf0369b907de1e" }, - "-807527262": { + "-536222129": { "version": 1, - "identifier": "a6b04dcf49e1402ba1bf2a39611fa5d8" + "identifier": "63612b5f0daf3724b30428ee6a390e86" }, - "-787018612": { + "-535276574": { "version": 1, - "identifier": "4a4ab283e3f349b5b70d3227f1eab5ba" + "identifier": "d44ef730090b3bf4ad6ab93c7fc2ecd1" }, - "-759273880": { + "-531165090": { "version": 1, - "identifier": "35f1e149f1f84603900be6d16001433b" + "identifier": "d9824b27273034f69ddf0369b907de1e" }, - "-748433153": { + "-513594848": { "version": 1, - "identifier": "35f1e149f1f84603900be6d16001433b" + "identifier": "00dd0f17afad3c54a1ee3b42cbfde3f0" }, - "-736752689": { + "-510745204": { "version": 1, - "identifier": "051c61bf048745a39273dfddd10e11d2" + "identifier": "d9824b27273034f69ddf0369b907de1e" }, - "-729934343": { + "-492474525": { "version": 1, - "identifier": "fa20f443cbd544a38af8eb104e948cf1" + "identifier": "a8fc3852f5b636bc846996f2f5fd52c4" }, - "-719673932": { + "-436715699": { "version": 1, - "identifier": "4a4ab283e3f349b5b70d3227f1eab5ba" + "identifier": "d69c0d9d83d7348bbf3ff323a450babc" }, - "-662723138": { + "-436169307": { "version": 1, - "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" + "identifier": "35a44a2979bb392b86a4d51b44b666c7" }, - "-657548540": { + "-421725118": { "version": 1, - "identifier": "ffa9296cdae94e77b619b4864166f464" + "identifier": "07a1007d01053baeb0aa798f88e1a0f2" }, - "-638927622": { + "-420639473": { "version": 1, - "identifier": "5d0383d1daff4a1e92266cc00aa2cf96" + "identifier": "865668aadaba3511a84d8054613dd14b" }, - "-634363964": { + "-402034263": { "version": 1, - "identifier": "54e42cdcca514b01a4c9a7939586254d" + "identifier": "a11b880d043231fba4a14c9da7c86a83" }, - "-633960076": { + "-372367314": { "version": 1, - "identifier": "52989dff7cd14f00af4db7e62a220ab6" + "identifier": "89d35a3cb15e3664b0e5e9e5091d54c4" }, - "-608416112": { + "-363276737": { "version": 1, - "identifier": "2b5656cdc77a40d09edd03abd25980fa" + "identifier": "d53648c23d853765a0662482a16a4ca3" }, - "-599951114": { + "-350701540": { "version": 1, - "identifier": "420653785c00459994f0f541fdfc86b4" + "identifier": "1ae5694808e43da58ba98374c7e51190" }, - "-589239459": { + "-329451756": { "version": 1, - "identifier": "fa10d6092a3d4f2086245ee7f96415ae" + "identifier": "0714e1f5551736ff85cef7d9fd8c28f2" }, - "-585820330": { + "-322939709": { "version": 1, - "identifier": "05b6efe52b9441f9a344605810e34675" + "identifier": "464294a547843ecca2be5a615b1397c0" }, - "-573044542": { + "-308807501": { "version": 1, - "identifier": "dd636d26b64a4ba290e3353cdeeaa47e" + "identifier": "70d7e21f675633c38b057731c646283b" }, - "-559416974": { + "-273283867": { "version": 1, - "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" + "identifier": "f4c597fd0865329ca22e1ab30e0adf33" }, - "-545931827": { + "-257651875": { "version": 1, - "identifier": "9fcac170b7364b3abf00d40c0b818792" + "identifier": "8aac9641549c3663bc5fc2a1d7b652d1" }, - "-528631945": { + "-246789829": { "version": 1, - "identifier": "5050bb85776e4993961aac6235911e73" + "identifier": "aacf21dd9eb537eeb332c48248e79865" }, - "-509202142": { + "-235365093": { "version": 1, - "identifier": "52d9926172cb48368f001fb8af52214b" + "identifier": "07a1007d01053baeb0aa798f88e1a0f2" }, - "-505477224": { + "-214752869": { "version": 1, - "identifier": "e7ecc1fb3ffc414ea9a5c7a19f1a81e5" + "identifier": "55da12e6f8ea35059e783843d4733281" }, - "-499295719": { + "-211889573": { "version": 1, - "identifier": "5d0383d1daff4a1e92266cc00aa2cf96" + "identifier": "18da1234f4cb339d8e563665adcbaae1" }, - "-458938272": { + "-205438280": { "version": 1, - "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" + "identifier": "d1450ca53c3c3ccbb875326d4ec2d38f" }, - "-437074881": { + "-162809880": { "version": 1, - "identifier": "5050bb85776e4993961aac6235911e73" + "identifier": "18da1234f4cb339d8e563665adcbaae1" }, - "-414402003": { + "-149368597": { "version": 1, - "identifier": "16ba9c1573ed4feea538ae4380385c5e" + "identifier": "89d35a3cb15e3664b0e5e9e5091d54c4" }, - "-353447062": { + "-111074588": { "version": 1, - "identifier": "d5537caa9d084e8db24b3ddc685001f5" + "identifier": "d7028a8eab373a28b2a2f6109a13011d" }, - "-346236520": { + "-106187699": { "version": 1, - "identifier": "fa20f443cbd544a38af8eb104e948cf1" + "identifier": "d9824b27273034f69ddf0369b907de1e" }, - "-344682443": { + "-90712726": { "version": 1, - "identifier": "133afae612e446299aaa18bcbce5ea5b" + "identifier": "9f1304b5ef553bb99291561ab5fdccba" }, - "-325442587": { + "-43170766": { "version": 1, - "identifier": "22f74d5dc562436f9104327171445dab" + "identifier": "f170065c69273b4092cf73ffe2fb8a49" }, - "-310212236": { + "-37332753": { "version": 1, - "identifier": "acbe23f8588e4d58b9cd9951a966feb1" + "identifier": "a0e69147a1bc3b55ba88803686ee8ef8" }, - "-280224957": { + "21700536": { "version": 1, - "identifier": "bfe6c591f7e640ea98fe2ef4b15d2512" + "identifier": "d53648c23d853765a0662482a16a4ca3" }, - "-228287302": { + "26589100": { "version": 1, - "identifier": "05b6efe52b9441f9a344605810e34675" + "identifier": "f4c597fd0865329ca22e1ab30e0adf33" }, - "-201601103": { + "49988399": { "version": 1, - "identifier": "133afae612e446299aaa18bcbce5ea5b" + "identifier": "861111d5e78e39bcb4111b1ac713d40b" }, - "-182017741": { + "50999564": { "version": 1, - "identifier": "2b5656cdc77a40d09edd03abd25980fa" + "identifier": "b785d1f098863821a4eb6bee226c35b7" }, - "-179001702": { + "63571604": { "version": 1, - "identifier": "6019d4b170f84e27b695bc228ed1794f" + "identifier": "f4017d1d98933b659d6b0e2811c22a1c" }, - "-143324811": { + "104739144": { "version": 1, - "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" + "identifier": "02211ad6f0cf359e8a6b9ca7f79329c1" }, - "-142324108": { + "130354123": { "version": 1, - "identifier": "29c13c9356e747b09af6758501fd12cc" + "identifier": "aacf21dd9eb537eeb332c48248e79865" }, - "-60296691": { + "130591054": { "version": 1, - "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" + "identifier": "d44ef730090b3bf4ad6ab93c7fc2ecd1" }, - "-57769687": { + "135923079": { "version": 1, - "identifier": "fdf02756bc1b4cfbab9c54de27d1200e" + "identifier": "aacf21dd9eb537eeb332c48248e79865" }, - "-32415901": { + "140323032": { "version": 1, - "identifier": "52989dff7cd14f00af4db7e62a220ab6" + "identifier": "ce88e51340d034eb95942143f1d177dd" }, - "-21100913": { + "143743215": { "version": 1, - "identifier": "1b7bc381cecf4f248b27ef7cc72c793a" + "identifier": "959e6e70afa63804bf6f6f003ab54adb" }, - "-18808014": { + "153476705": { "version": 1, - "identifier": "2b5656cdc77a40d09edd03abd25980fa" + "identifier": "07a1007d01053baeb0aa798f88e1a0f2" }, - "-16202236": { + "248532166": { "version": 1, - "identifier": "dd636d26b64a4ba290e3353cdeeaa47e" + "identifier": "d53648c23d853765a0662482a16a4ca3" }, - "3261602": { + "274411076": { "version": 1, - "identifier": "482680d03f254e37ad80b495cf65efd7" + "identifier": "065141ec74bd3ad8bff25e7bc18408be" }, - "8419689": { + "305678758": { "version": 1, - "identifier": "fdf02756bc1b4cfbab9c54de27d1200e" + "identifier": "b2e9c4abf2c133cab118acca6b6fe4e7" }, - "16551880": { + "346850862": { "version": 1, - "identifier": "fa20f443cbd544a38af8eb104e948cf1" + "identifier": "ce88e51340d034eb95942143f1d177dd" }, - "35908741": { + "347339085": { "version": 1, - "identifier": "a2acf0efab5a431da403e7f0becf1759" + "identifier": "b785d1f098863821a4eb6bee226c35b7" }, - "55402960": { + "350498951": { "version": 1, - "identifier": "52ff6f496cd84ddea111101fbb17177d" + "identifier": "a0e69147a1bc3b55ba88803686ee8ef8" }, - "65835106": { + "350954699": { "version": 1, - "identifier": "1b7bc381cecf4f248b27ef7cc72c793a" + "identifier": "b2e9c4abf2c133cab118acca6b6fe4e7" }, - "72371777": { + "408849612": { "version": 1, - "identifier": "9096e1f61ec545cfa1bc04fcd2a8d5ed" + "identifier": "b785d1f098863821a4eb6bee226c35b7" }, - "88316963": { + "429427545": { "version": 1, - "identifier": "35f1e149f1f84603900be6d16001433b" + "identifier": "ed014f952f6c3e1ca0d5a479e4141456" }, - "125821842": { + "446249379": { "version": 1, - "identifier": "d5537caa9d084e8db24b3ddc685001f5" + "identifier": "3e05246f5a4b37e7bd9a0b09b1706b95" }, - "175834184": { + "449449981": { "version": 1, - "identifier": "d21480430bc240f7ba60d988312099b9" + "identifier": "861111d5e78e39bcb4111b1ac713d40b" }, - "177231983": { + "473117705": { "version": 1, - "identifier": "29c13c9356e747b09af6758501fd12cc" + "identifier": "00dd0f17afad3c54a1ee3b42cbfde3f0" }, - "199727110": { + "497367507": { "version": 1, - "identifier": "2b5656cdc77a40d09edd03abd25980fa" + "identifier": "b065a65d21613f30b210668f36b99865" }, - "215231819": { + "528221851": { "version": 1, - "identifier": "52989dff7cd14f00af4db7e62a220ab6" + "identifier": "ed014f952f6c3e1ca0d5a479e4141456" }, - "243754705": { + "535236085": { "version": 1, - "identifier": "22f74d5dc562436f9104327171445dab" + "identifier": "89d35a3cb15e3664b0e5e9e5091d54c4" }, - "272078313": { + "538142841": { "version": 1, - "identifier": "5d0383d1daff4a1e92266cc00aa2cf96" + "identifier": "861111d5e78e39bcb4111b1ac713d40b" }, - "272594943": { + "582005327": { "version": 1, - "identifier": "420653785c00459994f0f541fdfc86b4" + "identifier": "d71a716e22ef33e4baa94336282c6f3b" }, - "290528794": { + "584259208": { "version": 1, - "identifier": "fa10d6092a3d4f2086245ee7f96415ae" + "identifier": "d69c0d9d83d7348bbf3ff323a450babc" }, - "307379980": { + "584568901": { "version": 1, - "identifier": "29c13c9356e747b09af6758501fd12cc" + "identifier": "065141ec74bd3ad8bff25e7bc18408be" }, - "349601449": { + "632432913": { "version": 1, - "identifier": "16ba9c1573ed4feea538ae4380385c5e" + "identifier": "d69c0d9d83d7348bbf3ff323a450babc" }, - "373866734": { + "632822913": { "version": 1, - "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" + "identifier": "0fcc8d949efd3ed594bec8171d131a4e" }, - "381292344": { + "643043431": { "version": 1, - "identifier": "9096e1f61ec545cfa1bc04fcd2a8d5ed" + "identifier": "8a812752548f33d4a7e83a2a7b4a5c80" }, - "415493956": { + "656552419": { "version": 1, - "identifier": "1628d1cdcdcd4223803a74455b0d1424" + "identifier": "d44ef730090b3bf4ad6ab93c7fc2ecd1" }, - "420315200": { + "664478574": { "version": 1, - "identifier": "2a48613754ad4ba69f0ed7cebbc7b9b3" + "identifier": "5d2e3793fc6638e98507610a19a6079f" }, - "422063867": { + "676134760": { "version": 1, - "identifier": "a0909547073e477eb5bc1bca75b75721" + "identifier": "e4d8ef54fd3834628e07fd42e79978b3" }, - "431202939": { + "684975246": { "version": 1, - "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" + "identifier": "d5d8e197ad4f353b9ba5c2856bc844e1" }, - "438228498": { + "707171019": { "version": 1, - "identifier": "e7ecc1fb3ffc414ea9a5c7a19f1a81e5" + "identifier": "8aac9641549c3663bc5fc2a1d7b652d1" }, - "449136273": { + "713982546": { "version": 1, - "identifier": "051c61bf048745a39273dfddd10e11d2" + "identifier": "d5d8e197ad4f353b9ba5c2856bc844e1" }, - "463151766": { + "755048076": { "version": 1, - "identifier": "2a48613754ad4ba69f0ed7cebbc7b9b3" + "identifier": "acf3522e534a35c2a811716eeb29c22e" }, - "469117075": { + "826319166": { "version": 1, - "identifier": "54e42cdcca514b01a4c9a7939586254d" + "identifier": "0714e1f5551736ff85cef7d9fd8c28f2" }, - "500316198": { + "826364895": { "version": 1, - "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" + "identifier": "861111d5e78e39bcb4111b1ac713d40b" }, - "520619796": { + "836074637": { "version": 1, - "identifier": "4c5eed8e352e406da8acc61e0df28bc1" + "identifier": "464294a547843ecca2be5a615b1397c0" }, - "521281547": { + "845789493": { "version": 1, - "identifier": "9fcac170b7364b3abf00d40c0b818792" + "identifier": "a11b880d043231fba4a14c9da7c86a83" }, - "537128589": { + "846443122": { "version": 1, - "identifier": "22f74d5dc562436f9104327171445dab" + "identifier": "4310bdfd3c763fb3a58edb9b4030d99f" }, - "547671016": { + "852985392": { "version": 1, - "identifier": "54e42cdcca514b01a4c9a7939586254d" + "identifier": "d44ef730090b3bf4ad6ab93c7fc2ecd1" }, - "566243735": { + "867550676": { "version": 1, - "identifier": "420653785c00459994f0f541fdfc86b4" + "identifier": "8a812752548f33d4a7e83a2a7b4a5c80" }, - "569684004": { + "895327246": { "version": 1, - "identifier": "f20ceecc3e2b40899a82d192ce298202" + "identifier": "08dfb7f3f3bf3668889accd20d27ae56" }, - "603385877": { + "914523155": { "version": 1, - "identifier": "e7ecc1fb3ffc414ea9a5c7a19f1a81e5" + "identifier": "a8fc3852f5b636bc846996f2f5fd52c4" }, - "605310974": { + "922409680": { "version": 1, - "identifier": "9096e1f61ec545cfa1bc04fcd2a8d5ed" + "identifier": "ff552a31dc9c31dfaae746915261cc0f" }, - "644305362": { + "943339311": { "version": 1, - "identifier": "fa10d6092a3d4f2086245ee7f96415ae" + "identifier": "5d2e3793fc6638e98507610a19a6079f" }, - "644652214": { + "954829692": { "version": 1, - "identifier": "1b7bc381cecf4f248b27ef7cc72c793a" + "identifier": "065141ec74bd3ad8bff25e7bc18408be" }, - "680891966": { + "962743900": { "version": 1, - "identifier": "46a7f7d340474c968ed699e0e4f90435" + "identifier": "07a1007d01053baeb0aa798f88e1a0f2" }, - "706751053": { + "1008763691": { "version": 1, - "identifier": "52ff6f496cd84ddea111101fbb17177d" + "identifier": "35a44a2979bb392b86a4d51b44b666c7" }, - "717637095": { + "1011027326": { "version": 1, - "identifier": "52ff6f496cd84ddea111101fbb17177d" + "identifier": "9f1304b5ef553bb99291561ab5fdccba" }, - "765593425": { + "1033410522": { "version": 1, - "identifier": "05b6efe52b9441f9a344605810e34675" + "identifier": "00dd0f17afad3c54a1ee3b42cbfde3f0" }, - "791059141": { + "1035110164": { "version": 1, - "identifier": "127fa9d7a9264743bfee61f1933d5f16" + "identifier": "d5d8e197ad4f353b9ba5c2856bc844e1" }, - "804925827": { + "1042604743": { "version": 1, - "identifier": "ffa9296cdae94e77b619b4864166f464" + "identifier": "89d35a3cb15e3664b0e5e9e5091d54c4" }, - "825609630": { + "1070649741": { "version": 1, - "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" + "identifier": "e4d8ef54fd3834628e07fd42e79978b3" }, - "853853100": { + "1076442160": { "version": 1, - "identifier": "d21480430bc240f7ba60d988312099b9" + "identifier": "d69c0d9d83d7348bbf3ff323a450babc" }, - "900275247": { + "1087399852": { "version": 1, - "identifier": "f20ceecc3e2b40899a82d192ce298202" + "identifier": "959e6e70afa63804bf6f6f003ab54adb" }, - "905963382": { + "1130655362": { "version": 1, - "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" + "identifier": "02211ad6f0cf359e8a6b9ca7f79329c1" }, - "919660168": { + "1149185862": { "version": 1, - "identifier": "6019d4b170f84e27b695bc228ed1794f" + "identifier": "4310bdfd3c763fb3a58edb9b4030d99f" }, - "931442005": { + "1190920924": { "version": 1, - "identifier": "a0909547073e477eb5bc1bca75b75721" + "identifier": "18da1234f4cb339d8e563665adcbaae1" }, - "938821648": { + "1201967894": { "version": 1, - "identifier": "9fcac170b7364b3abf00d40c0b818792" + "identifier": "5d2e3793fc6638e98507610a19a6079f" }, - "947588580": { + "1224529416": { "version": 1, - "identifier": "a2acf0efab5a431da403e7f0becf1759" + "identifier": "70d7e21f675633c38b057731c646283b" }, - "958502404": { + "1233480337": { "version": 1, - "identifier": "d5537caa9d084e8db24b3ddc685001f5" + "identifier": "b065a65d21613f30b210668f36b99865" }, - "958847781": { + "1240271849": { "version": 1, - "identifier": "52d9926172cb48368f001fb8af52214b" + "identifier": "00dd0f17afad3c54a1ee3b42cbfde3f0" }, - "982683634": { + "1276199166": { "version": 1, - "identifier": "52ff6f496cd84ddea111101fbb17177d" + "identifier": "d71a716e22ef33e4baa94336282c6f3b" }, - "987335772": { + "1288248433": { "version": 1, - "identifier": "05b6efe52b9441f9a344605810e34675" + "identifier": "63612b5f0daf3724b30428ee6a390e86" }, - "1021600877": { + "1300668502": { "version": 1, - "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" + "identifier": "959e6e70afa63804bf6f6f003ab54adb" }, - "1065354451": { + "1318427302": { "version": 1, - "identifier": "46a7f7d340474c968ed699e0e4f90435" + "identifier": "861111d5e78e39bcb4111b1ac713d40b" }, - "1128960391": { + "1331625336": { "version": 1, - "identifier": "29c13c9356e747b09af6758501fd12cc" + "identifier": "d44ef730090b3bf4ad6ab93c7fc2ecd1" }, - "1170633184": { + "1334054318": { "version": 1, - "identifier": "f20ceecc3e2b40899a82d192ce298202" + "identifier": "a0e69147a1bc3b55ba88803686ee8ef8" }, - "1175210918": { + "1341896786": { "version": 1, - "identifier": "5050bb85776e4993961aac6235911e73" + "identifier": "d69c0d9d83d7348bbf3ff323a450babc" }, - "1185983052": { + "1346329458": { "version": 1, - "identifier": "16ba9c1573ed4feea538ae4380385c5e" + "identifier": "35a44a2979bb392b86a4d51b44b666c7" }, - "1188548044": { + "1361550001": { "version": 1, - "identifier": "4c5eed8e352e406da8acc61e0df28bc1" + "identifier": "d5d8e197ad4f353b9ba5c2856bc844e1" }, - "1195070863": { + "1374838964": { "version": 1, - "identifier": "52d9926172cb48368f001fb8af52214b" + "identifier": "b2e9c4abf2c133cab118acca6b6fe4e7" }, - "1197700826": { + "1406091652": { "version": 1, - "identifier": "46a7f7d340474c968ed699e0e4f90435" + "identifier": "08dfb7f3f3bf3668889accd20d27ae56" }, - "1257028272": { + "1408472174": { "version": 1, - "identifier": "420653785c00459994f0f541fdfc86b4" + "identifier": "ff552a31dc9c31dfaae746915261cc0f" }, - "1280484680": { + "1420996528": { "version": 1, - "identifier": "2b5656cdc77a40d09edd03abd25980fa" + "identifier": "4f23e7a1a230318a912dbdf8f78e0aed" }, - "1282538971": { + "1442515016": { "version": 1, - "identifier": "4c5eed8e352e406da8acc61e0df28bc1" + "identifier": "464294a547843ecca2be5a615b1397c0" }, - "1287336063": { + "1444111170": { "version": 1, - "identifier": "f1240a3152a74359b9f252a4b3a070a3" + "identifier": "b065a65d21613f30b210668f36b99865" }, - "1346855286": { + "1456142202": { "version": 1, - "identifier": "420653785c00459994f0f541fdfc86b4" + "identifier": "b43de09a152b3d42ba0f628e69742db3" }, - "1347975627": { + "1479814255": { "version": 1, - "identifier": "bfe6c591f7e640ea98fe2ef4b15d2512" + "identifier": "065141ec74bd3ad8bff25e7bc18408be" }, - "1349153867": { + "1487691117": { "version": 1, - "identifier": "52989dff7cd14f00af4db7e62a220ab6" + "identifier": "ff552a31dc9c31dfaae746915261cc0f" }, - "1349167086": { + "1493252170": { "version": 1, - "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" + "identifier": "8aac9641549c3663bc5fc2a1d7b652d1" }, - "1362760029": { + "1513450563": { "version": 1, - "identifier": "f20ceecc3e2b40899a82d192ce298202" + "identifier": "ce88e51340d034eb95942143f1d177dd" }, - "1364297841": { + "1516202376": { "version": 1, - "identifier": "127fa9d7a9264743bfee61f1933d5f16" + "identifier": "00dd0f17afad3c54a1ee3b42cbfde3f0" }, - "1406041512": { + "1518368864": { "version": 1, - "identifier": "2221b89d987d4ab89f40bae7bd5623b7" + "identifier": "d1450ca53c3c3ccbb875326d4ec2d38f" }, - "1411529592": { + "1555735296": { "version": 1, - "identifier": "acbe23f8588e4d58b9cd9951a966feb1" + "identifier": "b2e9c4abf2c133cab118acca6b6fe4e7" }, - "1438665754": { + "1567793620": { "version": 1, - "identifier": "bfe6c591f7e640ea98fe2ef4b15d2512" + "identifier": "f170065c69273b4092cf73ffe2fb8a49" }, - "1501178527": { + "1573984571": { "version": 1, - "identifier": "4a4ab283e3f349b5b70d3227f1eab5ba" + "identifier": "b785d1f098863821a4eb6bee226c35b7" }, - "1501774627": { + "1579991687": { "version": 1, - "identifier": "dc6efddd3aa7485099176a8401dde8d0" + "identifier": "d1450ca53c3c3ccbb875326d4ec2d38f" }, - "1518740434": { + "1593672398": { "version": 1, - "identifier": "22f74d5dc562436f9104327171445dab" + "identifier": "0fcc8d949efd3ed594bec8171d131a4e" }, - "1535896348": { + "1602725778": { "version": 1, - "identifier": "5d0383d1daff4a1e92266cc00aa2cf96" + "identifier": "a11b880d043231fba4a14c9da7c86a83" }, - "1537728391": { + "1612739546": { "version": 1, - "identifier": "46a7f7d340474c968ed699e0e4f90435" + "identifier": "63612b5f0daf3724b30428ee6a390e86" }, - "1539129336": { + "1639399392": { "version": 1, - "identifier": "e7ecc1fb3ffc414ea9a5c7a19f1a81e5" + "identifier": "eb5a6614aa793f968ecc6426a8aaf31b" }, - "1543283713": { + "1667669984": { "version": 1, - "identifier": "16a00c00ed8a45a6ba231f8ff015c7ab" + "identifier": "d7028a8eab373a28b2a2f6109a13011d" }, - "1590725669": { + "1692521345": { "version": 1, - "identifier": "dc6efddd3aa7485099176a8401dde8d0" + "identifier": "a11b880d043231fba4a14c9da7c86a83" }, - "1648229063": { + "1696767179": { "version": 1, - "identifier": "acbe23f8588e4d58b9cd9951a966feb1" + "identifier": "a8fc3852f5b636bc846996f2f5fd52c4" }, - "1685084511": { + "1700325412": { "version": 1, - "identifier": "9fcac170b7364b3abf00d40c0b818792" + "identifier": "f170065c69273b4092cf73ffe2fb8a49" }, - "1690537268": { + "1750718921": { "version": 1, - "identifier": "a6b04dcf49e1402ba1bf2a39611fa5d8" + "identifier": "f4017d1d98933b659d6b0e2811c22a1c" }, - "1691916779": { + "1753707681": { "version": 1, - "identifier": "52d9926172cb48368f001fb8af52214b" + "identifier": "f4017d1d98933b659d6b0e2811c22a1c" }, - "1712721990": { + "1765578299": { "version": 1, - "identifier": "127fa9d7a9264743bfee61f1933d5f16" + "identifier": "a8fc3852f5b636bc846996f2f5fd52c4" }, - "1720896129": { + "1770298781": { "version": 1, - "identifier": "fa10d6092a3d4f2086245ee7f96415ae" + "identifier": "aacf21dd9eb537eeb332c48248e79865" }, - "1726686007": { + "1808790008": { "version": 1, - "identifier": "f1240a3152a74359b9f252a4b3a070a3" + "identifier": "464294a547843ecca2be5a615b1397c0" }, - "1733849187": { + "1811712400": { "version": 1, - "identifier": "52989dff7cd14f00af4db7e62a220ab6" + "identifier": "d71a716e22ef33e4baa94336282c6f3b" }, - "1743960297": { + "1821685772": { "version": 1, - "identifier": "fdf02756bc1b4cfbab9c54de27d1200e" + "identifier": "eb5a6614aa793f968ecc6426a8aaf31b" }, - "1761464193": { + "1828829657": { "version": 1, - "identifier": "a0909547073e477eb5bc1bca75b75721" + "identifier": "08dfb7f3f3bf3668889accd20d27ae56" }, - "1766120811": { + "1830498928": { "version": 1, - "identifier": "a6b04dcf49e1402ba1bf2a39611fa5d8" + "identifier": "8a812752548f33d4a7e83a2a7b4a5c80" }, - "1775006797": { + "1836162724": { "version": 1, - "identifier": "acbe23f8588e4d58b9cd9951a966feb1" + "identifier": "acf3522e534a35c2a811716eeb29c22e" }, - "1790268926": { + "1853048372": { "version": 1, - "identifier": "2221b89d987d4ab89f40bae7bd5623b7" + "identifier": "0714e1f5551736ff85cef7d9fd8c28f2" }, - "1790595837": { + "1857766797": { "version": 1, - "identifier": "133afae612e446299aaa18bcbce5ea5b" + "identifier": "70d7e21f675633c38b057731c646283b" }, - "1825130773": { + "1866065729": { "version": 1, - "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" + "identifier": "4310bdfd3c763fb3a58edb9b4030d99f" }, - "1869234683": { + "1871485982": { "version": 1, - "identifier": "ffa9296cdae94e77b619b4864166f464" + "identifier": "8a812752548f33d4a7e83a2a7b4a5c80" }, - "1883343638": { + "1892545061": { "version": 1, - "identifier": "a6b04dcf49e1402ba1bf2a39611fa5d8" + "identifier": "eb5a6614aa793f968ecc6426a8aaf31b" }, - "1884043469": { + "1894012653": { "version": 1, - "identifier": "1cbe80b1b856443db4af92494d13dd63" + "identifier": "08dfb7f3f3bf3668889accd20d27ae56" }, - "1886998754": { + "1899051478": { "version": 1, - "identifier": "46a7f7d340474c968ed699e0e4f90435" + "identifier": "55da12e6f8ea35059e783843d4733281" }, - "1916179099": { + "1907304406": { "version": 1, - "identifier": "dc6efddd3aa7485099176a8401dde8d0" + "identifier": "4310bdfd3c763fb3a58edb9b4030d99f" }, - "1922670221": { + "1907464917": { "version": 1, - "identifier": "a65c8210e79343809b68fe4ca0a5ef64" + "identifier": "9f1304b5ef553bb99291561ab5fdccba" }, - "1929014617": { + "1973184342": { "version": 1, - "identifier": "fdf02756bc1b4cfbab9c54de27d1200e" + "identifier": "acf3522e534a35c2a811716eeb29c22e" }, - "1980823314": { + "1977837486": { "version": 1, - "identifier": "a2acf0efab5a431da403e7f0becf1759" + "identifier": "a11b880d043231fba4a14c9da7c86a83" }, - "1995527170": { + "1988098064": { "version": 1, - "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" + "identifier": "e4d8ef54fd3834628e07fd42e79978b3" }, - "2003670051": { + "2002022199": { "version": 1, - "identifier": "051c61bf048745a39273dfddd10e11d2" + "identifier": "55da12e6f8ea35059e783843d4733281" }, - "2008866144": { + "2015796569": { "version": 1, - "identifier": "52ff6f496cd84ddea111101fbb17177d" + "identifier": "35a44a2979bb392b86a4d51b44b666c7" }, - "2009005246": { + "2050900322": { "version": 1, - "identifier": "d21480430bc240f7ba60d988312099b9" + "identifier": "a0e69147a1bc3b55ba88803686ee8ef8" }, - "2048190733": { + "2091004539": { "version": 1, - "identifier": "a0909547073e477eb5bc1bca75b75721" + "identifier": "3e05246f5a4b37e7bd9a0b09b1706b95" }, - "2052706394": { + "2103863933": { "version": 1, - "identifier": "2a48613754ad4ba69f0ed7cebbc7b9b3" + "identifier": "959e6e70afa63804bf6f6f003ab54adb" }, - "2065689032": { + "2105959596": { "version": 1, - "identifier": "9096e1f61ec545cfa1bc04fcd2a8d5ed" + "identifier": "e4d8ef54fd3834628e07fd42e79978b3" }, - "2092292537": { + "2108854606": { "version": 1, - "identifier": "52d9926172cb48368f001fb8af52214b" + "identifier": "f4c597fd0865329ca22e1ab30e0adf33" }, - "2096384476": { + "2111136993": { "version": 1, - "identifier": "dd636d26b64a4ba290e3353cdeeaa47e" + "identifier": "0fcc8d949efd3ed594bec8171d131a4e" }, - "2100444996": { + "2118332817": { "version": 1, - "identifier": "bfe6c591f7e640ea98fe2ef4b15d2512" + "identifier": "0714e1f5551736ff85cef7d9fd8c28f2" }, - "2127600283": { + "2143686309": { "version": 1, - "identifier": "482680d03f254e37ad80b495cf65efd7" + "identifier": "865668aadaba3511a84d8054613dd14b" } } diff --git a/tests/hash_res/fileUrlWorkers.json b/tests/hash_res/fileUrlWorkers.json index 5e6a9b5..9317d6b 100644 --- a/tests/hash_res/fileUrlWorkers.json +++ b/tests/hash_res/fileUrlWorkers.json @@ -2,463 +2,463 @@ "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_checkin.json": [ { "version": 1, - "identifier": "bfe6c591f7e640ea98fe2ef4b15d2512" + "identifier": "f4c597fd0865329ca22e1ab30e0adf33" }, { "version": 1, - "identifier": "a6b04dcf49e1402ba1bf2a39611fa5d8" + "identifier": "d7028a8eab373a28b2a2f6109a13011d" }, { "version": 1, - "identifier": "051c61bf048745a39273dfddd10e11d2" + "identifier": "55da12e6f8ea35059e783843d4733281" }, { "version": 1, - "identifier": "52ff6f496cd84ddea111101fbb17177d" + "identifier": "acf3522e534a35c2a811716eeb29c22e" }, { "version": 1, - "identifier": "16ba9c1573ed4feea538ae4380385c5e" + "identifier": "18da1234f4cb339d8e563665adcbaae1" } ], "gcs://bucket/file.txt": [ { "version": 1, - "identifier": "16ba9c1573ed4feea538ae4380385c5e" + "identifier": "ce88e51340d034eb95942143f1d177dd" }, { "version": 1, - "identifier": "482680d03f254e37ad80b495cf65efd7" + "identifier": "d53648c23d853765a0662482a16a4ca3" }, { "version": 1, - "identifier": "5d0383d1daff4a1e92266cc00aa2cf96" + "identifier": "d7028a8eab373a28b2a2f6109a13011d" }, { "version": 1, - "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" + "identifier": "b2e9c4abf2c133cab118acca6b6fe4e7" }, { "version": 1, - "identifier": "a65c8210e79343809b68fe4ca0a5ef64" + "identifier": "d69c0d9d83d7348bbf3ff323a450babc" } ], "s://ai-testing/": [ { "version": 1, - "identifier": "d5537caa9d084e8db24b3ddc685001f5" + "identifier": "89d35a3cb15e3664b0e5e9e5091d54c4" }, { "version": 1, - "identifier": "4c5eed8e352e406da8acc61e0df28bc1" + "identifier": "ed014f952f6c3e1ca0d5a479e4141456" }, { "version": 1, - "identifier": "16ba9c1573ed4feea538ae4380385c5e" + "identifier": "acf3522e534a35c2a811716eeb29c22e" }, { "version": 1, - "identifier": "9096e1f61ec545cfa1bc04fcd2a8d5ed" + "identifier": "02211ad6f0cf359e8a6b9ca7f79329c1" }, { "version": 1, - "identifier": "f20ceecc3e2b40899a82d192ce298202" + "identifier": "d5d8e197ad4f353b9ba5c2856bc844e1" } ], "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_review.json": [ { "version": 1, - "identifier": "52989dff7cd14f00af4db7e62a220ab6" + "identifier": "d53648c23d853765a0662482a16a4ca3" }, { "version": 1, - "identifier": "d21480430bc240f7ba60d988312099b9" + "identifier": "d1450ca53c3c3ccbb875326d4ec2d38f" }, { "version": 1, - "identifier": "dc6efddd3aa7485099176a8401dde8d0" + "identifier": "4310bdfd3c763fb3a58edb9b4030d99f" }, { "version": 1, - "identifier": "acbe23f8588e4d58b9cd9951a966feb1" + "identifier": "d7028a8eab373a28b2a2f6109a13011d" }, { "version": 1, - "identifier": "5d0383d1daff4a1e92266cc00aa2cf96" + "identifier": "0714e1f5551736ff85cef7d9fd8c28f2" } ], "s3://bucket/path/to/dir": [ { "version": 1, - "identifier": "2221b89d987d4ab89f40bae7bd5623b7" + "identifier": "464294a547843ecca2be5a615b1397c0" }, { "version": 1, - "identifier": "dc6efddd3aa7485099176a8401dde8d0" + "identifier": "0fcc8d949efd3ed594bec8171d131a4e" }, { "version": 1, - "identifier": "2b5656cdc77a40d09edd03abd25980fa" + "identifier": "d71a716e22ef33e4baa94336282c6f3b" }, { "version": 1, - "identifier": "35f1e149f1f84603900be6d16001433b" + "identifier": "e4d8ef54fd3834628e07fd42e79978b3" }, { "version": 1, - "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" + "identifier": "5d2e3793fc6638e98507610a19a6079f" } ], "hdfs://host:port/path/to/file": [ { "version": 1, - "identifier": "5d0383d1daff4a1e92266cc00aa2cf96" + "identifier": "b785d1f098863821a4eb6bee226c35b7" }, { "version": 1, - "identifier": "1628d1cdcdcd4223803a74455b0d1424" + "identifier": "d7028a8eab373a28b2a2f6109a13011d" }, { "version": 1, - "identifier": "a65c8210e79343809b68fe4ca0a5ef64" + "identifier": "4f23e7a1a230318a912dbdf8f78e0aed" }, { "version": 1, - "identifier": "ffa9296cdae94e77b619b4864166f464" + "identifier": "d1450ca53c3c3ccbb875326d4ec2d38f" }, { "version": 1, - "identifier": "acbe23f8588e4d58b9cd9951a966feb1" + "identifier": "959e6e70afa63804bf6f6f003ab54adb" } ], "wasbs://container@account.blob.core.windows.net/dir": [ { "version": 1, - "identifier": "29c13c9356e747b09af6758501fd12cc" + "identifier": "b2e9c4abf2c133cab118acca6b6fe4e7" }, { "version": 1, - "identifier": "420653785c00459994f0f541fdfc86b4" + "identifier": "d44ef730090b3bf4ad6ab93c7fc2ecd1" }, { "version": 1, - "identifier": "ffa9296cdae94e77b619b4864166f464" + "identifier": "0714e1f5551736ff85cef7d9fd8c28f2" }, { "version": 1, - "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" + "identifier": "d71a716e22ef33e4baa94336282c6f3b" }, { "version": 1, - "identifier": "2b5656cdc77a40d09edd03abd25980fa" + "identifier": "02211ad6f0cf359e8a6b9ca7f79329c1" } ], "gs://bucket/file.txt": [ { "version": 1, - "identifier": "52ff6f496cd84ddea111101fbb17177d" + "identifier": "35a44a2979bb392b86a4d51b44b666c7" }, { "version": 1, - "identifier": "dc6efddd3aa7485099176a8401dde8d0" + "identifier": "acf3522e534a35c2a811716eeb29c22e" }, { "version": 1, - "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" + "identifier": "d7028a8eab373a28b2a2f6109a13011d" }, { "version": 1, - "identifier": "6019d4b170f84e27b695bc228ed1794f" + "identifier": "b065a65d21613f30b210668f36b99865" }, { "version": 1, - "identifier": "2221b89d987d4ab89f40bae7bd5623b7" + "identifier": "8aac9641549c3663bc5fc2a1d7b652d1" } ], "s3://ai-ref-arch/yelp-review/yelp_review_sample_large.csv": [ { "version": 1, - "identifier": "acbe23f8588e4d58b9cd9951a966feb1" + "identifier": "eb5a6614aa793f968ecc6426a8aaf31b" }, { "version": 1, - "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" + "identifier": "d53648c23d853765a0662482a16a4ca3" }, { "version": 1, - "identifier": "a65c8210e79343809b68fe4ca0a5ef64" + "identifier": "1ae5694808e43da58ba98374c7e51190" }, { "version": 1, - "identifier": "46a7f7d340474c968ed699e0e4f90435" + "identifier": "e4d8ef54fd3834628e07fd42e79978b3" }, { "version": 1, - "identifier": "f20ceecc3e2b40899a82d192ce298202" + "identifier": "d69c0d9d83d7348bbf3ff323a450babc" } ], "s3://ai-ref-arch/yelp-review/model.pt": [ { "version": 1, - "identifier": "133afae612e446299aaa18bcbce5ea5b" + "identifier": "b43de09a152b3d42ba0f628e69742db3" }, { "version": 1, - "identifier": "52ff6f496cd84ddea111101fbb17177d" + "identifier": "35a44a2979bb392b86a4d51b44b666c7" }, { "version": 1, - "identifier": "1628d1cdcdcd4223803a74455b0d1424" + "identifier": "b785d1f098863821a4eb6bee226c35b7" }, { "version": 1, - "identifier": "d5537caa9d084e8db24b3ddc685001f5" + "identifier": "1ae5694808e43da58ba98374c7e51190" }, { "version": 1, - "identifier": "f20ceecc3e2b40899a82d192ce298202" + "identifier": "8a812752548f33d4a7e83a2a7b4a5c80" } ], "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_business.json": [ { "version": 1, - "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" + "identifier": "eb5a6614aa793f968ecc6426a8aaf31b" }, { "version": 1, - "identifier": "35f1e149f1f84603900be6d16001433b" + "identifier": "18da1234f4cb339d8e563665adcbaae1" }, { "version": 1, - "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" + "identifier": "d7028a8eab373a28b2a2f6109a13011d" }, { "version": 1, - "identifier": "16a00c00ed8a45a6ba231f8ff015c7ab" + "identifier": "b43de09a152b3d42ba0f628e69742db3" }, { "version": 1, - "identifier": "9096e1f61ec545cfa1bc04fcd2a8d5ed" + "identifier": "55da12e6f8ea35059e783843d4733281" } ], "hdfs://namenode:8020/user/hadoop/file.txt": [ { "version": 1, - "identifier": "acbe23f8588e4d58b9cd9951a966feb1" + "identifier": "eb5a6614aa793f968ecc6426a8aaf31b" }, { "version": 1, - "identifier": "6019d4b170f84e27b695bc228ed1794f" + "identifier": "a8fc3852f5b636bc846996f2f5fd52c4" }, { "version": 1, - "identifier": "a6b04dcf49e1402ba1bf2a39611fa5d8" + "identifier": "d7028a8eab373a28b2a2f6109a13011d" }, { "version": 1, - "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" + "identifier": "63612b5f0daf3724b30428ee6a390e86" }, { "version": 1, - "identifier": "e7ecc1fb3ffc414ea9a5c7a19f1a81e5" + "identifier": "8a812752548f33d4a7e83a2a7b4a5c80" } ], "gs://bucket/dir": [ { "version": 1, - "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" + "identifier": "b065a65d21613f30b210668f36b99865" }, { "version": 1, - "identifier": "d5537caa9d084e8db24b3ddc685001f5" + "identifier": "065141ec74bd3ad8bff25e7bc18408be" }, { "version": 1, - "identifier": "35f1e149f1f84603900be6d16001433b" + "identifier": "07a1007d01053baeb0aa798f88e1a0f2" }, { "version": 1, - "identifier": "fa20f443cbd544a38af8eb104e948cf1" + "identifier": "1ae5694808e43da58ba98374c7e51190" }, { "version": 1, - "identifier": "4a4ab283e3f349b5b70d3227f1eab5ba" + "identifier": "ff552a31dc9c31dfaae746915261cc0f" } ], "gcs://bucket/dir": [ { "version": 1, - "identifier": "2a48613754ad4ba69f0ed7cebbc7b9b3" + "identifier": "eb5a6614aa793f968ecc6426a8aaf31b" }, { "version": 1, - "identifier": "2b5656cdc77a40d09edd03abd25980fa" + "identifier": "18da1234f4cb339d8e563665adcbaae1" }, { "version": 1, - "identifier": "2221b89d987d4ab89f40bae7bd5623b7" + "identifier": "f4017d1d98933b659d6b0e2811c22a1c" }, { "version": 1, - "identifier": "e7ecc1fb3ffc414ea9a5c7a19f1a81e5" + "identifier": "d69c0d9d83d7348bbf3ff323a450babc" }, { "version": 1, - "identifier": "4c5eed8e352e406da8acc61e0df28bc1" + "identifier": "ed014f952f6c3e1ca0d5a479e4141456" } ], "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_user.json": [ { "version": 1, - "identifier": "1628d1cdcdcd4223803a74455b0d1424" + "identifier": "ed014f952f6c3e1ca0d5a479e4141456" }, { "version": 1, - "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" + "identifier": "4f23e7a1a230318a912dbdf8f78e0aed" }, { "version": 1, - "identifier": "f20ceecc3e2b40899a82d192ce298202" + "identifier": "3e05246f5a4b37e7bd9a0b09b1706b95" }, { "version": 1, - "identifier": "dc6efddd3aa7485099176a8401dde8d0" + "identifier": "b785d1f098863821a4eb6bee226c35b7" }, { "version": 1, - "identifier": "d21480430bc240f7ba60d988312099b9" + "identifier": "d53648c23d853765a0662482a16a4ca3" } ], "s3://bucket/path/to/file": [ { "version": 1, - "identifier": "ffa9296cdae94e77b619b4864166f464" + "identifier": "0714e1f5551736ff85cef7d9fd8c28f2" }, { "version": 1, - "identifier": "a0909547073e477eb5bc1bca75b75721" + "identifier": "a0e69147a1bc3b55ba88803686ee8ef8" }, { "version": 1, - "identifier": "22f74d5dc562436f9104327171445dab" + "identifier": "b43de09a152b3d42ba0f628e69742db3" }, { "version": 1, - "identifier": "133afae612e446299aaa18bcbce5ea5b" + "identifier": "464294a547843ecca2be5a615b1397c0" }, { "version": 1, - "identifier": "2221b89d987d4ab89f40bae7bd5623b7" + "identifier": "4f23e7a1a230318a912dbdf8f78e0aed" } ], "hdfs://host:port/path/to/dir": [ { "version": 1, - "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" + "identifier": "d71a716e22ef33e4baa94336282c6f3b" }, { "version": 1, - "identifier": "fa20f443cbd544a38af8eb104e948cf1" + "identifier": "eb5a6614aa793f968ecc6426a8aaf31b" }, { "version": 1, - "identifier": "29c13c9356e747b09af6758501fd12cc" + "identifier": "8aac9641549c3663bc5fc2a1d7b652d1" }, { "version": 1, - "identifier": "fa10d6092a3d4f2086245ee7f96415ae" + "identifier": "b2e9c4abf2c133cab118acca6b6fe4e7" }, { "version": 1, - "identifier": "ffa9296cdae94e77b619b4864166f464" + "identifier": "d69c0d9d83d7348bbf3ff323a450babc" } ], "s3://ai-ref-arch/yelp-review/yelp_academic_dataset_tip.json": [ { "version": 1, - "identifier": "a0909547073e477eb5bc1bca75b75721" + "identifier": "5d2e3793fc6638e98507610a19a6079f" }, { "version": 1, - "identifier": "4a4ab283e3f349b5b70d3227f1eab5ba" + "identifier": "d9824b27273034f69ddf0369b907de1e" }, { "version": 1, - "identifier": "420653785c00459994f0f541fdfc86b4" + "identifier": "35a44a2979bb392b86a4d51b44b666c7" }, { "version": 1, - "identifier": "a65c8210e79343809b68fe4ca0a5ef64" + "identifier": "d7028a8eab373a28b2a2f6109a13011d" }, { "version": 1, - "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" + "identifier": "8aac9641549c3663bc5fc2a1d7b652d1" } ], "hdfs://namenode:8020/user/hadoop/dir": [ { "version": 1, - "identifier": "dc6efddd3aa7485099176a8401dde8d0" + "identifier": "865668aadaba3511a84d8054613dd14b" }, { "version": 1, - "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" + "identifier": "e4d8ef54fd3834628e07fd42e79978b3" }, { "version": 1, - "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" + "identifier": "b065a65d21613f30b210668f36b99865" }, { "version": 1, - "identifier": "d21480430bc240f7ba60d988312099b9" + "identifier": "aacf21dd9eb537eeb332c48248e79865" }, { "version": 1, - "identifier": "9096e1f61ec545cfa1bc04fcd2a8d5ed" + "identifier": "b785d1f098863821a4eb6bee226c35b7" } ], "s3://ai-ref-arch/yelp-review/yelp_review_sample.csv": [ { "version": 1, - "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" + "identifier": "ff552a31dc9c31dfaae746915261cc0f" }, { "version": 1, - "identifier": "29c13c9356e747b09af6758501fd12cc" + "identifier": "b2e9c4abf2c133cab118acca6b6fe4e7" }, { "version": 1, - "identifier": "d21480430bc240f7ba60d988312099b9" + "identifier": "aacf21dd9eb537eeb332c48248e79865" }, { "version": 1, - "identifier": "54e42cdcca514b01a4c9a7939586254d" + "identifier": "0fcc8d949efd3ed594bec8171d131a4e" }, { "version": 1, - "identifier": "52ff6f496cd84ddea111101fbb17177d" + "identifier": "f4017d1d98933b659d6b0e2811c22a1c" } ], "wasbs://container@account.blob.core.windows.net/file.txt": [ { "version": 1, - "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" + "identifier": "d7028a8eab373a28b2a2f6109a13011d" }, { "version": 1, - "identifier": "9fcac170b7364b3abf00d40c0b818792" + "identifier": "63612b5f0daf3724b30428ee6a390e86" }, { "version": 1, - "identifier": "a2acf0efab5a431da403e7f0becf1759" + "identifier": "acf3522e534a35c2a811716eeb29c22e" }, { "version": 1, - "identifier": "2221b89d987d4ab89f40bae7bd5623b7" + "identifier": "865668aadaba3511a84d8054613dd14b" }, { "version": 1, - "identifier": "5050bb85776e4993961aac6235911e73" + "identifier": "b2e9c4abf2c133cab118acca6b6fe4e7" } ] } diff --git a/tests/hash_res/workerList.json b/tests/hash_res/workerList.json index 656aaf6..30106e2 100644 --- a/tests/hash_res/workerList.json +++ b/tests/hash_res/workerList.json @@ -1,202 +1,202 @@ [ { "version": 1, - "identifier": "482680d03f254e37ad80b495cf65efd7" + "identifier": "b785d1f098863821a4eb6bee226c35b7" }, { "version": 1, - "identifier": "bfe6c591f7e640ea98fe2ef4b15d2512" + "identifier": "065141ec74bd3ad8bff25e7bc18408be" }, { "version": 1, - "identifier": "d5537caa9d084e8db24b3ddc685001f5" + "identifier": "8a812752548f33d4a7e83a2a7b4a5c80" }, { "version": 1, - "identifier": "a0909547073e477eb5bc1bca75b75721" + "identifier": "3e05246f5a4b37e7bd9a0b09b1706b95" }, { "version": 1, - "identifier": "ffa9296cdae94e77b619b4864166f464" + "identifier": "35a44a2979bb392b86a4d51b44b666c7" }, { "version": 1, - "identifier": "4c5eed8e352e406da8acc61e0df28bc1" + "identifier": "55da12e6f8ea35059e783843d4733281" }, { "version": 1, - "identifier": "46a7f7d340474c968ed699e0e4f90435" + "identifier": "a11b880d043231fba4a14c9da7c86a83" }, { "version": 1, - "identifier": "4bd9dbe76cbc4c93bb5efd245c98fc92" + "identifier": "4310bdfd3c763fb3a58edb9b4030d99f" }, { "version": 1, - "identifier": "127fa9d7a9264743bfee61f1933d5f16" + "identifier": "d5d8e197ad4f353b9ba5c2856bc844e1" }, { "version": 1, - "identifier": "f1240a3152a74359b9f252a4b3a070a3" + "identifier": "ed014f952f6c3e1ca0d5a479e4141456" }, { "version": 1, - "identifier": "1b7bc381cecf4f248b27ef7cc72c793a" + "identifier": "b065a65d21613f30b210668f36b99865" }, { "version": 1, - "identifier": "9096e1f61ec545cfa1bc04fcd2a8d5ed" + "identifier": "89d35a3cb15e3664b0e5e9e5091d54c4" }, { "version": 1, - "identifier": "2b5656cdc77a40d09edd03abd25980fa" + "identifier": "ff552a31dc9c31dfaae746915261cc0f" }, { "version": 1, - "identifier": "a6b04dcf49e1402ba1bf2a39611fa5d8" + "identifier": "8aac9641549c3663bc5fc2a1d7b652d1" }, { "version": 1, - "identifier": "2221b89d987d4ab89f40bae7bd5623b7" + "identifier": "1ae5694808e43da58ba98374c7e51190" }, { "version": 1, - "identifier": "9fcac170b7364b3abf00d40c0b818792" + "identifier": "a8fc3852f5b636bc846996f2f5fd52c4" }, { "version": 1, - "identifier": "5050bb85776e4993961aac6235911e73" + "identifier": "70d7e21f675633c38b057731c646283b" }, { "version": 1, - "identifier": "29c13c9356e747b09af6758501fd12cc" + "identifier": "861111d5e78e39bcb4111b1ac713d40b" }, { "version": 1, - "identifier": "1cbe80b1b856443db4af92494d13dd63" + "identifier": "464294a547843ecca2be5a615b1397c0" }, { "version": 1, - "identifier": "fa20f443cbd544a38af8eb104e948cf1" + "identifier": "0fcc8d949efd3ed594bec8171d131a4e" }, { "version": 1, - "identifier": "f0bdf0f9d0c2431fb49c0096a8af2fec" + "identifier": "acf3522e534a35c2a811716eeb29c22e" }, { "version": 1, - "identifier": "54e42cdcca514b01a4c9a7939586254d" + "identifier": "02211ad6f0cf359e8a6b9ca7f79329c1" }, { "version": 1, - "identifier": "4a4ab283e3f349b5b70d3227f1eab5ba" + "identifier": "d44ef730090b3bf4ad6ab93c7fc2ecd1" }, { "version": 1, - "identifier": "dd636d26b64a4ba290e3353cdeeaa47e" + "identifier": "d1450ca53c3c3ccbb875326d4ec2d38f" }, { "version": 1, - "identifier": "75ff6a85704f471fa177cf44ccaf7c4a" + "identifier": "d71a716e22ef33e4baa94336282c6f3b" }, { "version": 1, - "identifier": "16a00c00ed8a45a6ba231f8ff015c7ab" + "identifier": "08dfb7f3f3bf3668889accd20d27ae56" }, { "version": 1, - "identifier": "e7ecc1fb3ffc414ea9a5c7a19f1a81e5" + "identifier": "0714e1f5551736ff85cef7d9fd8c28f2" }, { "version": 1, - "identifier": "2d4dd1ce2b334683ad6c5ac15875336e" + "identifier": "b43de09a152b3d42ba0f628e69742db3" }, { "version": 1, - "identifier": "a65c8210e79343809b68fe4ca0a5ef64" + "identifier": "d53648c23d853765a0662482a16a4ca3" }, { "version": 1, - "identifier": "051c61bf048745a39273dfddd10e11d2" + "identifier": "00dd0f17afad3c54a1ee3b42cbfde3f0" }, { "version": 1, - "identifier": "05b6efe52b9441f9a344605810e34675" + "identifier": "b2e9c4abf2c133cab118acca6b6fe4e7" }, { "version": 1, - "identifier": "a2acf0efab5a431da403e7f0becf1759" + "identifier": "e4d8ef54fd3834628e07fd42e79978b3" }, { "version": 1, - "identifier": "52989dff7cd14f00af4db7e62a220ab6" + "identifier": "aacf21dd9eb537eeb332c48248e79865" }, { "version": 1, - "identifier": "fdf02756bc1b4cfbab9c54de27d1200e" + "identifier": "865668aadaba3511a84d8054613dd14b" }, { "version": 1, - "identifier": "22f74d5dc562436f9104327171445dab" + "identifier": "959e6e70afa63804bf6f6f003ab54adb" }, { "version": 1, - "identifier": "2a48613754ad4ba69f0ed7cebbc7b9b3" + "identifier": "d69c0d9d83d7348bbf3ff323a450babc" }, { "version": 1, - "identifier": "dc6efddd3aa7485099176a8401dde8d0" + "identifier": "ce88e51340d034eb95942143f1d177dd" }, { "version": 1, - "identifier": "acbe23f8588e4d58b9cd9951a966feb1" + "identifier": "d9824b27273034f69ddf0369b907de1e" }, { "version": 1, - "identifier": "35f1e149f1f84603900be6d16001433b" + "identifier": "a0e69147a1bc3b55ba88803686ee8ef8" }, { "version": 1, - "identifier": "133afae612e446299aaa18bcbce5ea5b" + "identifier": "07a1007d01053baeb0aa798f88e1a0f2" }, { "version": 1, - "identifier": "d21480430bc240f7ba60d988312099b9" + "identifier": "f4c597fd0865329ca22e1ab30e0adf33" }, { "version": 1, - "identifier": "52d9926172cb48368f001fb8af52214b" + "identifier": "5d2e3793fc6638e98507610a19a6079f" }, { "version": 1, - "identifier": "52ff6f496cd84ddea111101fbb17177d" + "identifier": "18da1234f4cb339d8e563665adcbaae1" }, { "version": 1, - "identifier": "f20ceecc3e2b40899a82d192ce298202" + "identifier": "f170065c69273b4092cf73ffe2fb8a49" }, { "version": 1, - "identifier": "1628d1cdcdcd4223803a74455b0d1424" + "identifier": "f4017d1d98933b659d6b0e2811c22a1c" }, { "version": 1, - "identifier": "fa10d6092a3d4f2086245ee7f96415ae" + "identifier": "63612b5f0daf3724b30428ee6a390e86" }, { "version": 1, - "identifier": "420653785c00459994f0f541fdfc86b4" + "identifier": "d7028a8eab373a28b2a2f6109a13011d" }, { "version": 1, - "identifier": "5d0383d1daff4a1e92266cc00aa2cf96" + "identifier": "4f23e7a1a230318a912dbdf8f78e0aed" }, { "version": 1, - "identifier": "16ba9c1573ed4feea538ae4380385c5e" + "identifier": "eb5a6614aa793f968ecc6426a8aaf31b" }, { "version": 1, - "identifier": "6019d4b170f84e27b695bc228ed1794f" + "identifier": "9f1304b5ef553bb99291561ab5fdccba" } ] diff --git a/tests/test_worker_hash_ring.py b/tests/test_worker_hash_ring.py index 9d66c89..edde791 100644 --- a/tests/test_worker_hash_ring.py +++ b/tests/test_worker_hash_ring.py @@ -6,10 +6,19 @@ def test_hash_ring(): + worker_hostnames_path = "tests/hash_res/workerHostnames.json" + with open(worker_hostnames_path, "r") as file: + worker_hostnames = json.load(file) + hash_provider = ConsistentHashProvider( + worker_hosts=", ".join(worker_hostnames), hash_node_per_worker=5, etcd_refresh_workers_interval=100000000, ) + + hash_ring_path = "tests/hash_res/activeNodesMap.json" + validate_hash_ring(hash_provider.hash_ring, hash_ring_path) + worker_list_path = "tests/hash_res/workerList.json" with open(worker_list_path, "r") as file: workers_data = json.load(file) @@ -20,15 +29,33 @@ def test_hash_ring(): version=int(worker_data["version"]), identifier=bytes.fromhex(worker_data["identifier"]), ) - # Assuming you want to use a default WorkerNetAddress for each WorkerIdentity - default_worker_net_address = WorkerNetAddress() # Using default values + default_worker_net_address = WorkerNetAddress() worker_info_map[worker_identity] = default_worker_net_address hash_provider._update_hash_ring(worker_info_map) - current_ring = hash_provider.hash_ring + validate_hash_ring(hash_provider.hash_ring, hash_ring_path) - hash_ring_path = "tests/hash_res/activeNodesMap.json" - with open(hash_ring_path, "r") as file: + file_workers_path = "tests/hash_res/fileUrlWorkers.json" + with open(file_workers_path, "r") as file: + file_workers_data = json.load(file) + + for ufs_url, workers in file_workers_data.items(): + current_worker_identities = ( + hash_provider._get_multiple_worker_identities(ufs_url, 5) + ) + original_set = { + (worker["version"], bytes.fromhex(worker["identifier"])) + for worker in workers + } + current_set = { + (worker.version, worker.identifier) + for worker in current_worker_identities + } + assert original_set == current_set + + +def validate_hash_ring(current_ring, result_file_path): + with open(result_file_path, "r") as file: hash_ring_data = json.load(file) not_found_count = 0 @@ -55,21 +82,3 @@ def test_hash_ring(): not_found_count == 0 ), "Some hash keys were not found in the current ring" assert mismatch_count == 0, "Some hash keys had mismatched WorkerIdentity" - - file_workers_path = "tests/hash_res/fileUrlWorkers.json" - with open(file_workers_path, "r") as file: - file_workers_data = json.load(file) - - for ufs_url, workers in file_workers_data.items(): - current_worker_identities = ( - hash_provider._get_multiple_worker_identities(ufs_url, 5) - ) - original_set = { - (worker["version"], bytes.fromhex(worker["identifier"])) - for worker in workers - } - current_set = { - (worker.version, worker.identifier) - for worker in current_worker_identities - } - assert original_set == current_set