Кіріспе

BitVault – Қытайдағы Microsoft Research әзірлеген мазмұнға сәйкес мекенжайланатын таратылған сақтау жүйесі. BitVault деректерді сақтау және басқару міндеттерін тарату үшін теңдестірілген технологияны пайдаланады. Осылайша, жүйені басқаруға жауапты орталық билік жоқ. Керісінше, ол өзін-өзі басқарады, жоғары қолжетімділік пен сенімділікті қамтамасыз етеді және таратылған желінің көлеміне қарамастан, өзін-өзі ұйымдастыру арқылы, төмен әкімшілік шығындармен кеңейеді, бұл шығындар дерлік тұрақты болып қалады. BitVault жүйесі көбінесе өте сирек өзгеріп отыратын үлкен көлемдегі анықтамалық деректер үшін қолайлы. Мұндай деректерге ескі деректердің архивтері, сондай-ақ музыка және бейне сияқты мультимедиалық деректер жатады, олар жиі қолданылса да, сирек өзгеріске ұшырайды.

Технология

BitVault архитектурасындағы әрбір қатысушы түйін – Smart Brick, яғни үлкен дискілері бар, қысқартылған компьютер. BitVault жүйесіндегі барлық Smart Brick-тер жоғары өткізгіштікке және төмен задержкаға ие желі арқылы байланысады. BitVault жүйесін кеңейту оңай – кез келген компьютерді BitVault бағдарламалық құралын орнату және оны желіге қосу арқылы, жұмыс істеп тұрған түйіндерді тоқтату қажеттілігінсіз, Smart Brick ретінде жұмыс істеуі үшін конфигурациялауға болады. BitVault өзгеріссіз дерек нысандарын сақтайды, яғни өзгертуге болмайтын нысандарды. Нысандардың физикалық орналасуы тұрақты емес және кез келген кірпіште орналасуы мүмкін. Оның орналасуы қолданылу жиілігіне байланысты өзгереді; тіпті бірнеше кірпіште көшірмеленуі мүмкін. Бұл орналасудың өзгеру мәселесін шешу үшін BitVault әр нысан үшін бірегей 160 биттік кілт арқылы қолжетімді етеді. Жүйе кілтті пайдаланып нысанды ең тиімді алуға болатын орналасуын динамикалық түрде анықтайды және нысанды қолжетімді етеді. Бірегей кілт нысан деректерінің хэшінен жасалады, осылайша жүйе орналасу адрестеуге қарағанда мазмұн адрестеуді қолданады. Нысандардың (кілт) хэштері физикалық мекенжайларға хэш кестелерін пайдаланып бейнелейді, олар жүйеде ішкі басқарылады және пайдаланушының араласуын қажет етпейді. Түйіндердің әртүрлі жиынтығы әртүрлі хэш кестелерін сақтайды, олар тек сол жиынтықтағы деректерге қатысты, осылайша деректердің орналасуы үлестірілген хэш кестесі (DHT) архитектурасымен қадағаланатын жамылғы желісін құрайды.

Сәулет

BitVault архитектурасы бірнеше кірпіштерден тұрады, олар 160 биттік логикалық адрестік кеңістікті құрайды, олардың әрқайсысы белгілі бір деректердің хэшімен байланысты. Бұл байланыс үлестірілген хэш-кестеде (DHT) сақталады. DHT бүкіл хэш-кестесін кішірек хэш-кестелерге бөледі. Мысалы, егер n пірлер (peers) болса, хэш-кесте n хэш-кестеге бөлінеді, олардың әрқайсысы өзінің тікелей алдыңғысы аяқталған қатардан кейінгі қатардан басталады. Әрбір DHT-нің өзіне сәйкес кірпіші болады, ал кірпіш жауапты болатын логикалық адрестік кеңістіктің мөлшері оның Аймағы (Zone) деп аталады. Кірпіштер Мүшелік және Бағытталмалы Қабат (MRL) арқылы пір-пір технологиясын пайдалана отырып байланысады. Кез келген дерек нысанын іздеу n кірпішпен параллель түрде, әрқайсысы өз аймағында жүргізілуі мүмкін, бұл O (log N) тиімділігін қамтамасыз етеді. BitVault жүйесінде жеткілікті артықшылықты қамтамасыз ету үшін бір нысанның бірнеше көшірмелері, репликалар сақталады. Егер қандай да бір индекс зақымдалса, ең жақын репликаға оны жөндеуді бастау туралы хабар беріледі. Ал егер индекс репликаның зақымдалғанын анықтаса, оның жөндеуін бастай алады. Бұл қателерді қалпына келтіру әдісі Объектіге Бағытталған Жөндеу (Object Driven Repair) моделі деп аталады. Бұл қағида жұмыс істеуі үшін, пірлерге логикалық рет беру үшін мүшелік қызметі жұмыс істеуі керек. Бұл МRL арқылы жүзеге асырылады. Мүшелік қызметі кірпіш қосылғанда немесе алынып тасталғанда, басқа барлық жұмыс істеп тұрған кірпіштерге дер кезінде және сенімді түрде хабарланатынын кепілдейді. MRL кірпіштерге және олармен байланысты DHT-лерге хабарларды бағыттауға да жауапты. MRL бағытталмалы жүргізу үшін бір секіндік DHT-ді пайдаланады, яғни BitVault жүйесі тұрақты болғанда, яғни жаңа кірпіштер қосылмайтын, жүктемені теңестіру немесе жөндеу жүргізілмейтін жағдайда, хабарды бір пір арқылы бағыттау жеткілікті. MRL XRing архитектурасын қолдану арқылы іске асырылады, ол бір секіндік бағытталмалы жүргізуді жеңілдететін үлестірілген бағытталмалы кестені сақтайды.

