SQLite ప్రాజెక్ట్ డెవలపర్లు ప్రయోగాత్మక HCtree బ్యాకెండ్ని పరీక్షించడం ప్రారంభించారు, ఇది వరుస-స్థాయి లాకింగ్కు మద్దతు ఇస్తుంది మరియు ప్రశ్నలను ప్రాసెస్ చేస్తున్నప్పుడు అధిక స్థాయి సమాంతరీకరణను అందిస్తుంది. కొత్త బ్యాకెండ్ డేటాబేస్కు పెద్ద సంఖ్యలో ఏకకాల వ్రాత అభ్యర్థనలను ప్రాసెస్ చేయాల్సిన క్లయింట్-సర్వర్ సిస్టమ్లలో SQLiteని ఉపయోగించడం యొక్క సామర్థ్యాన్ని మెరుగుపరచడం లక్ష్యంగా పెట్టుకుంది.
డేటాను నిల్వ చేయడానికి SQLiteలో స్థానికంగా ఉపయోగించే b-ట్రీ నిర్మాణాలు ఈ రకమైన లోడ్ కోసం రూపొందించబడలేదు, ఇది SQLiteని ఒక థ్రెడ్కు మాత్రమే వ్రాయడానికి పరిమితం చేస్తుంది. ఒక ప్రయోగంగా, డెవలపర్లు ఒక ప్రత్యామ్నాయ పరిష్కారాన్ని అభివృద్ధి చేయడం ప్రారంభించారు, ఇది నిల్వ కోసం HC-ట్రీ నిర్మాణాలను ఉపయోగిస్తుంది, ఇవి వ్రాత కార్యకలాపాలను సమాంతరంగా చేయడానికి మరింత అనుకూలంగా ఉంటాయి.
బహుళ కార్యకలాపాలను ఏకకాలంలో అమలు చేయడానికి, HCtree రికార్డ్ పేజీ-స్థాయి లాకింగ్ను ఉపయోగించే లావాదేవీ విభజన విధానాన్ని ఉపయోగిస్తుంది మరియు MVCC (మల్టీ-వెర్షన్ కాన్కరెన్సీ కంట్రోల్) లాగా ఉంటుంది, అయితే పేజీ సెట్లకు బదులుగా కీలు మరియు కీ పరిధుల ఆధారంగా లావాదేవీ తనిఖీలను ఉపయోగిస్తుంది. డేటాబేస్ స్నాప్షాట్కు సంబంధించి రీడ్ మరియు రైట్ ఆపరేషన్లు నిర్వహించబడతాయి, లావాదేవీ పూర్తయిన తర్వాత మాత్రమే ప్రధాన డేటాబేస్లో మార్పులు కనిపిస్తాయి.
క్లయింట్లు మూడు బహిరంగ లావాదేవీ కార్యకలాపాలను ఉపయోగించవచ్చు:
- “BEGIN”—లావాదేవీలు ఇతర క్లయింట్ల యాక్సెస్ డేటాను పరిగణనలోకి తీసుకోవు. లావాదేవీలో వ్రాత కార్యకలాపాలు జరిగితే, దాని అమలు సమయంలో డేటాబేస్లో ఇతర వ్రాత కార్యకలాపాలు లేనట్లయితే మాత్రమే లావాదేవీకి కట్టుబడి ఉంటుంది.
- "ప్రారంభ సమ్మేళనం" - లావాదేవీలు ఇతర క్లయింట్ల యాక్సెస్ గురించి సమాచారాన్ని సేకరిస్తాయి. లావాదేవీలో వ్రాత కార్యకలాపాలు జరిగితే, స్నాప్షాట్ సృష్టించబడినప్పటి నుండి డేటాబేస్లో ఇతర లావాదేవీలు జరిగినట్లయితే లావాదేవీ కట్టుబడి ఉంటుంది.
- “ప్రారంభించడానికి ఎక్స్క్లూజివ్” - లావాదేవీని తెరిచిన తర్వాత, అది పూర్తయ్యే వరకు ఇతర లావాదేవీల నుండి కార్యకలాపాలను బ్లాక్ చేస్తుంది.
HCtree మాస్టర్-స్లేవ్ రెప్లికేషన్కు మద్దతు ఇస్తుంది, ఇది లావాదేవీలను మరొక డేటాబేస్కు తరలించడానికి మరియు సెకండరీ డేటాబేస్లను ప్రాథమిక డేటాబేస్తో సమకాలీకరించడానికి మిమ్మల్ని అనుమతిస్తుంది. HCtree డేటాబేస్ పరిమాణంపై ఉన్న పరిమితిని కూడా తొలగిస్తుంది - 32-బిట్ డేటా పేజీ ఐడెంటిఫైయర్లకు బదులుగా, HCtree 48-బిట్ వాటిని ఉపయోగిస్తుంది, ఇది గరిష్ట డేటాబేస్ పరిమాణాన్ని 16 టెబిబైట్ల నుండి 1 ఎక్స్బిబైట్ (మిలియన్ టెబిబైట్)కి పెంచుతుంది. HCtree బ్యాకెండ్తో SQLite పనితీరు క్లాసిక్ సింగిల్-థ్రెడ్ బ్యాకెండ్ కంటే తక్కువగా ఉండదని భావిస్తున్నారు. HCtree మద్దతుతో SQLite క్లయింట్లు HC-ట్రీ-ఆధారిత డేటాబేస్లు మరియు లెగసీ SQLite డేటాబేస్లు రెండింటినీ యాక్సెస్ చేయగలరు.
మూలం: opennet.ru