• No results found

Presentasjon av kyrkjeårstidene og tekstane Advent

Endringsframlegg til 1. innstilling

Hovudtema 4 Presentasjon av kyrkjeårstidene og tekstane Advent

Depois de concluirmos o estudo sobre a escalabilidade e redundância, era importante estudar com mais detalhe o balanceamento, de forma a que o Mongo DB detete que a BD se encontra desequilibrada e, de forma automática, correr o processo do balancer e distribuir os chunks de forma uniforme pelos diferentes shards que compõe a BD.

58

59

Bibliografia

1. Database. Wikipédia. [Online] https://en.wikipedia.org/wiki/Database. 2. MongoDB For Giant Ideas. [Online] https://www.mongodb.com.

3. Nosql database: New era of databases for big data analytics-classification, characteristics

and comparison. Moniruzzaman , A e Hossain, Syed . 2013, International Journal of Database

Theory and Application, Vol. 6.

4. Parallel and Distributed Databases. pp. 726-763.

5. NoSQL evaluation: A use case oriented survey. Hecht, Robin e Jablonski, Stefan. s.l. : IEEE, 2011. In Cloud and Service Computing (CSC), 2011 International Conference on. pp. 336-341.

6. Rezende, Ricardo. Normalização e desnormalização de dados. DEVMEDIA. [Online] 2012. https://www.devmedia.com.br/normalizacao-e-desnormalizacao-de-dados/24345.

7. Type of NOSQL databases and its comparison with relational databases. Nayak, Ameya, Poriya, Anil e Poojary, Dikshay . Março de 2013, International Journal of Applied Information Systems, Vol. 5, pp. 16-19.

8. NoSQL systems for big data management. Gudivada, Venkat N, Rao, Dhana e Raghavan, Vijay V. s.l. : IEEE, 2014. In Services (SERVICES), 2014 IEEE World Congress on. pp. 190- 197.

9. Scalable SQL and NoSQL data stores. Cattell, Rick. s.l. : York, ACM New, Dezembro de 2010, Acm Sigmod Record, Vol. 39, pp. 12-27.

10. Carzolio, Juan. A Guide to Consistent Hashing. Toptal. [Online] https://www.toptal.com/big-data/consistent-hashing.

11. CloudBasic, Inc. Synchronous vs Asynchronous Replication. CloudBasic. [Online] 1 de Maio de 2016. http://cloudbasic.net/white-papers/synchronous-vs-asynchronous-replication/.

12. Handling big data using NoSQL. Bhogal, Jagdev e Choksi, Imran . s.l. : IEEE, 2015. In Advanced Information Networking and Applications Workshops (WAINA), 2015 IEEE 29th International Conference on. pp. 393-398.

13. Robinson, Henry. CAP Confusion: Problems with ‘partition tolerance’. Cloudera

Engineering Blog. [Online] 26 de Abril de 2010. http://blog.cloudera.com/blog/2010/04/cap-

confusion-problems-with-partition-tolerance/.

14. A performance comparison of SQL and NoSQL databases. Li, Yishan e Manoharan, Sathiamoorthy . s.l. : IEEE, 2013. Communications, computers and signal processing (PACRIM), 2013 IEEE pacific rim conference on. pp. 15-19.

60

15. NoSQL database systems: a survey and decision guidance. Gessert, Felix , et al. s.l. : SpringerLink, 2017, Computer Science-Research and Development, Vol. 32, pp. 353-365.

16. NoSQL databases. Strauch, Christof . 2011, Lecture Notes, Stuttgart Media University, Vol. 20.

17. CouchDB Relax. [Online] http://couchdb.apache.org/.

18. Survey on NoSQL database. Han, Jing , et al. s.l. : IEEE, 2011. In Pervasive Computing and Applications (ICPCA), 2011 6th International Conference on. pp. 363-366.

19. AWS. [Online] https://aws.amazon.com/pt/dynamodb/.

