GUID a distribuzione uniforme della benna della dimensione N [chiusa]

3

Come può distribuire uniformemente e deterministicamente un insieme di GUID in bucket N.

  1. N può essere piccolo come 2.
  2. È necessario assicurarsi che lo stesso GUID sia sempre mappato allo stesso bucket.
  3. Non è possibile utilizzare alcuna memoria aggiuntiva.
  4. Il set GUID di input non è noto in anticipo e verrà generato utilizzando le funzioni di libreria comuni disponibili nelle librerie standard disponibili in c #, java ecc.

BucketId = GUID parte casuale% N, soddisfa la parte di coerenza, ma, non penso che sarà uniforme o no.

    
posta FaisalMansoor 06.06.2015 - 20:27
fonte

1 risposta

5

(Nota: probabilmente si intende "to N bucket". O "per un gruppo di bucket di dimensione N".)

La "parte casuale GUID% N" è la più uniforme che tu possa mai sperare.

La mancanza di uniformità sarà evidente solo in un piccolo set di dati, in cui le prestazioni non contano comunque. In un ampio set di dati, dove le prestazioni sono importanti, sarà abbastanza uniforme.

Naturalmente, questi sono numeri casuali di cui stiamo parlando, quindi l'uniformità assoluta (tutti i bucket con lo stesso identico carico) è praticamente impossibile.

Quindi, quando parli di uniformità, e sapendo che non puoi avere un'assoluta uniformità, devi essere disposto ad accettare un'uniformità "abbastanza buona". Il che a sua volta significa che devi avere in mente alcuni requisiti di uniformità particolari. Per favore dicci le tue esigenze e perché sei arrivato a loro.

Che cosa, non hai tali requisiti? Sei solo preoccupato prima di avere un problema reale nelle tue mani? Bene, allora ti consiglio di smettere di preoccuparti dell'uniformità offerta da "GUID random part% N". Con ogni probabilità sarà molto meglio di quello che avresti mai bisogno.

(E, in ogni caso, imbattibile.)

    
risposta data 06.06.2015 - 20:46
fonte

Leggi altre domande sui tag