| Nome: | Descrição: | Tamanho: | Formato: | |
|---|---|---|---|---|
| 4.72 MB | Adobe PDF |
Autores
Orientador(es)
Resumo(s)
Computer systems are a part of today’s most common activities and, more often than not,
involve some type of interaction with a database. In this scheme, databases play a big
role, where even small operational delays could cost millions to big tech companies. It is
then, of utmost importance that such systems are responsive and adapt automatically to
different types of workload.
To this date, Relational Database Management System remain the most popular
database type, which allows the executing of concurrent transactions with Atomicity,
Consistency, Isolation and Durability guarantees. Enforcing such properties requires
strict control over the execution of transactions. However, maintaining such properties
and controlling the transactions’ concurrency may hamper performance of the system,
being this specially the case when database contention is high.
Motivated by such behavior, we propose the lazy evaluation of database SQL queries
— using Futures/Promises and Java Database Connectivity (JDBC) — by empowering
a relational database with Lazy State Determination (LSD). This novel Application
Programming Interface (API) allows delaying operations to the commit time, which in the
end reduces the transaction window where conflicts may occur.
We observed that, by introducing our implementation of a JDBC-LSD driver, in high
contention scenarios the throughput increased by 50% and latency reduced by 40%.
Os sistemas informáticos são parte das atividades mais comuns na atualidade e, na maioria das vezes, envolvem algum tipo de interação com uma base de dados. Neste cenário, as bases de dados têm um grande papel, sendo que pequenos atrasos operacionais podem custar milhões às grandes empresas tecnológicas. Até os dias de hoje, os Sistemas de Gestão de Bases de Dados Relacionais continuam a ser o tipo de bases de dados mais popular, permitindo a execução concorrente de transações garantindo as propriedades de Atomicidade, Consistência, Isolamento e Durabilidade. A aplicação de tais propriedades requer um controlo rigoroso sobre a execução de transações. No entanto, manter tais propriedades e controlar a concorrência das transacções pode diminuir o desempenho do sistema, sendo especialmente o caso em bases onde a contenção é elevada. Assim, propomos o atraso na execução de queries SQL na base de dados através da introdução do protocolo de controlo de concorrência Lazy State Determination (LSD), com a utilização de Futuros/Promessas e Java Database Connectivity (JDBC). Esta nova Interface de Programação de Aplicações (API) permite adiar as operações para o momento do commit, o que acaba por reduzir a janela da transação onde conflitos podem ocorrer. Observamos que, ao utilizar LSD em um cliente JDBC, nós conseguimos aumentar a taxa de execução de transações em 50% e reduzir a latência em 40% num ambiente de contenção elevada.
Os sistemas informáticos são parte das atividades mais comuns na atualidade e, na maioria das vezes, envolvem algum tipo de interação com uma base de dados. Neste cenário, as bases de dados têm um grande papel, sendo que pequenos atrasos operacionais podem custar milhões às grandes empresas tecnológicas. Até os dias de hoje, os Sistemas de Gestão de Bases de Dados Relacionais continuam a ser o tipo de bases de dados mais popular, permitindo a execução concorrente de transações garantindo as propriedades de Atomicidade, Consistência, Isolamento e Durabilidade. A aplicação de tais propriedades requer um controlo rigoroso sobre a execução de transações. No entanto, manter tais propriedades e controlar a concorrência das transacções pode diminuir o desempenho do sistema, sendo especialmente o caso em bases onde a contenção é elevada. Assim, propomos o atraso na execução de queries SQL na base de dados através da introdução do protocolo de controlo de concorrência Lazy State Determination (LSD), com a utilização de Futuros/Promessas e Java Database Connectivity (JDBC). Esta nova Interface de Programação de Aplicações (API) permite adiar as operações para o momento do commit, o que acaba por reduzir a janela da transação onde conflitos podem ocorrer. Observamos que, ao utilizar LSD em um cliente JDBC, nós conseguimos aumentar a taxa de execução de transações em 50% e reduzir a latência em 40% num ambiente de contenção elevada.
Descrição
Palavras-chave
Concurrency Control Relational Databases Lazy State Determination Java Database Connectivity Transactions
