2 resultados para Logging, Logging library migration
em QSpace: Queen's University - Canada
Resumo:
Over the past few years, logging has evolved from from simple printf statements to more complex and widely used logging libraries. Today logging information is used to support various development activities such as fixing bugs, analyzing the results of load tests, monitoring performance and transferring knowledge. Recent research has examined how to improve logging practices by informing developers what to log and where to log. Furthermore, the strong dependence on logging has led to the development of logging libraries that have reduced the intricacies of logging, which has resulted in an abundance of log information. Two recent challenges have emerged as modern software systems start to treat logging as a core aspect of their software. In particular, 1) infrastructural challenges have emerged due to the plethora of logging libraries available today and 2) processing challenges have emerged due to the large number of log processing tools that ingest logs and produce useful information from them. In this thesis, we explore these two challenges. We first explore the infrastructural challenges that arise due to the plethora of logging libraries available today. As systems evolve, their logging infrastructure has to evolve (commonly this is done by migrating to new logging libraries). We explore logging library migrations within Apache Software Foundation (ASF) projects. We i find that close to 14% of the pro jects within the ASF migrate their logging libraries at least once. For processing challenges, we explore the different factors which can affect the likelihood of a logging statement changing in the future in four open source systems namely ActiveMQ, Camel, Cloudstack and Liferay. Such changes are likely to negatively impact the log processing tools that must be updated to accommodate such changes. We find that 20%-45% of the logging statements within the four systems are changed at least once. We construct random forest classifiers and Cox models to determine the likelihood of both just-introduced and long-lived logging statements changing in the future. We find that file ownership, developer experience, log density and SLOC are important factors in determining the stability of logging statements.
Resumo:
The literature on niche separation and coexistence between species is large, but there is widespread variation in behavioural strategy between individuals of the same species that has received much less attention. Understanding what maintains this diversity is important because intraspecific behavioural diversity can affect population dynamics and community interactions. Multiple behavioural strategies can arise either as phenotype-dependent ‘conditional strategies’, where phenotypic variation causes individuals to adopt different strategies for optimizing fitness, or as internally-independent ‘alternative strategies’, where multiple fitness peaks exist for individuals and strategic ‘choice’ remains plastic. Though intraspecific variation in stable phenotypes is known to maintain intraspecific behavioural diversity through conditional strategies, when internal conditions are highly plastic or reversible, it is not clear whether individual behaviours are maintained as conditional strategies, or as alternative strategies of equal fitness. In this study, I combine an observational and experimental approach to identify the likely mechanisms maintaining behavioural diversity between hemoglobin-rich and hemoglobin-poor morphs in a natural population of Daphnia pulicaria. In Round Lake, individuals with low hemoglobin migrate daily from the hypolimnion to the epilimnion, whereas individuals with high hemoglobin remain in the hypolimnion. Using high-resolution depth and time sampling, I discovered behavioural diversity both within and among hemoglobin phenotypes. I tested the role of hemoglobin phenotype in maintaining behavioural diversity using automated migration robots that move individuals across the natural environmental gradients in the lake. By measuring the fitness of each morph undergoing either a natural migration behaviour, or the migration of the opposite morph, I found that the fitness of hemoglobin rich and poor morphs in their natural behaviour does not differ, but that Hb-rich individuals can obtain equal fitness from either behaviour, while Hb-poor morphs suffer substantial drops in survivorship in the alternate migration behaviour. Thus, migration behaviour in this system exists as a conditional strategy for some individuals, and as alternative strategies of equal fitness for others. The results of this study suggest that individual limits in the expression of highly flexible internal conditions can reinforce intraspecific behavioural diversity. Few studies have measured the fitness consequences of switching migration strategies and this study provides a rare example in the field.