सामग्री पर जाएँ
← Cosmos DB overview पर वापस
Killer #3

Hot Partition Detector

Cosmos को partition key की आवश्यकता है। बुरा विकल्प = एक partition 60% docs + 90% RU रखती है = peak पर throttle। आज DBA तब पता लगाता है जब ऐप गिर जाता है। Hot Partition Detector partition key के अनुसार एक $group चलाता है, प्रति partition doc count + estimated RU मापता है, इसे एक रंगीन heatmap (cool blue → hot red) में plot करता है, और top partition में total का > 40% होने पर alert fire करता है।

ऐप में यह कहाँ रहता है: Tools → Cosmos DB → Hot Partition Detector

यह क्या करता है

  • चुनी गई collection के विरुद्ध $group + $bsonSize aggregation।
  • Doc count के अनुसार progressive colors (cool → hot) के साथ visual heatmap।
  • Share % + estimated RU/दिन के साथ Top-20 partitions।
  • Skew alert: severe (>40%) / moderate (>20%) / ok (<20%)।
  • Cardinality + uniformity के आधार पर वैकल्पिक partition key का पाठ्य सुझाव।

चरण-दर-चरण

  1. 1

    Detector खोलें और collection चुनें

    Tools → Cosmos DB → Hot Partition Detector। Namespace (जैसे `app.orders`) और partition key path (जैसे `tenantId`) डालें।

  2. 2

    Scan

    Size के आधार पर ~5-30s में agg चलाता है। Limit 200 partitions; बहुत बड़ी collections के लिए, sub-range द्वारा दोहराएँ।

  3. 3

    Heatmap पढ़ें

    प्रत्येक cell = एक partition key value। रंग = सापेक्ष doc count। Hover सटीक value दिखाता है।

  4. 4

    निर्णय लें

    यदि severe skew detected है, तो विचार करें: (a) composite partition key (`tenantId+region`), (b) synthetic hash key (`hash(naturalKey) mod N`), (c) collection का logical split। पहले परिवर्तन का simulate करने के लिए WHAT-IF Lab का उपयोग करें।

वास्तविक use cases

Enterprise client हावी

B2B SaaS ने पता लगाया कि client "ACME Corp" `events` collection के 73% docs रखता था। Composite `tenantId+eventBucket` पर migrate किया (bucket = hash(eventId) mod 10)। अंतिम वितरण: सबसे बड़ी partition 4.2%।

Partition key के रूप में Timestamp (anti-pattern)

Team `date` को partition key के रूप में उपयोग कर रही थी। Heatmap ने दिखाया कि अंतिम दिन throughput का 90% लोड कर रहा था। `tenantId` + query में date द्वारा ordering पर migrate किया। p99 -45%।

FAQ

क्या यह > 10M docs वाली collections के लिए काम नहीं करता?

काम करता है, लेकिन $group महँगा हो जाता है। त्वरित अनुमान के लिए $sample (10k docs) के विरुद्ध चलाने पर विचार करें।

क्या मैं partition key बदलने से पहले परीक्षण कर सकता हूँ?

हाँ — WHAT-IF Lab में mutation kind `change-partition-key` है जो real workload पर impact का simulate करता है।

अपने Cosmos account पर इसे देखने के लिए तैयार?NoSqlStudio डाउनलोड करेंअगला → Index Policy Editor