6

dati obsoleti supponga che ho due nodi memcached (nodo A, B) all'inizio, e quando aggiungo un nuovo nodo C, una parte dei tasti sono remapped e grazie hashing coerente solo alcuni di loro.trattamento con memcached/hashing coerente

Supponiamo un valore con chiave "foo" originariamente al server A viene ora a mappato al server C.

Quando infine rimuovere il nodo C, la chiave deve essere mappato al nodo A di nuovo, ma in quel momento il nodo A contiene solo dati obsoleti.

Quindi, lo svuotamento dei dati è l'unico modo per risolvere questo problema?

risposta

2

Penso che l'unica cosa che devi fare con i dati obsoleti sia ... niente! sai che se si introduce un nuovo server, parte della cache sarà invalidata. È tutto! lascia che memcached ti sbarazzi dei dati obsoleti per te quando arriverà quel momento!

Un'altra cosa è che non puoi sbarazzarti degli oggetti obsoleti da solo, perché non sai quale server memorizza quell'oggetto (grazie all'algoritmo di hashing coerente).

spero di rispondere alla tua domanda.

2

Il problema si riduce a "i dati nella cache sono obsoleti"; quindi come correggerlo?

Quindi è necessario aggiornare la cache con l'ultimo valore. Non penso ci sia alcuna alternativa a questo. È possibile prendere in considerazione diversi approcci per ottimizzarlo in base ai requisiti del sistema.