14 research outputs found
An Efficient B-tree Implementation for Memory-Constrained Embedded Systems
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
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
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
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