Sto partizionando un flusso di dati di input tra n
servers. Il modo più semplice per farlo è usare l'hash di alcune proprietà di ciascun pacchetto di dati di input per assegnare un singolo server, usando mod o simili, e farlo con esso.
Tuttavia, desidero un certo grado di ripresa - se un server va giù, non si perde nulla. Voglio partizionare ogni pacchetto di dati in m
server, dove 1 < m < n
, con ogni pacchetto di dati garantito per andare almeno al m
server (ma può essere più). Inoltre, voglio che il partizionamento sia stateless, deterministico e ben distribuito - il calcolo utilizza solo l'hash (es) dei dati di input.
Questo sembra qualcosa su cui sono stati scritti articoli di ricerca, ma il mio google-fu mi ha fallito. Esistono algoritmi esistenti che lo fanno, idealmente generalizzabili in n
e m
?