[erlang-questions] Desing of MVC models
Ludovic Demblans
ludovic@REDACTED
Sun Sep 15 22:44:17 CEST 2013
Hi Jesper, i don't really understand why you advise me to use a very
fast DB, (like voltDB) because your previous point was that if things
are kept in state, storing it to the database should only be done from
time to time (like just after killing a big boss).
I want my models transient (even implemented as regular gen_servers),
but i don't want to brutal-kill them : I just ask them gently to
terminate and to store their data before. So they have time to do so.
Or maybe you advised to not save data but, as precise moments, backup
all the live data of the server, thus needing a very fast database ?
Thank you,
I Hope your mnesia holds it out :)
Ludovic
Le Fri, 13 Sep 2013 13:37:20 +0200, Jesper Louis Andersen
<jesper.louis.andersen@REDACTED> a écrit:
> On Fri, Sep 13, 2013 at 1:01 PM, Dmitry Kolesnikov
> <dmkolesnikov@REDACTED>wrote:
>
>> * Use external DB layer but make asynchronous checkpoint of process
>> status
>
>
> One way is to sync checkpoint at "big moments" in game. Say you've just
> slain Giant Behemoth Kraken Lurker In The Sky (GBKLITS). At this point,
> it
> makes sense to write your state back. After all, GBKLITS is hard to kill.
> In turn, you need a database with a very high write speed, since you will
> mostly be checkpointing data back to disk and very rarely read in state.
> In
> principle, you could just scan a disk_log file at startup, but this is
> unfeasible for searching.
>
> Good stores for this kind of data are either column stores (Kdb, Vertica,
> Cassandra), "SSTable"-variants (LevelDB), or certain "NewSQL" stores
> (VoltDB comes to mind). Given enough cluster size and enough sharding the
> write speed of a VoltDB cluster approached a million writes a second,
> albeit for rather simple stores/updates. But this means you can keep up,
> even for very big MMO-worlds with this solution.
>
> Mnesia could be used to hold certain in-memory state which has to be
> shared
> amongst users. But as a write-heavy store, I would avoid it[0]
>
> [0] Incidentally, I am currently looking at a mnesia db taking some 7000
> writes per second, but I AM NOT RECOMMENDING YOU DO THAT :P
--
Utilisant le logiciel de courrier révolutionnaire d'Opera :
http://www.opera.com/mail/
More information about the erlang-questions
mailing list