Бір кірпіш архитектура

Блок өзін 160 биттік кілтпен МДҚ-ға тіркейді, бұл кілт оның идентификаторын құрайды, ал DHT-дегі аймағы оның ID-нен басталып, келесі логикалық мұрагерінің ID-сінен бұрын аяқталады. Кірпіш архитектурасы екі бөлікке бөлінеді: Индекс модулі және Деректер модулі. Индекс модулі дискте сақталған барлық репликалардың тізімін, олардың хэштерімен байланыстырып сақтайды. Сонымен қатар, сақталған әрбір нысан үшін ИМ сол нысанның барлық басқа репликаларының орналасқан жерлерінің тізімін де ұстайды. ИМ МДҚ-ны тыңдайды және мүшеліктегі өзгерістерге, сондай-ақ BitVault жүйесіне енгізілген немесе одан алынған деректерге сәйкес жаңарады. ИМ зақымдалған реплика туралы хабарланғаннан кейін репликаларды жөндеуді бастауға және өз қоймасындағы репликаларды жөндеуді сұрауға жауапты. IM кішкентай Access модуліне қосылған, ол сыртқы клиенттерге қақпа ретінде қызмет етеді. Деректер модулі нысандардың репликаларын жергілікті дискіге сақтайды. Нысанмен бірге оның метадеректері, мысалы, оның хэш кілті және BitVault жүйесіндегі репликация дәрежесі де сақталады.

Кіру

BitVault жүйесіне деректерді енгізу "Check In" деп аталады. "Check In" үшін объект, оның кілті және бастапқы репликация дәрежесі қажет. MRL объектіні және оның барлық параметрлерін бір кірпішке жолдайды. Кірпіш деректерді өзінің деректер модуліне сақтап, объектіні репликациялау жұмысын бастайды, оны кездейсоқ кірпіштерге таратып, белгіленген репликация дәрежесіне жетеді. Объект қажетті репликация дәрежесіне жеткен кезде оның индексі толық деп есептеледі, әйтпесе ол толық емес. Кірпіш толық емес индексі бар объектіні қосымша репликациялауы керек. Кірпіштер сондай-ақ объектінің индексі әлі де толық екенін мерзіміклі түрде тексеріп отырады.

Келесіге ауысу

BitVault жүйесінен деректерді алу процесі "Check Out" деп аталады. BitVault-ты дерекқойма ретінде пайдаланатын қосымша, алынуға тиіс объектінің хэш кілтін береді, ол MRL арқылы кез келген кірпішке жіберіледі. Егер кірпіште объект болмаса, сұрау басқа кірпіштерге параллельді түрде жіберіледі. Егер кірпіште объект болса, ол дерек модулінен алынып, сұрау жасаушыға жіберіледі.

Қатеге төзімділік

BitVault ақаулары уақытша немесе тұрақты болуы мүмкін. Уақытша ақаулық, кірпіш бағдарламалық қамтамасыз етудің істен шығуы сияқты уақытша мәселеге тап болғанда, қайта жүктелуге себеп болатын жағдайларда пайда болады. Тұрақты ақаулық аппараттық бұзу сияқты қателерді көрсетеді. Кез келген ақау анықталғанда, зақымдалған объектінің көшірмесі бар басқа кірпіштер индекстегі объектінің жазбасын толық емес деп жаңартады, соның нәтижесінде қосымша көшіру іске қосылады. Объекті деректерінің әртүрлі бөліктерін қамтитын барлық басқа кірпіштер, бір уақытта, көшірмені сақтайтын жаңа кірпішке жібереді. Бұл параллель көшіру зақымдалған индексті толық күйіне қайтару процесін жеделдетеді.

Қатысушылық өзгерістері

BitVault жүйесіне жаңа блок қосылған сайын, ол кездейсоқ ID таңдап, басқа блоктармен байланысады. Блоктар бұл жаңа блокты өздерінің мүшелер тізіміне қосады. Жаңа қосылған блокқа, оны мүшелік тізіміне қосқан блоктардан жауап келеді. Жаңа блок бұл жауап берушілерді өз мүшелік тізіміне қосады. Жүйенің фонында жүктемені теңестіру механизмі іске қосылып, жаңа блокқа жұмыс істеп тұрған көшірмелерді (репликаларды) орналастырады.

Жүк тепе-теңдігін сақтау

Кірпіштер басқа кірпіштерден жүктеме жағдайы туралы мерзімді түрде сұрайды. Содан кейін кірпіш, жүктемесі аз кірпіштерге бірнеше көшірмелерді ауыстырып, әрбір кірпіште жүктеменің шамалы теңгерілгенін қамтамасыз етеді. Бұл өзгерісті ескеру үшін басқа кірпіштерге өз индекстерін жаңарту туралы хабарламалар да жібереді.