[Python] 21 modi per dire checkpoint: (LOCK, COW & Co) [era: Io lo so che coem...]

enrico franchi enrico.franchi a gmail.com
Lun 23 Mar 2015 13:38:17 CET


2015-03-22 23:20 GMT+00:00 Roberto Polli <robipolli a gmail.com>:

>
> > fare il fork per dumpare
> > il database... complicata da fare filare
> > liscia quando si fanno operations.
> Beh, dovendo fare una snapshot della RAM consistente, penserei:
>  - o fai lock;
>  - o fai cow;
>  - o ti tieni mvcc;
>  - o ti replichi su un'altro host e deleghi il dump a un nodo (eg MySQL).
>

Ma si, essenzialmente si.


> Implementarti mvcc costa di pių che aggiungere i banchi...
>

Dipende: tipicamente non e' quello che faccio io; ovvero non e' che mi
riscrivo Redis. Se Redis mi da cazzi per via di sta cosa, prendo un
prodotto diverso. E non sono assolutamente convinto che mi costi meno che
aggiungere RAM. Anche perche', come dicevo:
1. il concetto di "aggiungere RAM" e' un po' obsoleto. quello che posso
fare e' farmi dare una macchina piu' grossa.
2. non e' che me ne faccio dare una. o dieci...
3. c'e' da pagare il costo sostenuto di sta roba.

Quindi in pratica direi che mi costa meno cambiare tool. Ora, in effetti,
semplicemente il problema lo ho bypassato rendendo redis completamente
transiente; quindi semplicemente non fa dump non fa nulla e i dati che
devono persistere finiscono altrove.

Che e' come dire che ho sostituito Redis (almeno per un certo use-case).


> > per me i "se" diventano "quando" e i "puo'" diventano "quanti".
> Vista la tua esperienza, come risolvi di solito?
>

Pianifico per il disastro. Cerco di fare in modo che i servizi possano
sostenere diversi tipi di fallimenti e possibilmente recuperare (o almeno
stabilizzarsi) per i fatti loro e poi ci si pensa il giorno dopo. Quando
questo non e' possibile, faccio in modo che chi deve prenderli a calci
abbia procedure ben definite per farlo.

Sono sempre le stesse cose... distribuire geograficamente, per dc.
ridondanza a livello di host. eventualmente altri tipi di ridondanza.
limitare il blast radius di un evento, etc etc etc.




-- 
.
..: -enrico-
-------------- parte successiva --------------
Un allegato HTML č stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150323/f275f501/attachment.html>


Maggiori informazioni sulla lista Python