14 research outputs found

    An Efficient B-tree Implementation for Memory-Constrained Embedded Systems

    Full text link
    Embedded devices collect and process significant amounts of data in a variety of applications including environmental monitoring, industrial automation and control, and other Internet of Things (IoT) applications. Storing data efficiently is critically important, especially when the device must perform local processing on the data. The most widely used data structure for high performance query and insert is the B-tree. However, existing implementations consume too much memory for small embedded devices and often rely on operating system support. This work presents an extremely memory efficient implementation of B-trees for embedded devices that functions on the smallest devices and does not require an operating system. Experimental results demonstrate that the B-tree implementation can run on devices with as little as 4 KB of RAM while efficiently processing thousands of records.Comment: Published in the 19th International Conference on Embedded Systems, Cyber-physical Systems, and Applications (ESCS'21). Code is available at https://github.com/ubco-d

    uFLIP: Understanding Flash IO Patterns

    Get PDF
    Does the advent of flash devices constitute a radical change for secondary storage? How should database systems adapt to this new form of secondary storage? Before we can answer these questions, we need to fully understand the performance characteristics of flash devices. More specifically, we want to establish what kind of IOs should be favored (or avoided) when designing algorithms and architectures for flash-based systems. In this paper, we focus on flash IO patterns, that capture relevant distribution of IOs in time and space, and our goal is to quantify their performance. We define uFLIP, a benchmark for measuring the response time of flash IO patterns. We also present a benchmarking methodology which takes into account the particular characteristics of flash devices. Finally, we present the results obtained by measuring eleven flash devices, and derive a set of design hints that should drive the development of flash-based systems on current devices.Comment: CIDR 200

    B+-tree Index Optimization by Exploiting Internal Parallelism of Flash-based Solid State Drives

    Full text link
    Previous research addressed the potential problems of the hard-disk oriented design of DBMSs of flashSSDs. In this paper, we focus on exploiting potential benefits of flashSSDs. First, we examine the internal parallelism issues of flashSSDs by conducting benchmarks to various flashSSDs. Then, we suggest algorithm-design principles in order to best benefit from the internal parallelism. We present a new I/O request concept, called psync I/O that can exploit the internal parallelism of flashSSDs in a single process. Based on these ideas, we introduce B+-tree optimization methods in order to utilize internal parallelism. By integrating the results of these methods, we present a B+-tree variant, PIO B-tree. We confirmed that each optimization method substantially enhances the index performance. Consequently, PIO B-tree enhanced B+-tree's insert performance by a factor of up to 16.3, while improving point-search performance by a factor of 1.2. The range search of PIO B-tree was up to 5 times faster than that of the B+-tree. Moreover, PIO B-tree outperformed other flash-aware indexes in various synthetic workloads. We also confirmed that PIO B-tree outperforms B+-tree in index traces collected inside the Postgresql DBMS with TPC-C benchmark.Comment: VLDB201

    Tietokannan hallintajärjestelmän optimointi flash-muistia varten

    Get PDF
    Viime aikoina yleistyneet flash-muistiin perustuvat tallennusvälineet ovat monessa suhteessa kiintolevyä parempia. Flash-muistissa on kuitenkin useita erityispiirteitä, jotka vaikeuttavat sen käyttöönottoa tietokantajärjestelmässä. Flash-muistissa kirjoittaminen on hitaampaa kuin lukeminen. Erityisesti hajanaisten sivujen päivittäminen on hidasta. Hajaluku flash-muistista on huomattavasti nopeampaa kuin kiintolevyltä. Näiden erityispiirteiden vuoksi tietokannan hallintajärjestelmä on optimoitava erikseen flash-muistia varten. Tässä optimoinnissa lähes kaikki tietokannan hallintajärjestelmän osa-alueet on toteutettava uudelleen flash-muistin näkökulmasta. Flash-muistin nopean hajaluvun ansiosta relaatioiden tiedot voidaan sijoitella flash-muistiin vapaammin kuin kiintolevylle. Yleisin tietokannoissa käytetty hakemistorakenne B+-puu ei toimi tehokkaasti flash-muistissa hajapäivitysten suuren määrän vuoksi. Flashmuistia varten on kehitetty useita B+-puun muunnelmia, joissa hajapäivitysten määrää on onnistuttu vähentämään. Puskurin hallintaa voidaan optimoida flash-muistia varten vähentämällä hitaiden kirjoitusten määrää nopeiden lukujen määrän kustannuksella sekä muuttamalla hitaita hajakirjoituksia nopeammiksi peräkkäisten sivujen kirjoituksiksi. B.3 (hardware, memory structures) H.2.2 (database management, physical design

    An Efficient B-Tree Layer Implementation for Flash-Memory Storage Systems

    No full text
    corecore