HashPartitionResolver Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Caution
Support for IPartitionResolver based classes is now obsolete. It's recommended that you use partitioned collections for higher storage and throughput.
HashPartitionResolver implements partitioning based on the value of a hash function, allowing you to evenly distribute requests and data across a number of partitions in the Azure Cosmos DB service.
[System.Obsolete("Support for IPartitionResolver based classes is now obsolete. It's recommended that you use partitioned collections for higher storage and throughput.")]
public class HashPartitionResolver : IDisposable, Microsoft.Azure.Documents.Client.IPartitionResolver
[<System.Obsolete("Support for IPartitionResolver based classes is now obsolete. It's recommended that you use partitioned collections for higher storage and throughput.")>]
type HashPartitionResolver = class
interface IPartitionResolver
interface IDisposable
Public Class HashPartitionResolver
Implements IDisposable, IPartitionResolver
- Inheritance
-
HashPartitionResolver
- Attributes
- Implements
Remarks
Support for IPartitionResolver based classes is now obsolete. It's recommended that you use Partitioned Collections for higher storage and throughput.
The HashPartitionResolver class internally implements a consistent hash ring over the hash function specified in the IHashGenerator interface. By default, the HashPartitionResolver provides an MD5 hash function, but this can be swapped out with a different hashing implementation. The consistent hash ring creates 16 replicas for each collection in order to achieve a more uniform distribution of documents across collections.
The hash partitioning is most suitable for partitioning when the partition key has a high cardinality because it will distribute the data evenly across collections. Typically hash partitioning uses the id property. A common use cases for hash partitioning is data produced or consumed from a large number of distinct clients or for storing user profiles, catalog items, and telemetry data.
Constructors
HashPartitionResolver(Func<Object,String>, IEnumerable<String>, Int32, IHashGenerator) |
Initializes a new instance of the HashPartitionResolver in the Azure Cosmos DB service using the specified |
HashPartitionResolver(String, IEnumerable<String>, Int32, IHashGenerator) |
Initializes a new instance of the HashPartitionResolver in the Azure Cosmos DB service using the specified |
Properties
CollectionLinks |
Gets the IEnumerable of collection links used for hashing in the Azure Cosmos DB service. |
HashGenerator |
Gets the HashGenerator used in consistent hashing. |
NumberOfVirtualNodesPerCollection |
The number of virtual nodes per collection in the conisistent hash ring in the Azure Cosmos DB service. This controls the compromise of skewness of documents accross collections vs the consistent hashing latency. |
PartitionKeyExtractor |
Gets the function to extract the partition key from an object in the Azure Cosmos DB service. |
PartitionKeyPropertyName |
Gets the name of the property in the document to execute the hashing on in the Azure Cosmos DB service. |
Methods
Dispose() |
Disposes the resolver in the Azure Cosmos DB service. |
GetPartitionKey(Object) |
Extracts the partition key from the specified document using the specified PartitionKeyPropertyName property or PartitionKeyExtractor function in order of preference in the Azure Cosmos DB service. |
ResolveForCreate(Object) |
Given a partition key, returns the collection self-link for creating a document in the Azure Cosmos DB service. |
ResolveForRead(Object) |
Given a partition key, returns a list of collection links to read from using its hash in the Azure Cosmos DB service. |