Esempio n. 1
0
 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
Esempio n. 2
0
 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
Esempio n. 3
0
 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
Esempio n. 4
0
    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
Esempio n. 5
0
    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
Esempio n. 6
0
    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