4 research outputs found

    Avoiding Bad Query Mixes to Minimize Unsuccessful Client Requests Under Heavy Loads

    Get PDF
    In three-tiered web applications, some form of admission control is required to ensure that throughput and response times are not significantly harmed during periods of heavy load. We propose Q-Cop, a prototype system for improving admission control decisions that computes measures of load on the system based on the actual mix of queries being executed. This measure of load is used to estimate execution times for incoming queries, which allows Q-Cop to make control decisions with the goal of minimizing the number of requests that are not serviced before the client, or their browser, times out. Using TPC-W queries, we show that the response times of different types of queries can vary significantly, in excess of 50% in our experiments, depending not just on the number of queries being processed but on the mix of other queries that are running simultaneously. The variation implies that admission control can benefit from taking into account not just the number of queries being processed, but also the mix of queries. We develop a model of expected query execution times that accounts for the mix of queries being executed and integrate that model into a three-tiered system to make admission control decisions. This approach makes more informed decisions about which queries to reject, and our results show that it significantly reduces the number of unsuccessful client requests. Our results show that this approach makes more informed decisions about which queries to reject and as a result significantly reduces the number of unsuccessful client requests. For comparison, we develop several other models which represent related work in the field, including an MPL-based approach and an approach that considers the type of query but not the mix of queries. We show that Q-Cop does not need to re-compute any modelling information in order to perform well, a strong advantage over most other approaches. Across the range of workloads examined, an average of 47% fewer requests are denied than the next best approach

    Query Interactions in Database Systems

    Get PDF
    The typical workload in a database system consists of a mix of multiple queries of different types, running concurrently and interacting with each other. The same query may have different performance in different mixes. Hence, optimizing performance requires reasoning about query mixes and their interactions, rather than considering individual queries or query types. In this dissertation, we demonstrate how queries affect each other when they are executing concurrently in different mixes. We show the significant impact that query interactions can have on the end-to-end workload performance. A major hurdle in the understanding of query interactions in database systems is that there is a large spectrum of possible causes of interactions. For example, query interactions can happen because of any of the resource-related, data-related or configuration-related dependencies that exist in the system. This variation in underlying causes makes it very difficult to come up with robust analytical performance models to capture and model query interactions. We present a new approach for modeling performance in the presence of interactions, based on conducting experiments to measure the effect of query interactions and fitting statistical models to the data collected in these experiments to capture the impact of query interactions. The experiments collect samples of the different possible query mixes, and measure the performance metrics of interest for the different queries in these sample mixes. Statistical models such as simple regression and instance-based learning techniques are used to train models from these sample mixes. This approach requires no prior assumptions about the internal workings of the database system or the nature or cause of the interactions, making it portable across systems. We demonstrate the potential of capturing, modeling, and exploiting query interactions by developing techniques to help in two database performance related tasks: workload scheduling and estimating the completion time of a workload. These are important workload management problems that database administrators have to deal with routinely. We consider the problem of scheduling a workload of report-generation queries. Our scheduling algorithms employ statistical performance models to schedule appropriate query mixes for the given workload. Our experimental evaluation demonstrates that our interaction-aware scheduling algorithms outperform scheduling policies that are typically used in database systems. The problem of estimating the completion time of a workload is an important problem, and the state of the art does not offer any systematic solution. Typically database administrators rely on heuristics or observations of past behavior to solve this problem. We propose a more rigorous solution to this problem, based on a workload simulator that employs performance models to simulate the execution of the different mixes that make up a workload. This mix-based simulator provides a systematic tool that can help database administrators in estimating workload completion time. Our experimental evaluation shows that our approach can estimate the workload completion times with a high degree of accuracy. Overall, this dissertation demonstrates that reasoning about query interactions holds significant potential for realizing performance improvements in database systems. The techniques developed in this work can be viewed as initial steps in this interesting area of research, with lots of potential for future work

    Avaliação da validade externa da técnica de análise diferencial para detecção de envelhecimento de software: um estudo confirmatório com replicação

    Get PDF
    Software systems running continuously for a period of time often confront software aging. This phenomenon is related to the increase of the failure rate as the system executes. Recently, a study introduced a technique for aging detection based on differential software analysis that, through experiments under synthetic workloads with focus on memory leakage, proved superior to other approaches used in SAR. The differential analysis can distinguish between the natural behavior of aging behavior when comparing (under experiments) two versions of the same system: target version (with aging) and base version (without aging). This master's study evaluated the external validity of this approach to verify if the previous findings also applied to real applications and loads. For this purpose, 4 widely known real-world applications with memory leak bugs were selected. The activation patterns of the bugs were studieds in order to incorporate them into the representativeness characterization of the workload scenarios used. Subsequently, for each application, experimental replications were performed on the target and base versions considering the planned workload scenarios. In each replication, the RSS and HUS indicators were monitored, each composing a different time series. Then, in order to reduce the dissimilarity effects between the series, a mean time series was estimated by the DTW method for each set of replications. Finally, the mean time series of each indicator were processed through a combination of statistical techniques of trend detection and CEP, generating divergence charts for the anomalies identification. The divergence charts allow a fair comparison of the leak detection performance of each technique/indicator combination. The results showed that, unlike those previously findings with synthetic workloads, all combinations were able to detect memory leak efficiently, with no false-negatives and few false-positives rates. In addition, the trend detection techniques, in particular Hodrick Prescott (HP), were better than those of CEP. Again, the HUS indicator was superior to RSS, determining HP/HUS as the best overall combination to detect memory leakage.Dissertação (Mestrado)Sistemas de software que executam continuamente por um período de tempo podem sofrer de envelhecimento de software. Esse fenômeno está relacionado ao aumento da taxa de falha na medida em que o sistema executa. Recentemente, um estudo introduziu uma técnica para detecção do envelhecimento baseada em análise diferencial de software que, por meio de experimentos sob cargas sintéticas com foco em vazamento de memória, mostrou-se ser superior que outras abordagens utilizadas em SAR. A análise diferencial consegue distinguir entre o comportamento natural do comportamento do envelhecimento ao comparar, sob experimentos, duas versões do mesmo sistema: versão alvo (com envelhecimento) e versão base (sem envelhecimento). Esta pesquisa de mestrado avaliou a validade externa dessa abordagem para verificar se os resultados vistos anteriormente também se aplicavam frente a aplicações reais e cargas definidas através de um processo de caracterização de uso dessas aplicações. Para esta proposta, 4 aplicações reais amplamente conhecidas com bugs de vazamento de memória foram selecionadas. Os padrões de ativação de cada bug foram estudados a fim de incorporá-los na caracterização de representatividade dos cenários de cargas de trabalho utilizados. Posteriormente, para cada aplicação, replicações experimentais foram realizadas nas versões alvo e base considerando os cenários de carga de trabalho planejados. Em cada replicação, os indicadores RSS e HUS foram monitorados compondo, cada um, uma série temporal distinta. Em seguida, a fim de reduzir os efeitos de defasagem entre as séries, uma série temporal média foi estimada pelo método DTW para cada conjunto de replicações. Finalmente, as séries temporais médias de cada indicador foram processadas por meio da combinação de técnicas estatísticas de detecção de tendências e CEP, gerando gráficos de divergência para identificação de anomalias. Os gráficos de divergência permitem, de forma justa, comparar o desempenho na detecção do vazamento de cada combinação técnica/indicador. Os resultados mostraram que, diferentemente dos encontrados previamente com carga sintética, todas as combinações conseguiram detectar o vazamento de memória eficientemente, com nenhuma taxa de falso-negativos e com poucos falso-positivos. Além disso, as técnicas de detecção de tendências, em especial a de Hodrick Prescott (HP), foram melhores que as de CEP. Novamente, o indicador HUS mostrou-se superior ao RSS, determinando HP/HUS como a melhor combinação geral para detectar o vazamento de memória
    corecore