SQL feiler ved 3+ hopp. GraphDB-er gjør ikke det. Tenk deg å finne alle kontoer innenfor 3 hopp fra en mistenkelig transaksjon. Eller å koble fragmenterte kunderegistre på tvers av systemer gjennom delte e-poster og telefonnumre. Dette er graftraverseringsforespørsler. SQL kan håndtere relasjoner, men ikke dybde. Selvfølgelig kan du skrive rekursive CTE-er og selv-joins. Det fungerer ved 1-2 hopp. Men går du dypere, skjer to ting: - Spørringen blir uleselig - Og ytelsestankene Hvert hopp legger til en ny selv-join. Ved hopp 5-6 ser du på forespørsler som varer i flere minutter og faller fra hverandre under belastning. Det samme spørsmålet i Cypher: MATCH (t:Transaksjon {id: 'TXN-001'})-[:INVOLVES*1.. 3]-(a:Konto) RETURNER DISTINKT a.name, en telefon 3 linjer. Det høres ut som spørsmålet du stiller. Skalerer til hvilken som helst dybde. Dette er det grafdatabaser er laget for. FalkorDB er en bok verdt å kjenne til. Det er åpen kildekode. Og det tar en annen arkitektonisk tilnærming sammenlignet med de fleste grafdatabaser. De fleste grafdatabaser jager pekere fra node til node under traversering. FalkorDB gjør ikke det. Det er bygget på GraphBLAS, et lineært algebra-rammeverk som representerer grafoperasjoner som sparsomme matriseberegninger. Hvert hopp blir i stedet en optimalisert matriseoperasjon. Resultatet: - Bedre cache-oppførsel - Parallell beregning over hopp...