<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2015-03-23 15:18 GMT+00:00 Roberto Polli <span dir="ltr"><<a href="mailto:robipolli@gmail.com" target="_blank">robipolli@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Il 23 marzo 2015 13:38, enrico franchi <<a href="mailto:enrico.franchi@gmail.com">enrico.franchi@gmail.com</a>> ha scritto:<br>
<span class="">> quindi semplicemente non fa dump non fa nulla e i dati che devono persistere<br>
> finiscono altrove.<br>
</span>Chiaro. La mia curiosita era di tipo implementativo.<br>
<br>
Se non c'è soluzione se non nell'usare prodotti che non facciano il<br>
dump della ram su disco, possiamo dire che non c'è niente di male nel<br>
farlo con fork()+COW, giusto?<br>
<br>
E' il dump della RAM che è il male, no?</blockquote><div><br></div><div>Io non direi che e' "male" o bene. Farlo con fork() e' relativamente semplice perche' deleghi il lavoro sporco all'OS.</div><div>Se il resto di Redis e' fatto in modo da non avere bisogno di MVCC -- visto che e' tutto monothread --, beh, capisco il dolore di farlo apposta per fare i dump.</div><div><br></div><div>Se hai un sistema che effettivamente supporta parallelismo nei client (e quindi hai i classici problemi di isolation, blah blah blah) probabilmente vuoi comunque MVCC o qualcosa di analogo. E immagino che puoi usarlo anche per fare il dump. Questo a prescindere che sei in RAM.</div><div><br></div><div>Se poi sei su disco... in generale copiare i file cosi' come sono da problemi di stato inconsistente. Quindi ancora una volta o blocchi tutte le scritture mentre fai il dump, oppure usi qualche tecnica affine ad MVCC o a quello che usi per gestire i soliti problemi di concorrenza.</div><div><br></div><div>In generale, dal punto di vista della pianificazione delle risorse mi viene piu' facile lavorare con un affare che non ha un caso super-speciale per quell'operazione. Ovvero se uso postgres, *normalmente* avro' un consumo di memoria/disco legato al fatto che deve gestire l'isolation e il dump (che a quel punto per inciso mi serve per cose specifiche, non per la persistenza o per la sincronizzazione) non cambia troppo (a parte che sara' un'operazione particolarmente lunga). </div><div><br></div><div>Oh, in realta' se uso Redis lo so e considero suddetto dump come parte di quello che deve reggere la box. Diciamo che non mi piacciono troppo i grafici con picchi (anche regolari), perche' ho paura che se per qualche normalissimo motivo mi cresce il consumo di memoria -- che so... improvviso picco di traffico, vallo a sapere -- *e* mi parte il dump in quel momento sono a piedi, quindi semplicemente i conti mi si complicano un po'.</div><div><br></div><div><br></div><div><br></div><div> </div></div>-- <br><div class="gmail_signature"> .<br>..: -enrico-</div>
</div></div>