SQLite մշակողները մշակում են HC-tree backend-ը՝ զուգահեռ գրելու աջակցությամբ

SQLite նախագծի մշակողները սկսել են փորձարկել փորձնական HCtree backend-ը, որն աջակցում է տողերի մակարդակի կողպմանը և ապահովում է բարձր մակարդակի զուգահեռացում հարցումները մշակելիս: Նոր backend-ը նպատակաուղղված է SQLite-ի օգտագործման արդյունավետության բարելավմանը հաճախորդ-սերվեր համակարգերում, որոնք պետք է մշակեն տվյալների բազայում միաժամանակ գրելու մեծ թվով հարցումներ:

B-tree կառուցվածքները, որոնք բնիկ օգտագործվում են SQLite-ում տվյալների պահպանման համար, նախատեսված չեն այս տեսակի բեռների համար, ինչը սահմանափակում է SQLite-ին գրել միայն մեկ շղթայում: Որպես փորձ, մշակողները սկսեցին մշակել այլընտրանքային լուծում, որն օգտագործում է HC-tree կառուցվածքները պահեստավորման համար, որոնք ավելի հարմար են գրելու գործողությունները զուգահեռացնելու համար:

Միաժամանակ մի քանի գործողությունները թույլ տալու համար HCtree գրառումն օգտագործում է գործարքի բաժանման մեխանիզմ, որն օգտագործում է էջի մակարդակի կողպումը և նման է MVCC-ին (Multi-Version Concurrency Control), բայց օգտագործում է գործարքների ստուգումներ՝ հիմնված բանալիների և հիմնական տիրույթների վրա՝ էջի հավաքածուների փոխարեն: Ընթերցանության և գրելու գործողությունները կատարվում են տվյալների բազայի նկարի հետ կապված, որոնց փոփոխությունները հիմնական տվյալների բազայում տեսանելի են դառնում միայն գործարքի ավարտից հետո:

Հաճախորդները կարող են օգտվել երեք բաց գործարքի գործողություններից.

  • «ՍԿԻԶԲ» - գործարքները հաշվի չեն առնում այլ հաճախորդների մուտքի տվյալները: Եթե ​​գրելու գործողությունները կատարվում են գործարքի շրջանակներում, ապա գործարքը կարող է իրականացվել միայն այն դեպքում, եթե դրա կատարման ընթացքում տվյալների բազայում գրելու այլ գործողություններ չեն եղել:
  • «ՍԿՍՈՒՄ ԵՆ ՍԿՍՈՒՄ» - գործարքները հավաքում են տեղեկատվություն այլ հաճախորդների մուտքի մասին: Եթե ​​գրելու գործառնությունները կատարվում են գործարքի շրջանակներում, ապա գործարքը կարող է իրականացվել, եթե այլ գործարքներ կատարվել են տվյալների բազայում՝ նկարի ստեղծման պահից:
  • «ՍԿՍԵԼ ԲԱՑԱՌԻԿ» - գործարքը բացելուց հետո այն արգելափակում է գործառնությունները այլ գործարքներից մինչև դրա ավարտը:

HCtree-ն աջակցում է master-slave replication, որը թույլ է տալիս տեղափոխել գործարքները մեկ այլ տվյալների բազա և պահպանել երկրորդական տվյալների բազաները համաժամեցված առաջնային տվյալների բազայի հետ: HCtree-ն նաև վերացնում է տվյալների բազայի չափի սահմանափակումը. 32-բիթանոց տվյալների էջի նույնացուցիչների փոխարեն HCtree-ն օգտագործում է 48-բիթանոցներ, ինչը մեծացնում է տվյալների բազայի առավելագույն չափը 16 տեբիբայթից մինչև 1 էքսբիբայթ (միլիոն տեբիբայթ): Ակնկալվում է, որ SQLite-ի կատարումը HCtree backend-ով ցածր չի լինի դասական մեկ թելերով հետնամասից: HCtree-ի աջակցությամբ SQLite-ի հաճախորդները կկարողանան մուտք գործել ինչպես HC-tree-ի վրա հիմնված տվյալների բազաներ, այնպես էլ SQLite-ի ժառանգական տվյալների բազաներ:

Source: opennet.ru

Добавить комментарий