सामग्री पर जाएँ
← Cosmos DB overview पर वापस
Azure Cosmos DB
UNIQUE — केवल NoSqlStudio पर
Ctrl+Alt+Shift+I

WHAT-IF Lab — हर बदलाव को real traffic के विरुद्ध परीक्षण करें

production का पिछला घंटा (या पिछले 72h) real traffic capture करें, PITR के माध्यम से अपने Cosmos dataset को sandbox में clone करें, एक काल्पनिक परिवर्तन लागू करें (drop/add index, partition key बदलें, consistency level बदलें, billing mode बदलें, throughput बदलें), और prod पर लागू करने से पहले 5 आयामों में impact देखें — RU, latency p95, 429s, plan-cache hits, मासिक लागत।

ऐप में यह कहाँ रहता है: Tools → Cosmos DB → WHAT-IF Lab

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

  • Query Cost Inspector (in-app) या Azure Log Analytics (MongoRequests table) के माध्यम से app से real traffic capture करता है।
  • PITR (continuous backup 7d/30d) के माध्यम से Cosmos sandbox provision करता है — isolated, prod पर कोई प्रभाव नहीं।
  • एक साथ 5 तक mutations स्वीकार करता है: add/drop index, partition key बदलें, consistency level, billing mode, प्रति collection throughput।
  • Captured trace का प्रोड + sandbox के विरुद्ध समानांतर में Replay (rate-controlled)।
  • 5 आयामों में side-by-side diff: RU consumption, average + p95 latency, throttle 429 count, query plan cache hit rate, मासिक dollar bill।
  • स्वचालित Verdict (approve / warn / reject) पाठ्य rationale + audit/compliance के लिए JSON export के साथ।
  • Synthetic sandbox के साथ "preview" मोड: 30 सेकंड में बिना Azure cost के चलता है (exploration के लिए आदर्श)।
  • "real" मोड: वास्तविक PITR sandbox, prod से पहले अंतिम पुष्टि के लिए।

चरण-दर-चरण

  1. 1

    Workspace खोलें

    Menu Tools → Cosmos DB → WHAT-IF Lab — Test changes against real workload, या शॉर्टकट Ctrl+Alt+Shift+I। Workspace Step 1: Capture पर शुरू होता है।

  2. 2

    ट्रैफ़िक capture करें

    Window मिनटों में परिभाषित करें (60 default — साप्ताहिक चक्र कैप्चर करने के लिए 1440 = 24h या 4320 = 72h पर समायोजित करें)। "Capture now" पर क्लिक करें। यह Query Cost Inspector ring buffer से पढ़ता है (window में NoSqlStudio bridge से गुज़री सभी queries)। कुल queries count, unique shapes, कुल RU consumed, touched namespaces दिखाता है।

    window=60 → 1h ट्रैफ़िक capture करता है
    window=1440 → 24h capture करता है
    window=4320 → 72h capture करता है (पूर्ण साप्ताहिक चक्र)
  3. 3

    एक sandbox stage करें

    Wizard का Step 2। Source Cosmos account का नाम डालें। डिफ़ॉल्ट restore point "अभी माइनस 1 घंटा" है — पुराने snapshot के विरुद्ध परीक्षण के लिए समायोजित करें। "preview" मोड synthetic sandbox का उपयोग करता है (पहले explorations के लिए अनुशंसित) — "real" मोड PITR के माध्यम से नई Cosmos account provision करता है (~30 मिनट निर्माण, सामान्य Azure provisioning लागत)।

    preview मोड → synthetic sandbox, बिना Azure cost, 30s में परिणाम
    real मोड → वास्तविक PITR sandbox, ~30min, सामान्य Azure cost
  4. 4

    WHAT-IF mutations कॉन्फ़िगर करें

    Step 3। Validated schema के साथ Inline JSON editor। एक साथ 5 तक mutations। प्रत्येक mutation का अपना "kind" और parameters हैं। नीचे उदाहरण देखें।

    [
      { "kind": "add-index", "ns": "app.orders", "key": { "tenantId": 1, "createdAt": -1 } },
      { "kind": "drop-index", "ns": "app.orders", "indexName": "text_search_v1" },
      { "kind": "change-partition-key", "ns": "app.events", "newPath": "userId", "strategy": "recreate" },
      { "kind": "consistency", "level": "Session" },
      { "kind": "mode", "mode": "autoscale", "autoscaleMaxRu": 4000 },
      { "kind": "throughput", "ns": "app.orders", "ruPerSec": 2000 }
    ]
  5. 5

    Quick Estimate या Full Replay

    Quick Estimate = heuristics + capture के दौरान observed values पर आधारित ~5 सेकंड में उत्तर। mutation को tweak करते समय जल्दी iterate करने के लिए अच्छा। Full Replay = trace की हर query को "before" और "after" के विरुद्ध समानांतर में चलाता है, सब कुछ मापता है। trace size के आनुपातिक समय लेता है; 1000 queries ~30s, 100k queries ~5min।

  6. 6

    5-आयामी diff पढ़ें

    Step 5। Side-by-side cards के साथ before/after + delta %: कुल RU consumed, avg/p95 latency (ms), 429 throttles count, plan-cache hit rate, अनुमानित मासिक USD। प्रत्येक per-query shape भी RU द्वारा रैंक किया गया individual impact दिखाता है। शीर्ष पर Verdict: APPROVE / WARN / REJECT पाठ्य rationale के साथ।

  7. 7

    रिपोर्ट export करें

    "Export JSON" बटन पूरा रिपोर्ट सहेजता है (planId, mutations, summary, per-query)। उपयोग करें: • change management ticket में निर्णय दस्तावेज़ करें • यदि लागत बचत है तो finance के साथ साझा करें • compliance के लिए Audit trail (SOC 2 / ISO 27001)

  8. 8

    prod पर लागू करें (अनुमोदन के बाद)

    NoSqlStudio स्वचालित रूप से लागू नहीं करता — आप WHAT-IF Lab से बाहर निकलें, संबंधित workspace (Index Policy Editor, Throughput Optimizer, आदि) खोलें और मैन्युअल रूप से लागू करें। अलगाव जानबूझकर है: WHAT-IF निर्णय है; लागू करना कार्रवाई है।

