एका डेव्हलपर गाईडमध्ये इशारा देण्यात आला आहे की, AI-चालित चॅटच्या संपूर्ण कालावधीसाठी डेटाबेस ट्रान्झॅक्शन (transaction) उघडे ठेवल्यास उत्तरे चुकीची येऊ शकतात आणि मूळ DBMS वर ताण येऊ शकतो. LLM-आधारित टूल्स बनवणाऱ्या टीम्सना उद्देशून लिहिलेल्या या नोटमध्ये म्हटले आहे की, ही पद्धत "वापरली जाऊ नये" आणि त्याऐवजी चार अल्पकालीन consistency patterns सुचवले आहेत.

हा इशारा का महत्त्वाचा आहे

LLM-आधारित असिस्टंट्स अनेकदा फॉलो-अप प्रश्नांची मालिका विचारतात: ते आधी एक रेकॉर्ड वाचतात, मग तपशील मागतात आणि त्यानंतर एकूण आकडा विचारतात. जर या पायऱ्यांच्या दरम्यान मूळ डेटामध्ये बदल झाला, तर असिस्टंट परस्परविरोधी आकडेवारी देऊ शकतो—ज्यामुळे एक उत्तर चुकीचे ठरेल. संभाषणाच्या सुरुवातीला एकच ट्रान्झॅक्शन उघडणे आणि चॅट संपेपर्यंत ते चालू ठेवणे हा एक सोपा वाटणारा उपाय आहे. परंतु प्रत्यक्षात, या पद्धतीमुळे row versions अडकून पडतात, tempdb भरून जातो, locks लागतात आणि connection pooling मध्ये अडथळा निर्माण होतो.

दीर्घकाळ चालणाऱ्या ट्रान्झॅक्शन्सची कारणे

  • Multi-turn prompting – वापरकर्त्याला प्रतिसाद दिसण्यापूर्वी LLMs सहसा अनेक प्रॉम्प्ट्स तयार करतात.
  • डेटाबेसवर परिणाम करणारे टूल कॉल्स (Tool calls) – प्रत्येक टर्नमध्ये एखादी stored procedure, SELECT, किंवा UPDATE कमांड कार्यान्वित होऊ शकते.
  • अनियंत्रित ट्रान्झॅक्शन स्कोप (Uncontrolled transaction scope) – डेव्हलपर्स कधीकधी 'consistency' सुनिश्चित होईल या गृहितकावर संपूर्ण चॅट एका BEGIN…COMMIT ब्लॉकमध्ये गुंडाळतात.

जेव्हा चॅट लांबते, तेव्हा ट्रान्झॅक्शनला स्थिर व्ह्यू (stable view) मिळावा यासाठी DB इंजिनला मूळ row versions राखून ठेवावे लागतात. हे व्हर्जन tempdb मध्ये साठवले जातात, ज्यामुळे जागा आणि I/O खर्च होतो. त्याच कालावधीसाठी लागलेले locks इतर लेखकांना (writers) अडवतात आणि रिकामे कनेक्शन pool संपवू शकतात, ज्यामुळे नवीन वापरकर्त्यांना मोकळ्या स्लॉटसाठी प्रतीक्षा करावी लागते.

चार अल्पकालीन पॅटर्न (patterns)

ही गाईड consistency ला संपूर्ण संभाषणाऐवजी प्रत्येक tool-call च्या दृष्टीने पाहण्याचा सल्ला देते. हे चार पॅटर्न खालीलप्रमाणे आहेत:

  1. Live statements – प्रत्येक कॉल डीफॉल्ट isolation level अंतर्गत चालतो, ज्यामुळे केवळ कार्यान्वित (execution) होण्याच्या क्षणी commit झालेला डेटाच दिसतो. हे सर्वात सोपे मॉडेल आहे; यामध्ये वापरकर्ता हे मान्य करतो की मागील टर्नपासून डेटामध्ये बदल झाला असू शकतो.
  2. Bounded transactions – डेव्हलपर काही स्टेटमेंट्स एका लहान ट्रान्झॅक्शनमध्ये एकत्र करतो, जे पुढील LLM टर्न येण्यापूर्वी पूर्ण होते. यामुळे टूल कॉलच्या पलीकडे न जाता त्या बॅचसाठी atomicity सुनिश्चित होते.
  3. Snapshot reads – ही प्रक्रिया एका निश्चित snapshot timestamp ने सुरू होते, ज्यामुळे कॉलच्या कालावधीसाठी डेटाबेसचा स्थिर व्ह्यू मिळतो. कॉल दरम्यान इतर कुठेही बदल (concurrent writes) झाले तरी, सर्व reads मध्ये तोच डेटा दिसतो.
  4. Materialized reports – टूल एका आधीच तयार केलेल्या आणि versioned रिझल्ट सेटमधून डेटा वाचते, जो एका ठराविक वेळेपर्यंतच्या डेटाबेस स्थितीचे प्रतिबिंब असतो. त्यानंतरचे pagination किंवा पुढील गणना त्याच स्थिर (frozen) डेटासेटवर केली जाते.

SQL Server मध्ये, READ_COMMITTED_SNAPSHOT सक्रिय आहे का ते तपासा. केवळ नावावरून सर्व काही समजेल असे समजू नका.

LLM-आधारित ॲप्ससाठी व्यावहारिक नियम

  • गरजेच्या गोष्टी बॅचमध्ये करा – जर एखाद्या प्रश्नासाठी अनेक व्हॅल्यूज हव्या असतील, तर प्रत्येक वेळी नवीन ट्रान्झॅक्शन सुरू करणाऱ्या स्वतंत्र क्वेरीज पाठवण्याऐवजी, एकाच टूल कॉलमध्ये त्यांचे मोजमाप (compute) करा.
  • Deterministic pagination – निकाल वेगवेगळ्या पेजेसवर दाखवताना, एक स्थिर ordering key, cursor, किंवा materialized result set वापरा. वापरकर्ता स्क्रोल करत असताना कधीही ट्रान्झॅक्शन उघडे ठेवू नका.
  • पुरावा (evidence) परत करा – डेटासोबतच असे मेटाडेटा (metadata) समाविष्ट करा ज्यामुळे consistency model स्पष्ट होईल: जसे की consistency class, snapshot start time, reporting cutoff, data freshness, row count, database identity, आणि trace ID.
  • Concurrency सह स्ट्रेस-टेस्ट करा – LLM प्रॉम्प्ट देत असताना एकाच वेळी होणाऱ्या writes चे सिम्युलेशन करा आणि ॲप्लिकेशन व्यवस्थित retry करते किंवा पर्यायी मार्ग (fallback) शोधते की नाही याची खात्री करा.

मुख्य मुद्दा स्पष्ट आहे: AI चॅटने डेटाबेस ट्रान्झॅक्शनचा कालावधी ठरवू नये. consistency ला प्रत्येक टूल कॉलपुरते मर्यादित ठेवून, डेव्हलपर्स डेटाबेस निरोगी ठेवतात, सर्व वापरकर्त्यांसाठी परफॉर्मन्स टिकवून ठेवतात आणि LLM ला अचूक उत्तरे देण्यासाठी पुरेसा विश्वसनीय डेटा देखील उपलब्ध करून देतात.