SQLite әзірлеушілері параллель жазуды қолдайтын HC-tree серверін әзірлейді

SQLite жобасын әзірлеушілер жол деңгейіндегі құлыптауды қолдайтын және сұрауларды өңдеу кезінде параллелизацияның жоғары деңгейін қамтамасыз ететін тәжірибелік HCtree серверін сынауды бастады. Жаңа сервер деректер базасына бір уақытта жазу сұрауларының көп санын өңдеуге тура келетін клиент-сервер жүйелерінде SQLite пайдалану тиімділігін арттыруға бағытталған.

SQLite жүйесінде деректерді сақтау үшін жергілікті түрде пайдаланылатын b-ағаш құрылымдары SQLite тек бір ағынға жазуды шектейтін жүктеменің бұл түріне арналмаған. Тәжірибе ретінде әзірлеушілер жазу операцияларын параллельдеу үшін қолайлырақ сақтау үшін HC-ағаш құрылымдарын қолданатын балама шешім әзірлеуге кірісті.

Бірнеше әрекеттерді бір уақытта орындауға рұқсат беру үшін HCtree жазбасы бет деңгейіндегі құлыптауды пайдаланатын және MVCC (көп нұсқалы қатарластықты басқару) ұқсас транзакцияны бөлу механизмін пайдаланады, бірақ бет жиындарының орнына кілттер мен кілттер ауқымдарына негізделген транзакция тексерулерін пайдаланады. Оқу және жазу операциялары дерекқордың суретімен байланысты орындалады, оның өзгерістері транзакция аяқталғаннан кейін ғана негізгі дерекқорда көрінеді.

Клиенттер үш ашық транзакция операциясын пайдалана алады:

  • «BEGIN» — транзакциялар басқа клиенттердің қол жеткізу деректерін есепке алмайды. Жазу операциялары транзакция ішінде орындалса, оны орындау кезінде деректер базасында басқа жазу операциялары болмаған жағдайда ғана транзакция жасалуы мүмкін.
  • «BEGIN CONCURRENT» - транзакциялар басқа клиенттердің қол жеткізуі туралы ақпаратты жинайды. Жазу операциялары транзакция ішінде орындалса, сурет жасалғаннан бері дерекқорда басқа транзакциялар жасалған болса, транзакция жасалуы мүмкін.
  • «ЭКСКЛЮЗИВДІ БАСТАУ» - транзакцияны ашқаннан кейін ол аяқталғанша басқа транзакциялардағы операцияларды блоктайды.

HCtree транзакцияларды басқа дерекқорға тасымалдауға және қосымша дерекқорларды негізгі дерекқормен синхрондауға мүмкіндік беретін негізгі-құлалық репликациясын қолдайды. HCtree сонымен қатар дерекқор өлшеміне шектеуді жояды - 32-биттік деректер беті идентификаторларының орнына HCtree 48-биттіктерді пайдаланады, бұл дерекқордың максималды өлшемін 16 тебибайттан 1 эксбибайтқа (миллион тебибайт) дейін арттырады. HCtree сервері бар SQLite өнімділігі классикалық бір ағынды серверден төмен болмайды деп күтілуде. HCtree қолдауы бар SQLite клиенттері HC ағашына негізделген дерекқорларға да, бұрынғы SQLite дерекқорларына да қол жеткізе алады.

Ақпарат көзі: opennet.ru

пікір қалдыру