|
|
|
|
|
by ddorian43
3698 days ago
|
|
Mongodb is also in agpl. But the drivers probably aren't. So you can use it and be fine. And if you make changes to VoltDb you have to share them. 11.5 How much data can be stored in Mnesia? Dets uses 32 bit integers for file offsets, so the largest possible mnesia table (for now) is 4Gb. |
|
Ehhhhhhhh, kinda, but not really. A couple of things: [0]
* If you use a disc_only_copies table, your max table size is ~2GB because that's apparently the largest file that DETS will work with. What's more, if your table grows to ~2GB, future writes (to that table) will silently fail until the table size is reduced.(!!!) You can kinda get around this limitation by sharding your table [1], but the hash used to determine what key goes to which shard isn't very balanced... sometimes you luck out and your shards are pretty much all the same size. Other times you end up with a few outsized shards.
* However! Everyone on the erlang-questions mailing list says that disc_copies and ram_copies tables are _NOT_ subject to this limit, so they can grow arbitrarily large.
* And, the general consensus seems to be that you really don't want to be using Mnesia in disc_only_copies mode... if you have too much data to fit into RAM, you should probably consider using something else to store your data. This isn't to say that using Mnesia in disc_only mode is bad or hazardous, [2] but that it's substantially slower than disc_copies or ram_copies, and you run the risk of bumping up against the DETS file size limitation.
[0] All observations valid for Erlang 17->18 only. Check Erlang release notes to see if major changes have occurred.
[1] Mnesia handles sharded tables really well, even if the documentation for the feature isn't the best.
[2] I use it in disc_only mode for one of my projects... it's how I learned about that mode's limitations. :p