• No results found

Nektingsadverbialet

In document Affrikat-fonemet i Haugesund bymål. (sider 87-91)

6 Drøfting av resultater

6.2 Leksikalske lån

6.2.1 Nektingsadverbialet

Este é o principal parâmetro da TWCS e define o tamanho da janela temporal dentro da qual as SSTables sofrerão compactação. Após passar pelo período de compactação, as

SSTables não sofrerão mais compactação oriunda da TWCS.

Seu valor mínimo é de 1 minuto e pode ir até milhares de anos. Neste trabalho, adotou-se intervalos de 1 minuto até o limite de 80 minutos, pois nos testes realizados observou-se que após esse limite não houve melhoria. O uso de intervalos muito longos também dificultaria o trabalho de simulação de ambientes IoT pois, além de ter que executar mais cenários, o tempo de execução passa a ter que ser maior, o que impacta diretamente nos prazos da pesquisa, que tem tempo limitado.

Conforme visto na Seção 3.3, a ferramenta Cassandra-Stress foi configurada para exe- cutar os testes de carga por uma duração fixa. Neste caso, as execuções que realizaram mais operações são as mais eficientes. Portanto, um indicador chave de perfomance é o número total de partições tocadas, que agrega partições inseridas e partições consultadas. Cada partição inserida, no modelo de dados usado, tem 300 linhas (5 séries temporais com 60 observações cada). Há que se ressaltar que cada partição pode ser visitada várias vezes por consultas, e a cada leitura esse indicador é incrementado. Esta grandeza é diretamente proporcional ao throughput, que mede a quantidade de operações por segundo. Por fim, a latência também está relacionada diretamente à performance, sendo outro indicador chave e por vezes são apresentadas as latências de leitura, de escrita e total.

Nos primeiros testes fixou-se a proporção de leitura em 10% das operações e variou-se o TTL de 1 a 3 horas. O tempo de execução dos testes variou de acordo com o TTL, pois para valores maiores, o tempo de execução também deve ser maior, para poder observar

Tabela 4.5: Tempo de Execução - Leitura 10%.

TTL Duração window size

1h 150min 1 a 80 2h 200min 1 a 80 3h 300min 1 a 50

dados expirando. Os valores de tempos de duração e os intervalos do tamanho da janela temporal estão na Tabela 4.5.

Os resultados da execução estão na Figura 4.5. Cada ponto do gráfico representa uma execução, com os valores de duração da Tabela 4.5. Os pontos máximos tiveram sua cor destacada. Como as três séries representadas apresentam execuções com diferentes durações, as séries que levam mais tempo possuem mais partições tocadas.

1000 1200 1400 1600 1800 2000 2200 0 10 20 30 40 50 60 70 80 P art iç õ es to cad as (x 1 0 0 0 ) compaction_window_size (min) TTL 1h TTL 2h TTL 3h

Figura 4.5: Número Total de Partições Tocadas - Leitura 10%.

Os pontos ótimos obtidos nas séries com TTL de 1h e 2h coincidem no mesmo tamanho de janela, de 10 minutos. Já na execução com TTL definido em 3h, o melhor desempenho ficou com a compaction window size definido em 25 minutos.

Em geral, as execuções que duram menos possuem maior número de partições tocadas por minuto, o que pode ser visto na Figura 4.6, que mostra o throughput de cada execução. Os pontos máximos tiveram sua cor destacada. Há uma relação direta entre o número de partições tocadas por segundo e o throughput, pois o Cassandra-Stress tool executa cada operação tocando uma única partição, por isso, os pontos ótimos quanto ao throughput foram os mesmos que os relativos às partições tocadas.

Nas execuções mais demoradas, há mais tempo para operações de inserção, o que resulta em um banco de dados mais carregado, isto é, com maior número de registros. Com um maior volume de dados, as operações tendem a ser mais lentas, pois no caso da leitura, há um universo maior para se procurar os dados e, no caso da escrita, as

60 80 100 120 140 160 180 0 10 20 30 40 50 60 70 80 Th ro u gh p u t (op er at io n s/ seg)

compaction window size (min) TTL 1h TTL 2h TTL 3h

Figura 4.6: Throughput - Leitura 10%.

operações têm que disputar recursos com as compactações de SSTables, que são de uso intensivo do sistema de I/O. Isso resulta num throughput menor nas execuções com maior duração. Para ilustrar, a Figura 4.7 exibe dados de throughput de dois casos de teste, das execuções que obtiveram os melhores desempenhos no cenário analisado, de 10% de proporção para operações de leitura. A série com TTL definido em 1h teve duração de 150 minutos, enquanto a série de TTL de 2h teve 200 minutos. O comportamento de ambas é semelhante até que os dados da primeira comecem a expirar, o que ocorre após 90 minutos (o grace period se soma ao TTL).

0 50 100 150 200 250 1 11 21 31 41 51 61 71 81 91 101 111 121 131 141 151 161 171 181 191 Th ro u gh p u t (o p s / segu n d o )

Tempo de execução (min) TTL 1h TTL 2h

