Considerations

The following considerations should be taken into account while implementing this pattern:

  • Partitioning Strategy: Choosing a partition strategy is the key to efficiently balance load across multiple partitions. Following are few of the partitioning strategies which can be considered:
    • Horizontal Partitioning (Sharding)
    • Vertical Partitioning
    • Functional Partitioning

Data Partitioning guidelines published by Microsoft (https://msdn.microsoft.com/en-us/library/dn589795.aspx) is a good reference document to understand these strategies.

  • Data replication: It is advisable to replicate static data and commonly used data across data partitions to avoid cross partition queries which can be resource consuming.
  • Rebalancing: Always plan for rebalancing tasks for the partitions which may be required as the partitions age. Rebalancing may cause system downtime.
  • Referential integrity: Consider moving the ownership of referential integrity to the application layer instead of the database layer to avoid cross partition queries
  • Transactions: It is advisable to avoid transactions which access data across partitions as this may introduce performance bottlenecks
  • Consistency: When data is replicated across partitions, it is important to decide on a consistency strategy. You will need to decide if your application requires strong consistency or if it can manage with eventual consistency
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.137.217.151