thinkaurelius / titan

Distributed Graph Database
http://titandb.io
Apache License 2.0
5.25k stars 1.01k forks source link

Question: Titan cassandra limitations #1383

Open mglusiuk opened 7 years ago

mglusiuk commented 7 years ago

Hi,

"Titan can store up to a quintillion edges (2^60) and half as many vertices. That limitation is imposed by Titan’s id scheme."

"The maximum number of cells (rows x columns) in a single partition is 2 billion."

2 billions is about (2^31)

in cassandra schema we always have 2 columns per table so you could store about (2^30) values per key

so if not mistaken "half as many vertices" is not for cassandra storage backend?

I'm using titan 0.4.4 and after having like 50M+ vertices I have spot cassandra started to complain about "Compacting large partition titan/vertexindex:00". As I understand partition for key 0x00 already is too big and start to causing performance during compaction. Also I spot that it contains one value per each created vertex (8+8=16bytes). so it is already bigger than 500MB in size which is already bigger than cassandra recomendation. http://docs.datastax.com/en/landing_page/doc/landing_page/planning/planningPartitionSize.html

So my question is what is real titan limit for cassandra backend which will not "kill" cassandra?

Btw I also spot that some keys from "edgestore" table for "supernodes" are also bigger than 1GB with my current graph.

Could you please explain how titan stores data in cassandra and how to configure it to prevent storing huge rows?