वास्तविक use cases

केस A — R$ 4.8k/माह की पुष्ट बचत

DBA को संदेह है कि `app.orders` पर composite index `{tenantId, createdAt}` जोड़ने से RU बचेगा। `add-index` के साथ WHAT-IF चलाता है। Result: RU -47% (-200k RU/mo), latency -12ms p99, USD bill -R$ 4,847/mo। 96% confidence के साथ APPROVE। Audit JSON exported। अगले दिन prod में लागू किया गया।

केस B — incident पैदा करने से पहले परिवर्तन अस्वीकृत

Platform team `app.events` पर partition key को `userId` से `region` में बदलने का प्रस्ताव करती है (अधिक "समान" दिखती थी)। WHAT-IF: RU +112%, window में 0 → 843 throttles, p99 latency +180ms। REJECT। Engineer recovery के लिए एक midnight call बचाता है।

केस C — autoscale बनाम manual निर्णय

CFO पूछता है कि क्या app autoscale पर माइग्रेट हो सकता है। DBA पिछले 30 दिनों के विरुद्ध `mode: autoscale, autoscaleMaxRu: 8000` के साथ WHAT-IF चलाता है। Result: समान latency/throttle के साथ खाते पर -R$ 1.2k/माह। APPROVE।

केस D — consistency relaxation का simulation

Engineering latency सुधारने के लिए Strong से Session consistency पर जाना चाहती है। DBA WHAT-IF चलाता है + compliance को प्रस्तुत करता है: RU -22%, p99 -41ms, semantics docs संलग्न। Compliance रिपोर्ट के आधार पर sign off करता है।

FAQ

WHAT-IF सत्र चलाने की लागत कितनी है?

Preview मोड = $0 (heuristics के साथ synthetic sandbox)। Real मोड = PITR के माध्यम से अस्थायी Cosmos account provision करने की लागत — आमतौर पर source के tier के आधार पर $5–$20/घंटा। NoSqlStudio workspace बंद करते ही sandbox को स्वचालित रूप से नष्ट कर देता है।

क्या preview मोड की सटीकता विश्वसनीय है?

Preview मोड "atomic" परिवर्तनों में 70-90% सटीकता देता है (एक index drop करें, एक सरल index add करें, consistency बदलें)। संयुक्त परिवर्तनों (partition key + throughput + index) के लिए हम prod पर लागू करने से पहले real मोड के साथ validate करने की अनुशंसा करते हैं।

क्या मैं 72h से अधिक traffic capture कर सकता हूँ?

हाँ — in-app ring buffer (सीमा ~500 queries) के बजाय, Azure Log Analytics की ओर इंगित करें: `MongoRequests` table 30+ दिन जमा करती है। Cosmos Optimizer → Diagnostic Logs (KQL templates) में workspace URL कॉन्फ़िगर करें।

क्या Microsoft के पास कुछ समतुल्य है?

नहीं। Azure Cosmos DB Insights पूर्वव्यापी metrics दिखाता है लेकिन परिवर्तनों का simulation नहीं करता। Atlas Performance Advisor indexes सुझाता है लेकिन real workload के विरुद्ध WHAT-IF नहीं चलाता। Third-party tools (Studio 3T, DataGrip, आदि) इनमें से कुछ भी कवर नहीं करते।

क्या WHAT-IF मेरे isolation level का सम्मान करता है?

हाँ। Replay engine stateless है और prod को कभी नहीं छूता — केवल in-app log या Log Analytics के माध्यम से डेटा पढ़ता है। Sandbox PITR account के माध्यम से पूरी तरह अलग है। Replay की कोई query आपके production account को प्रभावित नहीं करती।

मैं compliance / SOC 2 के साथ कैसे एकीकृत करूँ?

प्रत्येक execution timestamp, planId, mutations applied, summary, per-query results के साथ एक अपरिवर्तनीय JSON उत्पन्न करता है। audit log में सहेजें + Ed25519 के साथ sign करें (Compliance Reports workspace का उपयोग करें)।

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