20. Apache Cassandra. Apache Cassandra. [Online] http://cassandra.apache.org/.

21. Anderson, J. Chris, Lehnardt, Jan e Slater, Noah. CouchDB: The Definitive Guide: Time

to Relax. s.l. : O'Reilly Media, Inc., 2010. pp. 166-167.

22. Rouse, Margaret. Failover. TechTarget. [Online] Setembro de 2005. https://searchstorage.techtarget.com/definition/failover.

23. Neo4j. [Online] https://neo4j.com/.

24. An overview of graph databases. Shimpi, Darshana e Chaudhari, Sangita . 2012. International Conference in Recent Trends in Information Technology and Computer Science (ICRTITCS). pp. 16-22.

25. Amador, Gonçalo e Alexandre, Ricardo. Sistemas Distribuidos e Tolerancia a Falhas. [Online] http://www.di.ubi.pt/~pprata/sdtf/Ti_DBdistribuidasGoncaloRicardo.pdf.

26. Kolonko , Kamil . Performance comparison of the most popular relational and non- relational database management systems. DiVa. [Online] 23 de 04 de 2018. http://www.diva- portal.org/smash/record.jsf?pid=diva2%3A1199667&dswid=-337.

27. Kobellarz, Jordan. #6 MongoDB - Replicação. [Online] 9 de Agosto de 2015. http://jordankobellarz.github.io/mongodb/2015/08/09/mongodb-replicacao.html.

28. Performance Evaluation of NoSQL Databases: A Case Study. Klein, John, et al. Austin, Texas, USA : ACM, 2015.

29. Análise de Desempenho do MongoDB. Dourado Neto , Aloísio , et al. Lisbon, ortugal : IEEE, 2017.

30. A Study on Data Input and Output Performance Comparison of MongoDB and

PostgreSQL in the Big Data Environment. Min-Gyue Jung, et al. [ed.] IEEE. 2015. 2015 8th

61

Anexos

62

Apêndice A – 1ª Exp. Escalabilidade: experiência 1.1

Para 100.000 registos.

Figura A.1: Distribuição dos dados pelos shards para 100.000 registos.

Pelo gráfico da temperatura, Fig.A.2, verifica-se que houve mais dados enviados com valores de temperatura 13 e 19, logo vai haver mais dados no shard 0 e no shard 2 (Fig.A.1).

63

Figura A.3: Dados registados no shard 0.

64

Figura A.5: Dados registados no shard 2.

Para 500.000 registos.

Figura A.6: Distribuição dos dados pelos shards para 500.000 registos.

Pelo gráfico da temperatura, Fig.A.7, verifica-se que houve mais dados enviados com valores de temperatura 13 e 19, logo vai haver mais dados no shard 0 e no shard 2 (Fig. A.6).

65

Figura A.7:Gráfico que representa a temperatura dos dados enviados pelo sensor.

66

Figura A.9:Dados registados no shard 1.

67

Para 1.000.000 de registos.

Figura A.11: Distribuição dos dados pelos shards para 1.000.000 registos.

Pelo gráfico da temperatura, Fig.A.12, verifica-se que houve mais dados enviados com valor de temperatura 16, logo vai haver mais dados no shard 0 (Fig. A.11).

68

Figura A.13:Dados registados no shard 0.

69

Para 5.000.000 registos.

Figura A.15: Distribuição dos dados pelos shards para 5.000.000 registos.

Pelos gráficos da temperatura, Fig. A.16 e Fig. A.17, verifica-se que houve mais dados enviados com valor de temperatura 19 e 18, logo vai haver mais dados no shard 0 (Fig. A.11). De seguida, os valores descem para 13 e, depois, sobem para 17. Por esta razão, a percentagem de dados registados nos shards 1 e 2 é muito semelhante.

70

Figura A.17:Gráfico que representa a temperatura dos dados enviados pelo sensor.

