def get_database_for_doc(doc_id): """ :return: Django DB alias in which the doc should be stored """ shard_map = partition_config.get_django_shard_map() part_mask = len(shard_map) - 1 hash_ = ShardAccessor.hash_doc_id_python(doc_id) shard_id = hash_ & part_mask return shard_map[shard_id].django_dbname
def get_database_for_doc(doc_id): """ :return: Django DB alias in which the doc should be stored """ assert settings.USE_PARTITIONED_DATABASE, """Partitioned DB not in use, consider using `corehq.sql_db.get_db_alias_for_partitioned_doc` instead""" shard_map = partition_config.get_django_shard_map() part_mask = len(shard_map) - 1 hash_ = ShardAccessor.hash_doc_id_python(doc_id) shard_id = hash_ & part_mask return shard_map[shard_id].django_dbname
def get_database_for_docs(doc_ids): """ :param doc_ids: :return: Dict of ``doc_id -> Django DB alias`` """ databases = {} shard_map = partition_config.get_django_shard_map() part_mask = len(shard_map) - 1 for chunk in chunked(doc_ids, 100): hashes = ShardAccessor.hash_doc_ids_python(chunk) shards = {doc_id: hash_ & part_mask for doc_id, hash_ in hashes.items()} databases.update({ doc_id: shard_map[shard_id].django_dbname for doc_id, shard_id in shards.items() }) return databases
def get_database_for_docs(doc_ids): """ :param doc_ids: :return: Dict of ``doc_id -> Django DB alias`` """ assert settings.USE_PARTITIONED_DATABASE, """Partitioned DB not in use, consider using `corehq.sql_db.get_db_alias_for_partitioned_doc` instead""" databases = {} shard_map = partition_config.get_django_shard_map() part_mask = len(shard_map) - 1 for chunk in chunked(doc_ids, 100): hashes = ShardAccessor.hash_doc_ids_python(chunk) shards = {doc_id: hash_ & part_mask for doc_id, hash_ in hashes.items()} databases.update({ doc_id: shard_map[shard_id].django_dbname for doc_id, shard_id in shards.items() }) return databases