|
| 1 | +--- |
| 2 | +title: Shuffle-sharding |
| 3 | +id: shuffle-sharding |
| 4 | +date: 2020-03-04 |
| 5 | +full_link: |
| 6 | +short_description: > |
| 7 | + Uma técnica para atribuir requisições para filas que proporciona melhor isolamento do que efetuar a operação módulo (resto da divisão) do _hash_ da requisição pelo número de filas. |
| 8 | +
|
| 9 | +aka: |
| 10 | +tags: |
| 11 | +- fundamental |
| 12 | +--- |
| 13 | +Uma técnica para atribuir requisições para filas que proporciona melhor isolamento do que efetuar a operação módulo (resto da divisão) do _hash_ da requisição pelo número de filas. |
| 14 | + |
| 15 | +<!--more--> |
| 16 | + |
| 17 | +Nos preocupamos frequentemente em isolar diferentes fluxos de requisições |
| 18 | +uma das outras, de modo que um fluxo de alta intensidade não afete um fluxo de baixa intensidade. |
| 19 | +Uma forma simples de colocar requisições em fila é gerar um _hash_ baseado |
| 20 | +em características da requisição, efetuar a operação módulo, ou resto da divisão, do _hash_ calculado pelo número de filas, para ter o |
| 21 | +índice da fila à ser usada. A função _hash_ usa como entrada características da requisição |
| 22 | +que se alinha com o fluxo. Por exemplo, na Internet isso é frequentemente a tupla de 5 elementos de |
| 23 | +endereço de origem e destino, protocolo, e portas de origem e destino. |
| 24 | + |
| 25 | +Esse simples esquema baseado em _hash_ tem a propriedade de que qualquer fluxo de alta intensidade |
| 26 | +irá tirar todos fluxos de baixa intensidade dessa mesma fila. |
| 27 | +Fornecer um bom isolamento para um grande número de fluxos requer um grande |
| 28 | +número de filas, o que é problemático. Shuffle-sharding é uma |
| 29 | +técnica mais ágil que pode fazer um trabalho melhor de isolar fluxos de baixa intensidade |
| 30 | +dos fluxos de alta intensidade. A terminologia do shuffle-sharding faz uso |
| 31 | +da metáfora de distribuição da mão de cartas; cada fila é uma carta metafórica. |
| 32 | +A técnica de shuffle-sharding começa fazendo _hashing_ das características de identificação |
| 33 | +do fluxo da solicitação, para produzir um valor _hash_ com dezenas ou mais bits. |
| 34 | +Em seguida, o valor _hash_ é usado como uma fonte de entropia para embaralhar o baralho e |
| 35 | +dar uma mão de cartas (filas). Todas as filas tratadas são examinadas e a solicitação |
| 36 | +é colocada em uma das filas examinadas com menor tamanho. |
| 37 | +Com um número modesto de cartas, não custa examinar todas as cartas distribudas, em um dado |
| 38 | +fluxo de baixa intensidade que tem uma boa chance de se esquivar dos efeitos de um dado |
| 39 | +fluxo de alta intensidade. |
| 40 | +Com um número maior de cartas é caro examinar as filas tratadas e mais dificil para que os |
| 41 | +fluxos de baixa intensidade se esquivem do efeitos coletivos de um conjunto de fluxos de alta |
| 42 | +intensidade. Assim, o tamanho da mão do baralho deve ser escolhido criteriosamente. |
0 commit comments