Figura 4.7: Médias Móveis de 5 Períodos de Throughput - Duas execuções.

Os dados de throughput oscilam muito ponto a ponto, a cada intervalo de 30 segundos. Para suavizar as curvas e tornar o gráfico mais ilustrativo, foi aplicado às séries de dados de throughput, a média móvel de 5 períodos, mostrados na Figura 4.7. O uso de médias móveis é uma das maneiras mais simples de suavizar gráficos (NIST, 2003). Sua aplicação

é fácil, a cada ponto deve-se computar a média dos dois pontos anteriores, do ponto atual e de dois pontos posteriores.

A Figura 4.7 mostra que até os dados começarem a ser expurgados, o que acontece após 90 minutos, os valores de throughput são similares. A partir do minuto 101 o throughput da execução com TTL de 2h fica abaixo dos valores da execução com TTL de 1h. Isto ocorre porque a execução de TTL 2h passa a ter mais dados em relação à de TTL 1h. Com maior volume de dados, há maior carga das operações de compactação, bem como um maior universo para se buscar dados, para as operações de leitura, o que impacta negativamente no desempenho.

Outro indicador chave que mostra quais casos de testes são os mais eficientes é a latência média. Ela indica qual foi o tempo de resposta médio entre todas as operações de leitura e de escrita e é registrada em milissegundos. Quanto menor a latência, mais rápidas são as operações. A latência das execuções por cada compaction window size é apresentada na Figura 4.8. Igualmente aos outros gráficos de partições tocadas e de

throughput, os pontos ótimos das séries com TTL 1h, 2h e 3h foram, respectivamente,

com tamanhos de janela de 10, 10 e 25 minutos.

120 140 160 180 200 220 240 260 280 300 0 10 20 30 40 50 60 70 80 Latência m édi a (m s)

Compaction Window Size (min) TTL 1h TTL2h TTL3h

Figura 4.8: Latência Média com Proporção de Leitura em 10%.

A Figura 4.8 exibe a latência média total, de operações de leitura e de escrita, con- siderando que a escrita tem um peso bem maior nessa média, pois são responsáveis por 90% das operações nesse cenário. Entretanto, as latências de escrita e de leitura possuem valores bem distintos, com o tempo de resposta das operações de leitura sendo bem maior do que as operações de escrita. Isso se justifica porque cada operação de leitura pode re- cuperar até 500 linhas. Além disso, o Cassandra é otimizado para altas taxas de inserção (Lakshman & Malik, 2010).

A latência de escrita inicia com seu valor mínimo no menor intervalo de compaction window size, em 1 minuto e cresce até a última execução. A latência de leitura, por sua vez, tem seu valor mínimo no compaction window size de valor 9 minutos, que é um ponto fora da curva em todos os dados, pois houve um desempenho muito abaixo de seus pontos vizinhos. Se desconsiderarmos esse ponto, o valor mínimo de latência de leitura é em 15 minutos. Já o valor mínimo de latência total, considerando escrita e leitura é em 10 minutos, também ponto ótimo de throughput e de partições tocadas.

0 2 4 6 8 10 12 14 16 18 0 200 400 600 800 1000 1200 1 2 3 4 5 7 9 10 11 13 15 20 30 40 50 60 70 80 Lat ênci a Le itu ra / Lat ênci a Escrita Latênci a (m s)

Compaction Window Size (min) escrita total leitura leitura/escrita

Figura 4.9: Latência Média com Proporção de Leitura em 10% e TTL 1h.

A Figura 4.9 mostra as latências de leitura, de escrita e o total das execuções com dados com TTL de 1h. A latência de escrita é a menor medida dentre as representadas. A latência total, considerando escrita e leitura é mais próxima da latência de escrita, pois esta representa 90% das operações. As latências de leitura, calculada como a média entre as três consultas listadas na Seção 3.2, tem seus valores maiores, aproximadamente 10 vezes o tempo da latência de escrita. Uma razão entre a leitura e a escrita é exibida em uma linha para ressaltar que a proporção entre essas operações é algo crítico para o correto ajuste dos parâmetros do Cassandra, uma vez que os pontos ótimos de latências de escrita, leitura e total são em diferentes tamanhos de compaction window size. O eixo y da esquerda representa as latências das colunas, enquanto que o eixo y da direita mede o quociente entre as latências de leitura e escrita.

O ambiente de IoT é de escrita intensiva, com poucas ou nenhuma alteração de dado ou exclusão. No entanto, não existe uma definição entre a proporção de leitura e de escrita, pois isso varia de acordo com as aplicações. Foi visto, na Figura 4.9 que compaction window size diferentes geram pontos ótimos diferentes quanto à leitura e à escrita. Por isso, outros dois cenários de proporções foram testados: com 30% de operações de leitura e com 3% de operações de leitura.

O cenário já analisado teve a proporção de operações de leitura configuradas em 10%. A seguir, é analisado o cenário com 70% de escrita e 30% de leitura. Como as operações de leitura levam mais tempo, já era esperado que o número de partições tocadas fosse menor do que o cenário com 10% de operações de leitura.

