Циф­ро­ви­за­ция: пусть ме­ня на­учат

Otkrytye sistemy. SUBD. - - СОДЕРЖАНИЕ -

Ирина Ше­ян

За­пуск в Рос­сии про­грам­мы «Циф­ро­вая экономика» мгно­вен­но при­влек вни­ма­ние об­ще­ствен­но­сти к те­ме циф­ро­вой транс­фор­ма­ции. Но ко­гда де­ло дошло до ее прак­ти­че­ско­го во­пло­ще­ния, воз­ник­ло мно­же­ство во­про­сов, для по­ис­ка ответов на ко­то­рые при­дет­ся учить­ся — на­при­мер, на фа­куль­те­те циф­ро­вой транс­фор­ма­ции в Мос­ков­ской шко­ле про­дви­ну­тых ком­му­ни­ка­ций.

Вре­мя — ве­ли­чи­на, об­ла­да­ю­щая есте­ствен­ной иерар­хич­но­стью, и существует мно­же­ство еди­ниц ее из­ме­ре­ния, что ста­вит про­ек­ти­ров­щи­ка перед за­да­чей оп­ти­маль­но­го вы­бо­ра. Пред­ста­вим Crm-систему с сущ­но­стью «Вхо­дя­щие звон­ки». Один из ат­ри­бу­тов — это вре­мя по­ступ­ле­ния звон­ка с точ­но­стью до се­кун­ды. Ин­тен­сив­ность по­ступ­ле­ния звон­ков в мас­шта­бах всей ком­па­нии, экс­плу­а­ти­ру­ю­щей СУБД, до­ста­точ­на вы­со­ка, та­б­ли­ца боль­шая. Ти­пич­ное приложение — ге­не­ра­ция от­че­тов по звон­кам с вре­мен­ным диа­па­зо­ном в ка­че­стве филь­тра (вы­ве­сти ин­фор­ма­цию о звон­ках, по­сту­пив­ших в опре­де­лен­ный пе­ри­од вре­ме­ни). Ис­поль­зо­ва­ние би­то­вых ин­дек­сов здесь озна­ча­ет, что для каж­до­го зна­че­ния вре­ме­ни, для ко­то­ро­го за­фик­си­ро­ван хо­тя бы один зво­нок, со­зда­ет­ся би­то­вая стро­ка, воз­мож­но, со­сто­я­щая из несколь­ких под­строк (chunks). При за­про­се бе­рут­ся все име­ю­щи­е­ся ин­дек­сы для зна­че­ний, вхо­дя­щих в за­дан­ный диа­па­зон, и пу­тем их дизъ­юнк­ции вы­чис­ля­ет­ся би­то­вая стро­ка, еди­ни­цы ко­то­рой со­от­вет­ству­ют ID звон­ков, удо­вле­тво­ря­ю­щих за­про­су и вы­во­ди­мых в ито­го­вый от­чет.