71

Figura A.19: Dados registados no shard 1.

Figura A.20:Dados registados no shard 2.

72

Figura A.21:Distribuição dos dados pelos shards para 7.000.000 registos.

Pelos gráficos da temperatura (Fig.A.22, Fig. A.23 e Fig. A.24), verifica-se que os dados enviados pelo sensor têm maioritariamente valores de temperatura 20, 19 e 14. Como os diferentes valores foram registados nos shards em quantidades semelhantes, a sua distribuição vai ser quase uniforme, como se pode verificar na Fig. A.21.

73

Figura A.23:

Gráfico que representa a temperatura dos dados enviados pelo sensor.

74

Figura A.25:Dados registados no shard 0.

75

Figura A.27:Dados registados no shard 2.

76

Apêndice B – 1ª Exp. Escalabilidade: experiência 1.2

Para 100.000 registos.

Figura B.1:Distribuição dos dados pelos shards para 100.000 registos.

Para 500.000 registos.

77

Para 1.000.000 registos.

Figura B.3: Distribuição dos dados pelos shards para 1.000.000 registos.

Para 5.000.000 registos.

78

Estado dos shards, onde se consegue ver como os dados são distribuídos pelos shards através da variável “_id” (Fig. B.5 e Fig. B.6).

Figura B.5: Estado dos shards (função sh.status()).

Figura B.6: Estado dos shards (função sh.status()).

79

Figura B.7: Distribuição dos dados pelos shards para 7.000.000 registos.

80

Apêndice C – 1ª Exp. Escalabilidade: experiência 1.3

Para 100.000 registos.

Figura C.1: Distribuição dos dados pelos shards para 100.000 registos.

81

Figura C.3:Configuração dos shards com as respetivas tags (sensor.dados2).

82

Figura C.5:Dados registados no shard 0.

83

Figura C.7:Dados registados no shard 2.

Para 500.000 registos.

84

Figura C.9: Gráfico que representa a humidade dos dados enviados pelo sensor.

85

Figura C.11:Dados registados no shard 0.

86

Figura C.13:Dados registados no shard 2.

Para 1.000.000 registos.

87

Figura C.15: Gráfico que representa a humidade dos dados enviados pelo sensor.

88

Figura C.17:Configuração dos shards com as respetivas tags (sensor.dados5).

89

Figura C.19:Dados registados no shard 1.

Figura C.20: Dados registados no shard 2.

90

Figura C.21:Distribuição dos dados pelos shards para 5.000.000 registos.

91

Figura C.23:Gráfico que representa a humidade dos dados enviados pelo sensor.

Figura C.24:

Gráfico que representa a humidade dos dados enviados pelo sensor.

92

Figura C.25:Gráfico que representa a humidade dos dados enviados pelo sensor.

93

Figura C.27:Dados registados no shard 0.

94

Figura C.29:Dados registados no shard 2.

Para 7.000.000 registos.

95

Figura C.31:Gráfico que representa a humidade dos dados enviados pelo sensor.

96

Figura C.33:

Gráfico que representa a humidade dos dados enviados pelo sensor.

97

Figura C.35:Configuração dos shards com as respetivas tags (sensor.dados9).

98

Figura C.37:Dados registados no shard 1.

Figura C.38:Dados registados no shard 2.

99

Apêndice D – 1ª Exp. Redundância

1.1 Com Settings padrão.

Figura D.1: Resultado da quantidade de dados no shard, depois do envio de 100.000 registos.

Figura D.2: Resultado da quantidade de dados no shard, depois do envio de 500.000 registos.

100

Figura D.4: Resultado da quantidade de dados no shard, depois do envio de 5.000.000 registos.

Figura D.5: Resultado da quantidade de dados no shard, depois do envio de 7.000.000 registos.

2.1 Com settings.catchUpTimeoutMillis: 2000 (2 segundos).

101

