TechnologyApril 6, 2012

Multitenant Graph Applications

Marko A. Rodriguez
Marko A. Rodriguez
Multitenant Graph Applications
~$ gremlin
         \,,,/
         (o o)
-----oOOo-(_)-oOOo-----
gremlin> g = new PartitionGraph(new TinkerGraph(), '_partition', 'pgp')
==>partitiongraph[tinkergraph[vertices:0 edges:0]]
gremlin> g.getPartitionKey() 
==>_partition
gremlin> g.getReadPartitions()    
==>pgp
gremlin> g.getWritePartition()
==>pgp
gremlin> gremlinPgp = g.addVertex('gremlin@pipesgeneralpractice')
==>v[gremlin@pipesgeneralpractice]
gremlin> g.setWritePartition('tmc')
gremlin> gremlinTmc = g.addVertex('gremlin@tinkerpopmedicalcenter')
==>v[gremlin@tinkerpopmedicalcenter]
gremlin> g.V
==>v[gremlin@pipesgeneralpractice]
gremlin> g.removeReadPartition('pgp')
gremlin> g.addReadPartition('tmc')
gremlin> g.V
==>v[gremlin@tinkerpopmedicalcenter]
gremlin> g.setWritePartition('snomed')
gremlin> painInRightLeg = g.addVertex('snomed:287048003', [name:'Pain in right leg (finding)'])
==>v[snomed:287048003]
gremlin> painInLowerLimb = g.addVertex('snomed:10601006', [name:'Pain in lower limb (finding)'])
==>v[snomed:10601006]
gremlin> g.addEdge(painInRightLeg, painInLowerLimb, 'broader')
==>e[0][snomed:287048003-broader->snomed:10601006]
gremlin> g.setWritePartition('pgp')
gremlin> g.addEdge(gremlinPgp, painInRightLeg, 'complainedOf')
==>e[1][gremlin@pipesgeneralpractice-complainedOf->snomed:287048003]
gremlin> g.setWritePartition('tmc')
gremlin> g.addEdge(gremlinTmc, painInRightLeg, 'complainedOf')
==>e[2][gremlin@tinkerpopmedicalcenter-complainedOf->snomed:287048003]
gremlin> g.addReadPartition('snomed')
gremlin> painInLowerLimb.in('broader').loop(1){true}{it.object.in('complainedOf').count() > 0}.in('complainedOf')
==>v[gremlin@tinkerpopmedicalcenter]
==>v[rexster@tinkerpopmedicalcenter]
==>v[frames@tinkerpopmedicalcenter]
gremlin> g.addReadPartition('pgp')
gremlin> g.addReadPartition('tmc')
gremlin> g.addReadPartition('snomed')
gremlin> g.V
==>v[rexster@tinkerpopmedicalcenter]
==>v[snomed:287048003]
==>v[frames@tinkerpopmedicalcenter]
==>v[snomed:10601006]
==>v[gremlin@tinkerpopmedicalcenter]
==>v[gremlin@pipesgeneralpractice]
gremlin> g.E
==>e[3][rexster@tinkerpopmedicalcenter-complainedOf->snomed:287048003]
==>e[2][gremlin@tinkerpopmedicalcenter-complainedOf->snomed:287048003]
==>e[1][gremlin@pipesgeneralpractice-complainedOf->snomed:287048003]
==>e[0][snomed:287048003-broader->snomed:10601006]
==>e[4][gremlin@tinkerpopmedicalcenter-sameAs->gremlin@pipesgeneralpractice]
==>e[5][frames@tinkerpopmedicalcenter-complainedOf->snomed:287048003]
Discover more
DSE Graph
Share

One-stop Data API for Production GenAI

Astra DB gives JavaScript developers a complete data API and out-of-the-box integrations that make it easier to build production RAG apps with high relevancy and low latency.