При­ме­не­ние би­то­вых ин­дек­сов для про­мыш­лен­ных объ­е­мов дан­ных не дает при­ем­ле­мой про­из­во­ди­тель­но­сти — от­че­ты ге­не­ри­ру­ют­ся слиш­ком мед­лен­но. Уз­кое ме­сто — ко­ли­че­ство ин­дек­сов, под­па­да­ю­щих под усло­вия филь­тра за­про­са. При боль­шом диа­па­зоне за­про­са и вы­со­кой ин­тен­сив­но­сти за­не­се­ния в ба­зу но­вых за­пи­сей возникает ощу­ти­мая за­держ­ка: все стро­ки нуж­но за­гру­зить в па­мять и вы­пол­нить над ни­ми дизъ­юнк­цию. Ка­кую вы­брать иерар­хию для мак­си­маль­ной эф­фек­тив­но­сти? Да­же ес­ли пред­по­ло­жить, что, по­ми­мо се­кунд­но­го (мел­ко­го) ин­дек­са, име­ет­ся в на­ли­чии толь­ко один круп­ный, ка­ко­му ин­тер­ва­лу вре­ме­ни он дол­жен со­от­вет­ство­вать? Ес­ли круп­ный ин­декс вы­брать слиш­ком ма­лень­ким (ска­жем, две се­кун­ды), это мо­жет дать ми­зер­ный эф­фект (ко­ли­че­ство круп­ных ин­дек­сов, необ­хо­ди­мых для обслуживания за­про­са, мо­жет остать­ся прак­ти­че­ски тем же), а ес­ли слиш­ком боль­шим, он мо­жет ока­зать­ся бес­по­ле­зен, ес­ли дли­на за­про­са в сред­нем мень­ше него. Клю­че­вы­ми ис­ход­ны­ми дан­ны­ми для оп­ти­ми­за­ции яв­ля­ют­ся две функ­ции рас­пре­де­ле­ния ве­ро­ят­но­стей: за­не­се­ния за­пи­сей в ба­зу и дли­ны за­про­са. Зная рас­пре­де­ле­ния этих слу­чай­ных ве­ли­чин, мож­но вы­брать раз­мер круп­но­го ин­дек­са, ми­ни­ми­зи­ру­ю­щий сред­нее зна­че­ние тре­тьей слу­чай­ной ве­ли­чи­ны — об­щей сум­мы ко­ли­че­ства круп­но­го и мел­ко­го ин­дек­сов, «на­кры­ва­е­мых» за­про­сом на вход­ном по­то­ке со­бы­тий. Но, что­бы оп­ти­ми­зи­ро­вать неко­то­рую це­ле­вую функ­цию, нуж­но уметь ее вы­чис­лять — по двум рас­пре­де­ле­ни­ям и вы­бран­ной иерар­хии вы­чис­лить сред­нее чис­ло всех би­то­вых ин­дек­сов, необ­хо­ди­мых для обслуживания за­про­са.

Ре­ше­ние этой за­да­чи ме­то­да­ми тео­рии ве­ро­ят­но­стей пред­ло­же­но в [2], а пред­став­ле­ние о прак­ти­че­ском «вы­хло­пе» это­го ре­ше­ния мож­но по­лу­чить из ри­сун­ка. Но­вая за­пись в ба­зе по­яв­ля­лась в сред­нем каж­дые 30 се­кунд (па­ра­метр экс­по­нен­ци­аль­но­го рас­пре­де­ле­ния ра­вен 0,033), а сред­няя дли­на ин­тер­ва­ла по­ис­ко­во­го за­про­са — 1000 се­кунд (па­ра­метр ра­вен 0,001). На ри­сун­ке изоб­ра­же­ны за­ви­си­мо­сти сред­не­го числа ин­дек­сов от дли­ны ин­тер­ва­ла для круп­но­го ин­дек­са в слу­чае од­но­го круп­но­го ин­дек­са (тон­кая ли­ния) и двух (тол­стая ли­ния), где вто­рой круп­ный ин­декс ра­вен од­но­му ча­су. Из гра­фи­ка вид­но, что ми­ни­мум дей­стви­тель­но существует, до­сти­га­ет­ся при­мер­но в диа­па­зоне 345–350 се­кунд и ра­вен 5,7 ин­дек­са для тон­кой ли­нии и 5,2 для тол­стой. В ну­ле­вой точ­ке, ко­гда от­сут­ству­ет ка­кая-ли­бо иерар­хия, тру­до­ем­кость зна­чи­тель­на, а при­ме­не­ние HBI поз­во­ли­ло по­лу­чить при­рост про­из­во­ди­тель­но­сти как ми­ни­мум в пять раз. Что и бы­ло под­твер­жде­но как при на­гру­зоч­ном те­сти­ро­ва­нии, так и в хо­де про­мыш­лен­ной экс­плу­а­та­ции CRM.

За­ви­си­мость тру­до­ем­ко­сти обработки за­про­са от зна­че­ния круп­но­го ин­дек­са

Newspapers in Russian

Newspapers from Russia

© PressReader. All rights reserved.