Mwongozo wa watengenezaji programu unaonya kuwa kuacha muamala wa hifadhidata (database transaction) wazi kwa muda wote wa mazungumzo yanayoendeshwa na AI kunaweza kuharibu majibu na kuzidi uwezo wa DBMS inayotumika. Kumbukumbu hiyo, inayolenga timu zinazotengeneza zana zinazotumia LLM, inasema kuwa kitendo hicho "hakipaswi kufanywa" na badala yake inatoa mifumo minne ya uthabiti inayodumu kwa muda mfupi.

Kwa nini onyo hili ni muhimu

Misaidizi inayotumia LLM mara nyingi huuliza mfululizo wa maswali ya ziada: husoma rekodi, huomba maelezo, kisha huuliza jumla. Ikiwa data inayotumika itabadilika kati ya hatua hizo, msaidizi anaweza kutoa takwimu zinazopingana—jibu moja litakuwa si sahihi. Suluhisho lenye kuvutia ni kufungua muamala mmoja mwanzoni mwa mazungumzo na kuuweka wazi hadi mazungumzo yanapoisha. Kiuhalisia, njia hiyo inazuia matoleo ya mistari (row versions), inajaza tempdb, inashikilia vizuizi (locks), na kuingilia kati mfumo wa kuunganisha (connection pooling).

Nini husababisha miamala inayodumu kwa muda mrefu

  • Multi-turn prompting – LLM kwa kawaida huzalisha maelekezo (prompts) kadhaa kabla ya mtumiaji kuona jibu.
  • Tool calls zinazofikia hifadhidata – Kila hatua inaweza kuita stored procedure, SELECT, au UPDATE.
  • Upeo wa muamala usiodhibitiwa – Watengenezaji wakati mwingine huweka mazungumzo yote ndani ya kizuizi cha BEGIN…COMMIT, wakidhani inahakikisha uthabiti.

Mazungumzo yanapochukua muda mrefu, injini ya DB lazima ihifadhi matoleo ya awali ya mistari ili muamala uone hali thabiti. Matoleo hayo hukaa kwenye tempdb, yakitumia nafasi na I/O. Vizuizi (locks) vinavyoshikiliwa kwa muda huo huzuia waandishi wengine wanaofanya kazi kwa wakati mmoja, na muunganisho usio na kazi unaweza kuisha rasilimali za muunganisho (connection pool), na kuwalazimisha watumiaji wapya kusubiri nafasi inayopatikana.

Mifumo minne inayodumu kwa muda mfupi

Mwongozo unashauri kutazama uthabiti kama jambo la kila wito wa zana (per-tool-call) badala ya jambo la kila mazungumzo. Mifumo minne ni:

  1. Live statements – Kila wito hufanya kazi chini ya kiwango cha utengano (isolation level) cha kawaida, kikiona tu data ambayo imethibitishwa (committed) wakati wa utekelezaji. Hii ndiyo modeli rahisi zaidi; mwaliki anakubali kuwa data inaweza kuwa imebadilika tangu hatua iliyopita.
  2. Bounded transactions – Mtengenezaji huunganisha kauli kadhaa ndani ya muamala mmoja mfupi unaomalizika kabla ya hatua inayofuata ya LLM. Inahakikisha utengano (atomicity) kwa kundi hilo bila kuendelea baada ya wito wa zana.
  3. Snapshot reads – Operesheni huanza na muda maalum wa picha (snapshot timestamp), ikitoa mwonekano thabiti wa hifadhidata kwa muda wote wa wito. Usomaji wote ndani ya wito huo huona data ile ile, hata kama kuna uandishi unaofanyika kwa wakati mmoja.
  4. Materialized reports – Zana husoma kutoka kwenye seti ya matokeo iliyotengenezwa mapema na yenye toleo linaloakisi hifadhidata katika hatua fulani iliyojulikana. Ukurasa (pagination) au mahesabu zaidi kisha hufanyika kwenye seti hiyo ya data iliyogandishwa.

Katika SQL Server, kagua ikiwa READ_COMMITTED_SNAPSHOT imewashwa. Usichukulie kuwa jina hilo linatoa maelezo yote.

Kanuni za kivitendo kwa programu zinazoendeshwa na LLM

  • Batch kile unachohitaji – Ikiwa swali linahitaji thamani nyingi, zihisabie katika wito mmoja wa zana badala ya kutoa maswali (queries) tofauti ambayo kila moja inaanza muamala mpya.
  • Deterministic pagination – Unapowasilisha matokeo kwenye kurasa mbalimbali, tumia ufunguo thabiti wa mpangilio (ordering key), kura (cursor), au seti ya matokeo iliyotengenezwa (materialized result set). Kamwe usiafike muamala wazi wakati mtumiaji anasogeza ukurasa (scroll).
  • Rudisha ushahidi – Pamoja na data, jumuisha metadata inayofanya modeli ya uthabiti iwe wazi: daraja la uthabiti (consistency class), muda wa kuanza kwa snapshot, kikomo cha ripoti, upya wa data, idadi ya mistari, utambulisho wa hifadhidata, na ID ya ufuatiliaji (trace ID).
  • Fanya majaribio ya msongo (stress-test) kwa uendeshaji wa pamoja – Igia uandishi wa pamoja wakati LLM inatoa maelekezo, na uhakikishe kuwa programu inajaribu tena au inashughulikia hitilafu kwa ufasaha.

Hitimisho ni wazi: mazungumzo ya AI hayapaswi kuamua muda wa maisha ya muamala wa hifadhidata. Kwa kuweka uthabiti katika kila wito wa zana, watengenezaji huifanya hifadhidata kuwa na afya, wanahifadhi utendaji kwa watumiaji wote, na bado wanampa LLM data ya kuaminika ya kutosha ili kujibu kwa usahihi.