Programiranje

Odprtokodni Microsoft Graph Engine prevzame Neo4j

Včasih so odnosi med podatki, ki ste jih zbrali, pomembnejši od samih podatkov. (Glejte: Facebook monetizira vaš seznam prijateljev.) Takrat mi pride v poštev sistem za obdelavo grafov. To je pomembna, a pogosto slabo razumljena metoda za raziskovanje medsebojnega povezovanja elementov v naboru podatkov.

Microsoft to področje raziskuje vsaj od leta 2013, ko je objavil članek, ki opisuje projekt Trinity, grafični stroj v spominu, ki temelji na oblaku. Plodovi truda, znani kot Microsoft Graph Engine, so zdaj na voljo kot odprtokodni projekt z licenco MIT kot alternativa podobnim Neo4j ali nedavno objavljeni JanusGraph, ki ga je izdala fundacija Linux.

Vse je povezano

Microsoft Graph Engine (GE) imenuje "tako shramba RAM-a kot računalniški mehanizem." Podatke lahko vstavite v GE in jih pridobite z veliko hitrostjo, saj se hranijo v pomnilniku in se po potrebi zapisujejo nazaj na disk. Lahko deluje kot preprosta shramba ključ-vrednost, kot je Memcached, vendar je Redis morda boljša primerjava, saj GE podatke shranjuje v močno vtipkane sheme (niz, celo število itd.).

Del enačbe "računalniški mehanizem" pomeni, da GE izvaja porazdeljene algoritme med vozlišči, zapisane v jeziku C #. Ni optimiziran za določeno vrsto algoritma grafov, zato bo verjetno všeč tistim, ki želijo napisati lastne algoritme za raziskovanje grafov - ali preprosto napisati lastne porazdeljene algoritme.

"Namesto da bi poskušal zagotoviti izčrpen nabor vgrajenih računskih modulov," navaja Microsoftova dokumentacija, "GE poskuša zagotoviti splošne gradnike, ki nam omogočajo enostavno izdelavo takšnih modulov." Ti bloki vključujejo sistem za sinhrono in asinhrono pošiljanje sporočil ter jezik poizvedb grafov LIKQ, ki ga že uporablja API za akademsko iskanje grafov v Microsoftovih kognitivnih storitvah.

Različni načini skozi labirint

Kako se vse to oblikuje v primerjavi z vodilno odprtokodno bazo grafov Neo4j? Prvič, Neo4j je na trgu že dlje in ima obstoječo bazo uporabnikov. Na voljo je tudi v odprtokodni izdaji skupnosti in komercialnem izdelku, medtem ko je GE trenutno le odprtokodni projekt.

Kljub temu pa samo komercialna, podjetniško usmerjena izdaja Neo4j podpira ostrenje in kopiranje. Nasprotno pa je GE združen v privzeto odprtokodno inkarnacijo, čeprav združevanje v skupine Neo4j in GE zahteva ročno nastavitev. V primeru GE je treba vloge za vsako vozlišče v gruči (strežnike in, neobvezno, proxyje, ki združujejo poizvedbe) konfigurirati ročno, odvisno od primera uporabe.

Druga porazdeljena baza grafov, ki jo je vredno primerjati z GE, je JanusGraph, novi projekt pod pokroviteljstvom fundacije Linux, ki ga prispevajo Google, Hortonworks in IBM. Zasnovan je za tesno sodelovanje z ekosistemom Hadoop in njegovo izkoriščanje. Elasticsearch in Lucene se lahko uporabljata kot mehanizma za indeksiranje, Cassandra in HBase pa kot shrambi podatkov. Pri GE je treba vanj najprej uvoziti podatke.

Zdi se, da si Microsoft prizadeva z GE, ni neposredno tekmovanje s temi projekti. Namesto tega je GE del porazdeljene infrastrukture za shranjevanje podatkov, ki sprejema nove podatke in zagotavlja izračun grafov kot eno svojih več prednosti. Njegova liberalna licenca omogoča tudi enostavno namestitev v druge izdelke ali tako, da jo je mogoče enostavno prilagoditi za gostovanje. Ni jasno, ali je Microsoft uporabljal GE kot del katerega koli lastnega sistema (čeprav je uporabljal LIKQ, kot je navedeno zgoraj).

Če se tisti, ki gradijo na ne-Microsoftovih platformah, želijo preizkusiti Graph Engine, po navedbah enega od razvijalcev kmalu prihaja podpora za več platform za Linux / BSD.

$config[zx-auto] not found$config[zx-overlay] not found