Large nodes / high throughput

Hi

I wonder how well memgraph scales with:

  • large nodes - tens of MB in properties
  • high write throughput - multiple GB per minute

Does memgraph utilise some form of zero-copy/zero-serialisation protocol, so that serialised data on clients bypass additional data marshalling steps on memgraph side?

Hi @asido!

Welcome to the Memgraph forum :smiley: These are excellent questions!

In v1.1, we introduced custom property serialization/compression, which reduces memory usage. In essence, each supported data type is stored in the most compact way possible. Memgraph also uses small buffer optimization. It’s possible to store an arbitrary number of properties, and for example, strings could be arbitrarily long. But Memgraph is not heavily optimized to store large properties. Our focus is on graph storage and executing analytical algorithms on top.

Regarding the wright throughput, Memgraph can offer a lot because of graph focused implementation of MVCC and in-memory approach. But again, all towards graph workloads. We are going to publish a detailed Memgraph Benchmarking blog post very soon. I’ll let you know as soon as the post becomes public.

Memgraph implements Bolt protocol. We try to avoid copying as much as possible, ofc if it’s beneficial for performance.

I hope this helps. If not, I can deep dive :smiley:

Please download and try Memgraph from https://memgraph.com/download or spin-up a cloud instance https://cloud.memgraph.com. Any feedback is welcome, especially data about some specific workload!