6 research outputs found

    Lazy evaluation

    Get PDF
    TÀmÀn työn pÀÀtavoitteena on selvittÀÀ, miten laiska evaluointi toimii eri sovelluskohteissa sekÀ mitÀ hyötyjÀ ja haittoja sen kÀytöstÀ aiheutuu. TÀssÀ työssÀ keskitytÀÀn kahteen sovelluskohteeseen: laiskuus ohjelmointikielessÀ sekÀ laiskuus tietokannoissa. Aineistona tÀssÀ tutkimuksessa on aikaisemmat tutkimukset sovelluskohteisiin sekÀ yleinen kirjallisuus aiheeseen liittyen. TÀrkeimpinÀ lÀhteinÀ tÀssÀ työssÀ ovat Faleiro et al. Lazy evaluation of transactions in database systems -tutkimus laiskoista tietokannoista sekÀ Heinrich Apfelmuksen The Incomplete Guide to Lazy Evaluation (in Haskell) -artikkeli laiskuuden toiminnasta Haskellissa. Tuloksena tÀstÀ työstÀ saadaan, ettÀ laiska evaluointi sopii joihinkin sovelluskohteisiin hyvin ja toisiin huonosti. Jopa saman sovelluskohteen sisÀllÀ löytyy tilanteita, joissa laiska evaluointi ja innokas evaluointi ovat toinen toistaan parempia. EhkÀpÀ ainoa kohde jossa laiska evaluointi on aina parempi, on loputtomat sarjat. NÀiden suoritus ei lopu koskaan innokkaassa evaluoinnissa, joten laiska evaluointi on ainoa vaihtoehto niiden kÀsittelyyn

    Adaptive Query Processing on RAW Data

    Get PDF
    Database systems deliver impressive performance for large classes of workloads as the result of decades of research into optimizing database engines. High performance, however, is achieved at the cost of versatility. In particular, database systems only operate efficiently over loaded data, i.e., data converted from its original raw format into the system’s internal data format. At the same time, data volume continues to increase exponentially and data varies increasingly, with an escalating number of new formats. The consequence is a growing impedance mismatch between the original structures holding the data in the raw files and the structures used by query engines for efficient processing. In an ideal scenario, the query engine would seamlessly adapt itself to the data and ensure efficient query processing regardless of the input data formats, optimizing itself to each instance of a file and of a query by leveraging information available at query time. Today’s systems, however, force data to adapt to the query engine during data loading. This paper proposes adapting the query engine to the formats of raw data. It presents RAW, a prototype query engine which enables querying heterogeneous data sources transparently. RAW employs Just-In-Time access paths, which efficiently couple heterogeneous raw files to the query engine and reduce the overhead of traditional general-purpose scan operators. There are, however, inherent overheads with accessing raw data directly that cannot be eliminated, such as converting the raw values. Therefore, RAW also uses column shreds, ensuring that we pay these costs only for the subsets of raw data strictly needed by a query. We use RAW in a real-world scenario and achieve a two-order of magnitude speedup against the existing hand-written solution

    Resource-Oriented Architecture based Scientific Workflow Modelling

    Get PDF

    Protocolos tolerantes a faltas bizantinas para transaçÔes em bancos de dados

    Get PDF
    Tese (doutorado) - Universidade Federal de Santa Catarina, Centro TecnolĂłgico, Programa de PĂłs-Graduação em Engenharia de Automação e Sistemas, FlorianĂłpolis, 2015.No Ăąmbito de sistemas computacionais, a noção de transaçÔes constitui um dos elementos mais fundamentais para a especificação e implementação de aplicaçÔes com requisitos de confiabilidade e consistĂȘncia, quanto Ă  manipulação de dados. Ao longo dos anos, os sistemas de gerenciamento de banco de dados relacionais (SGBDR) tĂȘm sido considerados como componentes chave para o processamento de transaçÔes em sistemas computacionais; e, embora algumas alternativas aos SGBDRs tenham surgido nos Ășltimos anos, hĂĄ perspectivas de que um nĂșmero significativo de sistemas computacionais permaneçam a utilizar os SGBDRs nos anos vindouros. Neste sentido, Ă© imperioso que requisitos como confiabilidade, disponibilidade, desempenho, tolerĂąncia a faltas e consistĂȘncia, sejam mantidos no SGBDR, com vista para o correto processamento de transaçÔes. Tais atributos podem ser obtidos por meio de replicação, sendo que a literatura Ă© vasta em termos de soluçÔes que visam a disponibilidade dos dados a despeito de faltas por parada intermitentes ou permanentes. Todavia, faltas oriundas da corrupção de dados em disco ou em memĂłria RAM devido a efeitos fĂ­sicos, ou decorrente de bugs no SGBDR, nĂŁo afetam a disponibilidade dos dados, mas sim a integridade e a consistĂȘncia destes. Estas faltas, que sĂŁo caracterizadas como bizantinas, historicamente tĂȘm sido encontradas em SGBDRs, e elas afetam o processamento de transaçÔes comprometendo nĂŁo apenas a exatidĂŁo, mas tambĂ©m o estado do banco de dados. A literatura dispĂ”e de poucas soluçÔes para lidar com faltas bizantinas em SGBDRs, onde algumas sĂŁo baseadas em hipĂłteses difĂ­ceis de serem substanciadas na prĂĄtica; ou em modelos de consistĂȘncia mais relaxados, que podem causar problemas de integridade, consistĂȘncia ou atĂ© mesmo corrupção de dados. Isto posto, elas nĂŁo atendem plenamente todos os tipos de aplicaçÔes. Neste ensejo, esta tese versa sobre problemas relacionados ao processamento e a terminação de transaçÔes em SGBDRs e sistemas distribuĂ­dos, em ambientes com sujeição a faltas bizantinas. Para isso, esta tese apresenta duas grandes contribuiçÔes no Ăąmbito de transaçÔes em SGBDRs. A primeira consiste num protocolo que permite o processamento e terminação de transaçÔes, a despeito de faltas bizantinas nas rĂ©plicas de bancos de dados  o primeiro da literatura a explorar a semĂąntica de consistĂȘncia mais forte de transaçÔes  , a partir de um protocolo de replicação tolerante a faltas bizantinas totalmente distribuĂ­do. A segunda investiga o problema da terminação de transaçÔes distribuĂ­das em ambientes sujeitos a faltas bizantinas  um problema sem solução pela literatura  , que Ă© conhecido como Validação AtĂŽmica NĂŁo-Bloqueante (NBAC) e visa assegurar uma decisĂŁo uniforme para os participantes da transação acerca da validação ou anulação das operaçÔes executadas num ambiente distribuĂ­do de banco de dados. A contribuição para este problema se baseia na investigação dos aspectos prĂĄticos necessĂĄrios para resolvĂȘ-lo, onde Ă© introduzido o conceito de Gerenciador Colaborativo de TransaçÔes em substituição ao Gerenciador de TransaçÔes, tradicionalmente empregado como agente num protocolo NBAC. A solução proposta para resolver o NBAC com faltas bizantinas baseia-se num conceito novo, que adota a tecnologia de virtualização como suporte para a especificação de uma arquitetura de sistema distribuĂ­do que permite circunscrever o problema. As soluçÔes propostas foram comparadas de maneira analĂ­tica com soluçÔes encontradas na literatura, bem como atravĂ©s de ensaios experimentais, a fim de comprovar a viabilidade das mesmas.Abstract : Within computer systems, the concept of transaction is one of the most fundamental elements for the specification and implementation of applications with reliability and consistency requirements concerning handling of data. Over the years, relational database management systems (RDBMS) have been considered key components for transaction processing in computer systems; and although some alternatives to RDBMSs have emerged in recent years, there are prospects that a significant number of computer systems will continute to use RDBMSs in coming years. In this sense, the need to provide reliability, availability, performance, fault tolerance and consistency, regarding transaction processing in RDBMS is imminent. Such attributes may be obtained through database replication. The literature is extensive in terms of solutions for data availability regardless of crash faults (e.g. intermittent or permanent). However, faults arising from the disk data corruption or RAM data corruption due to physical effects, or due to bugs in the RDBMS, do not affect the availability of data, though they affect their integrity and consistency. These faults, which are known as Byzantine, have historically been found in RDBMSs, and they affect transaction processing undermining not only the accuracy but also the database state. The literature offers few solutions to deal with Byzantine faults in RDBMSs, where some are based on difficult cases to be used in practice; or more relaxed consistency models, which can cause integrity, consistency or even data corruption problems. So, they are not addressed to all types of applications. As it is, this thesis deals with problems related to transaction processing and transaction termination on RDBMS and distributed systems, in environments subject to Byzantine fault. To this end, this thesis presents two major contributions to the transaction level in RDBMSs. The first is a protocol that allows the transaction processing and transaction, despite Byzantine faults in databases replicas  the first in literature that explores the strongest consistency semantics of transactions (e.g. serializability)  , by means of a fully distributed Byzantine fault tolerant database replication protocol. The second investigates the agreement problem related to transaction termination in distributed systems, also in environments subject to Byzantine fault  an unsolved problem in the literature. The Non Blocking Atomic Commitment (NBAC), as it known, aims to ensure a uniform decision for the transaction participants about the operations performed in a distributed database environment, that is, commit or abort them. The contribution to this problem is based on the investigation of practical and necessary conditions, to solve it. So, this thesis introduces the Collaborative Transaction Manager to replace the Transaction Manager, traditionally used as an agent on a NBAC protocol. The solution proposed to solve the NBAC with Byzantine fault is based on a new concept, adopting virtualization technology as a support for the specification of a distributed system architecture which makes the problem feasible. The proposed solutions were compared analytically with solutions found in the literature as well as through experimental tests in order to prove their feasibility

    Lazy and speculative execution in computer systems

    No full text
    corecore