These are chat archives for RBMHTechnology/eventuate

28th
Feb 2018
Volker Stampa
@volkerstampa
Feb 28 2018 07:05
Good point. Actually I am not so much concerned about the work they do but more about the memory it consumes, given that this stabilization is about optimizing memory consumption in the first place, right? As I said I am not really into the CRDTs so I am unsure about the optimization potential. What do you think, could this approach jeopardize what we would gain?
gabrielgiussi
@gabrielgiussi
Feb 28 2018 22:51

The overhead will be a Map[String,VectorTime] per CRDTActor so it depends on:

  • The number of partitions that conforms the EventLog. This impacts both the number of entries in the Map and the number of entries in the VectorTime
  • The number of crdts in memory

So, the answer will be "it depends", for example.

  1. 1000 crdts with 1000 operations per crdt. 10 partitions
    Without stabilization: 1000 crdts 1000 ops 10 partitions = 10.000.000 (String,Long) pairs on memory
    With stabilization (considering that all ops are stable already): 1000 crdts 10 partitions 10 partitions = 100.000 (String,Long) pairs on memory
  2. 1000 crdts with 10 operations per crdt. 10 partitions
    Without stabilization: 1000 crdts 10 ops 10 partitions = 100.000 (String,Long) pairs on memory
    With stabilization (considering that all ops are stable already): 1000 crdts 10 partitions 10 partitions = 100.000 (String,Long) pairs on memory

In my opinion, solve stability per service makes more sense, but this requires persist the TCStable for the reasons discussed before.