How does Graph Engine "fan out search" work?

300 Views Asked by At

I'm looking at Graph Engine (not to be confused with MSFT AD Graph), but I'm have questions about distributed "fanout search".

From what I can tell

  • Objects are saved in a distributed manner across N servers.
  • This assignment of N servers must not be altered during runtime
  • Based on some configuration settings, they can be "read only"
  • There is no "authentication" between the nodes, just commands that are fully trusted to be valid.

I am confused about

  • In what manner is the data sharded/partitioned across the nodes?
  • How invasive is that "Global Lock" which could be a bottleneck during writes
  • How many nodes at a time will be queried?

Ideally, there are visualizations like this one:

enter image description here

1

There are 1 best solutions below

0
On
  1. It's configurable via Global.CloudStorage.SetPartitionMethod. By default it's share-nothing and shards with the 64-bit key.
  2. By default no global lock, so if you want transactions you may want to roll your own 2PC protocol.
  3. That depends on how the graph is partitioned. If it's randomly partitioned, it is likely all the nodes will be touched.