1000 1100 1200 1300 1400 1500 1600 1700 1800 1900 2000 0 1 0 2 0 3 0 4 0 5 0 6 0 7 0 8 0 P artiçõ es to cadas (x 1 0 0 0 )

Compaction Window Size TTL 1h TTL 2h TTL 3h

Figura 4.10: Número Total de Partições Tocadas - Leitura 30%.

A Figura 4.10, de maneira semelhante à Figura 4.5, exibe o número de partições tocadas durante os testes com TTL de 1 a 3h. Cada ponto do gráfico representa uma execução e os pontos máximos de cada série tiveram sua cor alterada, pois representam os valores de janela temporal ótimos. Comparando as execuções com proporção de leitura em 30%, em relação à leitura 10%, tem-se que:

(i) O número de partições tocadas é menor. A execução mais eficiente do cenário 30% toca 4,54% menos partições, em média, do que as execuções mais eficientes do cenário de leitura em 10%;

(ii) Os valores de compaction window size que obtém os pontos mais eficientes são maiores no cenário de Leitura 30%. Para os TTL de 1h, 2h e 3h os valores foram respectivamente 22, 35 e 60 minutos.

Tamanhos de janela maiores significam que a compactação oriunda do TWCS vai ocorrer menos vezes. A compactação é uma operação de I/O intensivo, mas torna mais rápidas principalmente as operações de leitura. Portanto, era de se esperar que quanto mais compactações ocorressem, melhor seria o resultado com uma proporção maior de operações de leitura. Contudo, o que aconteceu foi o contrário, os tamanhos de janela ótimos foram maiores do que no cenário com leitura em 10%.

Para investigar o motivo de (ii), foi utilizado o script de leitura de logs de debug para observar qual foi o comportamento das operações de compactação. O log é gerado em

Tabela 4.6: Quantidade de Operações de Compactação em um Nó e sua Duração, com TTL 1h.

Leitura Janela STCS Duração média TWCS Duração média

10% 10min 69 15,95 ms 14 52,5 ms 30% 10min 71 16,11 ms 14 56,9 ms 30% 22min 156 18,02 ms 6 87,8 ms

cada nó e para essa análise foi utilizado o arquivo de somente um nó, o RT1, no entanto todos os nós apresentam números semelhantes, pois têm as mesmas configurações.

Dessa forma, foram comparadas duas execuções com TTL de 1h e com o compaction window size definido em 10 minutos, que é a configuração ótima do cenário de Leitura em 10%, além de comparar com a janela de compactação ótima do cenário de Leitura 30%, que foi com a janela definida em 22 minutos. Os números estão na Tabela 4.6, na qual as colunas STCS e TWCS representam a quantidade de compactações, oriundas dessas estratégias, que ocorreram durante toda a execução.

A Tabela 4.6 nos ajuda a entender por que no cenário com mais leitura, os tamanhos ótimos ficaram maiores. Enquanto a compactação TWCS não ocorre em seu intervalo de janela, as SSTables são compactadas pela STCS. Até o compaction window size com 22 minutos, a maior proporção entre compactações STCS em relação às compactações do TWCS torna a execução mais eficiente. Portanto, aumentar o tamanho do compaction window size diminui apenas o número de compactações do TWCS mas aumenta o número de compactações do STCS.

O outro cenário executado foi com 97% de operações de escrita e 3% de operações de leitura. O número de partições tocadas para execuções com TTL de 1 a 3h é maior do que os cenários com proporção de leitura em 10% e 30% e pode ser visto na Figura 4.11. Os pontos máximos tiveram suas cores destacadas.

No cenário de leitura 3% o número de partições tocadas supera os cenários de leitura 10% e de leitura 30%. No primeiro caso, o incremento é de 12% de partições tocadas e no último é de 18%. Isto ocorreu porque as operações de INSERT são mais rápidas do que as operações de leitura, e este cenário possui menos operações de leitura.

Os valores de compaction window size para os cenários de TTL de 1h, 2h e 3h foram em 2 minutos, 12 minutos e 35 minutos, respectivamente. Em todos os cenários se observou que, quanto maior o TTL, maior ou igual deverá ser o compaction window size para se obter uma configuração próxima à ótima.

Os pontos ótimos de compaction window size foram sumarizados na Tabela 4.7. Esses resultados são a base do desenvolvimento do mecanismo C*DynaConf.

1200 1400 1600 1800 2000 2200 2400 0 1 0 2 0 3 0 4 0 5 0 6 0 P artiçõ es to cad as (x1 0 0 0 )

Compaction Window Size TTL 1h TTL 2h TTL 3h

Figura 4.11: Número Total de Partições Tocadas - Leitura 3%.

Tabela 4.7: Compaction Window Size - Pontos Ótimos (minutos).

Cenários TTL 1h TTL 2h TTL 3h

Leitura 3% 2 12 35 Leitura 10% 10 10 25 Leitura 30% 22 35 60

In document Affrikat-fonemet i Haugesund bymål. (sider 87-91)