Figura D.7: Resultado da quantidade de dados no shard, depois do envio de 500.000 registos.

Figura D.8: Resultado da quantidade de dados no shard, depois do envio de 1.000.000 registos.

102

Figura D.10: Resultado da quantidade de dados no shard, depois do envio de 7.000.000 registos.

2.2 Com settings.catchUpTimeoutMillis: (4000) 4 segundos.

Figura D.16: Resultado da quantidade de dados no shard, depois do envio de 100.000 registos.

Figura D.17: Resultado da quantidade de dados no shard, depois do envio de 500.000 registos.

103

Figura D.19: Resultado da quantidade de dados no shard, depois do envio de 5.000.000 registos.

Figura D.20: Resultado da quantidade de dados no shard, depois do envio de 7.000.000 registos.

3.1 Com:

• settings.heartbeatIntervalMillis: (4000) 4 segundos; • settings.electionTimeoutMillis : (20000) 20 segundos.

Figura D.21: Resultado da quantidade de dados no shard, depois do envio de 100.000 registos.

104

Figura D.23: Resultado da quantidade de dados no shard, depois do envio de 1.000.000 registos.

Figura D.24: Resultado da quantidade de dados no shard, depois do envio de 5.000.000 registos.

105

3.2 Com:

• settings.heartbeatIntervalMillis: (1000) 1 segundos; • settings.electionTimeoutMillis : (5000) 5 segundos.

Figura D.26: Resultado da quantidade de dados no shard, depois do envio de 100.000 registos.

Figura D.27: Resultado da quantidade de dados no shard, depois do envio de 500.000 registos.

106

Figura D.29: Resultado da quantidade de dados no shard, depois do envio de 5.000.000 registos.

Figura D.30: Resultado da quantidade de dados no shard, depois do envio de 7.000.000 registos.

3.3 Com:

• settings.heartbeatIntervalMillis: (6000) 6 segundos; • settings.electionTimeoutMillis : (30000) 30 segundos.

107

Figura D.32: Resultado da quantidade de dados no shard, depois do envio de 500.000 registos.

Figura D.33: Resultado da quantidade de dados no shard, depois do envio de 1.000.000 registos.

108

Figura D.35: Resultado da quantidade de dados no shard, depois do envio de 7.000.000 registos.

109

Apêndice E – 2ª Exp. Redundância

1.1 Com Settings padrão.

Figura E.1: Resultado da quantidade de dados no shard, depois do envio de 100.000 registos.

Figura E.2: Resultado da quantidade de dados no shard, depois do envio de 7.000.000 registos.

2.1 Com settings.catchUpTimeoutMillis: 2000 (2 segundos).

110

Figura E.4: Resultado da quantidade de dados no shard, depois do envio de 7.000.000 registos.

2.2 Com settings.catchUpTimeoutMillis: (4000) 4 segundos.

Figura E.5: Resultado da quantidade de dados no shard, depois do envio de 100.000 registos.

111

3.1 Com:

• settings.heartbeatIntervalMillis: (4000) 4 segundos; • settings.electionTimeoutMillis : (20000) 20 segundos.

Figura E.7: Resultado da quantidade de dados no shard, depois do envio de 100.000 registos.

Figura E.8: Resultado da quantidade de dados no shard, depois do envio de 7.000.000 registos.

3.2 Com:

• settings.heartbeatIntervalMillis: (1000) 1 segundos; • settings.electionTimeoutMillis : (5000) 5 segundos.

112

Figura E.10: Resultado da quantidade de dados no shard, depois do envio de 7.000.000 registos.

3.3 Com:

• settings.heartbeatIntervalMillis: (6000) 6 segundos; • settings.electionTimeoutMillis : (30000) 30 segundos.

Figura E.11: Resultado da quantidade de dados no shard, depois do envio de 100.000 registos.

Figura E.12: Resultado da quantidade de dados no shard, depois do envio de 7.000.000 registos.