Partitioning
Utilize partitioning to circumvent constraints in databases, networks, and computation.
Ways to partition include:
- Dividing databases to bypass size or I/O limits.
- Splitting queues or message buses to avoid request or connection constraints.
- Segmenting web apps to overcome instance limits.
Database partitioning methods are horizontal, vertical, or functional:
- Horizontal, or sharding, divides data by subsets with the same schema.
- Vertical splits data fields into subsets based on access frequency.
- Functional partitions data by its usage in each system context.
Ensure even load distribution by designing partition keys to avoid bottlenecks. Choose keys wisely to distribute load uniformly. Partitioning should address both service and subscription limits.
Consider partitioning at various levels like database servers, VMs, and storage. Each level has its own constraints. Prioritize lower-level partitioning for easier management. Reserve subscription-level partitioning for large applications.