Embedded databases – what is an embedded database? and how to choose one

Embedded databases – what is an embedded database? and how to choose one

What is an Embedded Database?

What is a database?

While – strictly speaking – “database” refers to a (systematic) collection of data, “Database Management System” (or DBMS) refers to the piece of software for storing and managing that data. However, often the term “database” is also used loosely to refer to a DBMS, and you will find most DBMS only use the term database in their name and communication.

What does embedded mean in the realm of databases?

The term “embedded” can be used with two different meanings in the database context. A lot of confusion arises from these terms being used interchangeably. So, let’s first bring clarity into the terminology.

 💡 The term “embedded” in databases

 Embedded database”, meaning a database that is deeply integrated, built into the software instead of coming as a standalone app. The embedded database sits on the application layer and needs no extra server. Also referred to as an “embeddable database”,  “embedded database management system” or “embedded DBMS (Database Management System)”. 

“Database for embedded systems” is a database specifically designed to be used in embedded systems. Embedded systems consist of a hardware / software stack that is deeply integrated, e.g. microcontrollers or mobile devices. A database for such systems must be small and optimized to run on highly restricted hardware (small footprint, efficiency). This can be also called an “embedded system database”. For clarity, we will only use the first term in this article.

Embedded Database vs Embedded System

What is an embedded system / embedded device?

Embedded systems / embedded devices are everywhere nowadays. They are used in most industries, ranging from manufacturing and automotive, to healthcare and consumer electronics. Essentially, an embedded system is a small piece of hardware that has software integrated in it. These are typically highly restricted (CPU, power, memory, …) and connected (Wi-Fi, Bluetooth, ZigBee, …) devices. Embedded Systems very often form a part of a larger system. Each individual embedded system serves a small number of specific functions within the larger system. As a result, embedded systems often form a complex decentralized system.

Examples of embedded systems: smartphones, controlling units, micro-controllers, cameras, smart watches, home appliances, ATMs, robots, sensors, medical devices, and many more.

Embedded Database vs Database for Embedded Systems

When and why is there a need for a database for embedded devices?

A large number of embedded systems has limited computational power, so the efficiency and footprint of the DBMS is vital. This fact gave rise to the new market of databases specifically made for embedded systems. Because of being lightweight and highly-performant, embedded databases might work well in embedded systems. However, not all embedded databases are suitable for embedded devices. Features like fast and efficient local data storage and efficient synchronisation with the backend play a huge role in determining which databases work best in embedded systems. 

A database that is both embedded in the application and works well in embedded systems is called an Edge database. To clarify, Edge Database is an embedded database optimised for resource-efficiency on restricted decentralised devices (this typically means embedded devices) with limited resources. Mobile databases, for example, are a type of Edge databases that support mobile operating systems, like Android and iOS.

New Edge databases solve the challenge of an insanely growing number of embedded devices. This applies to both in the professional / industrial as well as the consumer world. Edge databases hence create value for decentralised devices and data by making the former more useful. 

    A database for embedded systems / embedded devices can be simultaneously an embedded database. However, more important is its performance with regards to on-device resource use to serve the restricted devices. A database that is embedded and optimized for restricted devices is called “Edge database”.

    Why use an embedded database in an embedded system?

    First of all, local data storage enabled by embedded databases is a big advantage for embedded systems. Due to the intermittent connection that these often experience, one cannot rely on it for retrieving data. Instead, a smart solution would be to store data locally on the device and sync it with other parts of the system only when needed.

    Aside: a word about data sync. Embedded systems often deal with large amounts of data, while also having an unreliable or non-permanent connection. This can be imposed by the limitations of the system or done deliberately to save battery life. Thus, a suitable synchronisation solution should not only sync data every time there is a connection, but also do it efficiently. For example, differential sync works well: by only sending the changes to the server, it will help to avoid unnecessary energy use and also save network costs.

    The two most important features of databases in embedded systems are performance and reliability. A database used in embedded systems should perform well on devices with limited CPU and memory. This is why embedded databases might work well in embedded systems – they are largely designed to work in exactly such environments. Some of them are truly tiny, which means they thrive in small applications. While better performance helps to eliminate some of the risks, it does not help with sudden power failures. Therefore, a good data recovery procedure is also important. This is most consisely demonstrated by ACID compliance.

    Let’s have a look at the features of embedded databases that make them a great choice for embedded systems. 

    Advantages of embedded databases

    1. High performance. Truly embedded databases benefit from simpler architecture, as they do not require a separate server module. While the client/server architecture might benefit from the ability to install the server on a more powerful computer, this also means more risk. Getting rid of the client/server communication level reduces complexity and therefore boosts performance. 
    2. Reliability. Many embedded devices use battery power, so sudden power failures might happen. Therefore, the data management solution should be built to ensure that data is fully recovered in case of a power failure. This is a popular feature of embedded databases that are built with embedded systems in mind.  
    3. Ease of use and low maintenance. Other important benefits of using an embedded database include easy implementation and low maintenance. Designing embedded devices often requires working in tight schedules, so choosing an out-of-the-box data persistence solution is the best choice for many projects. Since embedded databases are embedded directly in the application, they do not need administration and effectively manage themselves.
    4. Small footprint. Embedded databases do not always have a small footprint, but some of them are smaller than 1 MB, which makes them particularly suitable for mobile and IoT devices with limited memory.
    5. Scalability. As the number of embedded devices grows every year, so does the data volume. An efficient solution should not only perform well with large sets of data, but also adapt to new device features and easily change to fit the needs of a new device. This is where rigid database schemas come as a disadvantage.

     

    How to choose an embedded database

    When choosing an embedded database, look out for such factors as ACID (atomicity, consistency, isolation, durability) compliance, CRUD performance, footprint, and (depending on the device needs) data sync.

    SQLite and SQlite alternatives – a detailed look at the market of embedded databases

    Database solution
    Primary model Minimum footprint Sync Languages
    SQLite relational <1mb no C/C++, Tcl, Python, Java, Go, Matlab, PHP, and more
    Mongo Realm object-oriented NoSQL database 5 MB+ sync only via Mongo Cloud Swift, Objective-C, Java, Kotlin, C#, JavaScript
    Berkeley DB NoSQL database; key-value store <2mb no C++, C#, Java, Perl, PHP, Python, Ruby, Smalltalk and Tcl
    LMDB key-value store <1mb no C++, Java, Python, Lua, Go, Ruby, Objective-C, JavaScript, C#, Perl, PHP, etc
    RocksDB key-value store   no C++, C, Java, Python, NodeJS, Go, PHP, Rust, and others
    ObjectBox object-oriented NoSQL database <1mb offline, on-premise and cloud Sync, p2p Sync is planned Java, Kotlin, C, C++, Swift, Go, Flutter / Dart, Python
    Couchbase Lite NoSQL DB; document store 1-5 MB sync needs a Couchbase Server Swift, Objective-C, C#, C, Java, Kotlin, JavaScript,
    UnQLite NoSQL; document & key-value store ~1.5 MB no C, C++, Python
    extremeDB in-memory relational DB, hybrid persistence <1 MB no C, C#, C++, Java, Lua, Python, Rust

    When to use an Embedded Database and how to choose one

    Firstly, when choosing a database for an embedded system, one has to consider several factors. The most important ones are performance, reliability, maintenance and footprint. On highly restricted devices, even a small difference in one of those parameters might make an impact. While building your own solution with a particular device in mind would certainly work well, tight schedules and additional effort don’t always justify this decision. This is why we recommend choosing one of the ready-made solutions that were built with the specifics of embedded systems in mind. 

    Secondly, to avoid unnecessary network and battery use, you might want to choose an embedded database. On top, an efficient differential data sync solution will help reduce overhead and reduce the environmental footprint.

    Finally, there are several embedded databases that perform well on embedded devices. Each has its own benefits and drawbacks, so it’s up to you to choose the right one for your use case. That being said, we’d like to point out that ObjectBox outperforms all competitors across each CRUD operation. See it for yourself by checking out our open source performance benchmarks.

    Cross platform Data Sync: a simple example

    Cross platform Data Sync: a simple example

    Cross platform data sync can be simple: In this tutorial we will show you how you can easily sync data across devices.

    Built for fast and effortless data access on and across embedded devices from Mobile to IoT, ObjectBox keeps data in sync between devices for you. The Database and Data Snyc works across platforms (iOS, Android, Linux, Rasbian, Windows, MacOS) and supports a variety of languages with easy native APIs (Swift, Java, Kotlin, C / C++, Flutter / Dart, Golang).

    For example, you can sync between an Industrial IoT sensor app in Go and a C++ monitoring application – and a mobile Android app written in Kotlin or Java – and of course an iOS app written in Swift – and… you get the drift 😉

    ObjectBox is a high-performance embedded database for Edge Computing with integrated Data Sync. The ObjectBox database is quick to set up and free and easy to use. Our powerful and intuitive APIs are a great match for multiplatform development environments.

    Syncing data across devices – a task-list app example

    In this tutorial, we are going to sync data across three instances of an example task-list app (written in C++, Go and Java).

    With the task-list app, users can create simple text-based tasks and mark them as done. It stores tasks together with their creation dates. There is also a parameter to store the date when the task was completed. It acts as a filter for users to only see unfinished tasks. 

    This app is a standard cross platform ObjectBox example that is available for all language bindings. Here are the repositories of each example app that we will be looking at today:

    Overview of the example code 

    In this section, we’ll quickly review how the the task-list example app uses ObjectBox Sync. For a more detailed description, check out the Sync docs. If you want to see how each of these steps were incorporated into the example code, go to the next section.

    Note: The basic use of the database and its sync features is the same for all programming languages. If you haven’t used the ObjectBox DB yet, please refer to the corresponding documentation: C/C++ Docs, Java/Kotlin/Dart Docs, Go Docs, Swift Docs.

    For sync to work in any app, we generally only need four things:

    1. The sync-enabled library — this is not the same as the general ObjectBox library and has to be downloaded separately.
    2. Database objects enabled for sync — for this we need include the sync annotation in the ObjectBox schema file.
    3. ObjectBox Sync Server — please apply for a free Sync Trial here to get your own copy of the Sync Server (available for Linux and Docker). Note that this will only have to be started once and in this tutorial we’ll show you how to run the server on Linux. If you are using Docker, follow the steps outlined here.
    4. Start a Sync Client in the app — as one can see from the Sync Client docs, creating and starting a sync client is just a matter of a couple of lines of code.

    Important: When syncing between different apps, please make sure that the UIDs in the model JSON file (e.g. objectbox-default.json) are the same everywhere.

      How to run the examples

      Here you’ll find requirements and step-by-step guides for running the task-list example app in each of the three languages.

      C++ example app

      Requirements

      New to C++? Check out our beginner C++ ObjectBox installation tutorial.

      • WSL Ubuntu
      • CMake
      • Git
      • C++
      • Clang

        Step-by-step guide

        1.Start by creating a CMakelists.txt file:

        Now configure and build the project via CMake: Configure (Clang), CMake: Build.

        2. Sync-enabled objects: note the first line in tasklist.fbs.

        3. [if not running a server already] Start the ObjectBox Sync Server on Linux by running ./sync-server --model build/_deps/objectbox-src/examples/cpp-gen/objectbox-model.json --unsecured-no-authentication

        where sync-server is the path to your sync server executable. You can find more information about the server in the Sync Server docs.

        4. Sync Client: launch [objectbox-c-examples-cpp-gen-sync], and the Sync Client will start automatically. You can see how it was implemented in main.cpp.

        As this is just an example, we opted for no authentication to make things simple. This is not what you would use in production. We currently offer two authentication methods: shared secret and Google Sign-In. Here is the relevant Sync docs section on authentication options that explains how to use these.

        5. Let’s add a first task, called “task-cpp” (new task-cpp-1), to check if our C++ app syncs correctly. The output should look like this:

        Output of the C++ tasklist example app, showing a newly added task

        6. You can finally open the Admin UI to check if the task appears there. This is most easily done by opening http://127.0.0.1:9980/ in any web browser. For a more detailed description of what this can do, check out the Admin UI docs.

        Go example app

        Requirements

        • WSL Ubuntu
        • Go (see how to configure it for VS Code here)
        • Git

        Step-by-step guide

        1. First, clone the objectbox-go repository to your VS Code project. Make sure the current directory is objectbox-go.

        2. Sync-enabled objects. There are two versions of the task-list example: with and without sync. To run the one with sync, we need to enable our Task object for syncing. To do this, simply put the sync annotation on a new line in examples/tasks/internal/model/task.go:

        Then run the generator: go generate examples/tasks/internal/model/task.go to update the schema.

        3. [if not running a server already] Now start the ObjectBox Sync Server: ./sync-server --model=examples/tasks/internal/model/objectbox-model.json --unsecured-no-authentication,

        where sync-server is the path to your sync server file. You can find more information about the server in the Sync Server docs.

        4. Run go run examples/tasks/main.go. The Sync Client will start within the app; check main.go to see how this was implemented.

        As this is just an example, we opted for no authentication to make things simple. This is not what you would use in production. We currently offer two authentication methods: shared secret and Google Sign-In. Here is the relevant Sync docs section on authentication options that explains how to use these.

        5. Now we can add our first task (new task-go) – if it synced correctly, you should already see that from the output of the app. In particular, there will be a message from the change listener (“received 1 changes”):

        Output of the Go task-list example app after adding a first task

        6. Lastly, open the Admin UI to check if the task appears there. This is most easily done by opening http://127.0.0.1:9980/ in any web browser. For a more detailed description of what this can do, check out the Admin UI docs.

        Admin UI showing a task created with the Go example app

        Java (Android) example app

        Requirements

        • Java
        • Android Studio

        Step-by-step guide

          1. First of all, open Android Studio and clone the objectbox-examples repository via File → New → Project from Version Control. Use this URL: https://github.com/objectbox/objectbox-examples.git
          2. Sync-enabled objects: check out Task.java to see how this was done (note the @Sync annotation).
          3. [if not running a server already] Start the ObjectBox Sync Server

        ./sync-server --model android-app-sync/objectbox-models/default.json --unsecured-no-authentication,

        where sync-server is the path to your sync server file. You can find more information about the server in the Sync Server docs.

        1. Now you can run “android-app-sync” on a device of your choice. The Sync Client will start in the app. 

        As this is just an example, we opted for no authentication to make things simple. This is not what you would use in production. We currently offer two authentication methods: shared secret and Google Sign-In (only for Java, Kotlin, Dart, C & Go). Here is the relevant Sync docs section on authentication options that explains how to use these.

        5. Add a new task called “task-java”.

        6. Finally, open the Admin UI to check if the task appears there. This is most easily done by opening http://127.0.0.1:9980/ in any web browser. For a more detailed description of what this can do, check out the Admin UI docs.

        Next Steps

        How easy was that? cool Now that you’ve run your first ObjectBox Sync example, why not build something yourself? Use any combination of the supported languages to build your own cross platform app.

        We’re eager to see your use case examples! Don’t hesitate to share your results with us by posting on Social Media and tagging @objectbox_io, or simply sending us an email on contact[at]objectbox.io. 

         

        If you want to learn more about how ObjectBox can be used in IoT, here is an overview of different use cases

        What is Data Synchronization + How to Keep Data in Sync

        What is Data Synchronization + How to Keep Data in Sync

        What is Data Sync / Data Synchronization in app development?

        Data Synchronization (Sync) is the process of establishing consistency and consolidation of data between different devices. It is fundamental to most IT solutions, especially in IoT and Mobile. Data Sync entails the continuous harmonization of data over time and typically is a complex, non-trivial process. Even corporates struggle with its implementation and had to roll back Data Sync solutions due to technical challenges. 

        The question Data Sync answers is

        phone-data-sync-with-machine-payment-automatic-data

        How do you keep data sets from two (or more) data stores / databases – separated by space and time – mirrored with one another as closely as possible, in the most efficient way?

        Data Sync challenges include asynchrony, conflicts, slow bandwidth, flaky networks, third-party applications, and file systems that have different semantics.

        Data Sync versus Data Replication in Databases

        sync-data-better-than-replication

        Data replication is the process of storing the same data in several locations to prevent data loss and improve data availability and accessibility. Typically, data replication means that all data is fully mirrored / backed up / replicated on another instance (device/server). This way, all data is stored at least twice. Replication typically works in one direction only (unidirectional); there is no additional logic to it and no possibility of conflicts.

        In contrast, Data Sync typically relates to a subset of the data (selection) and works in two directions (bi-directional). This adds a layer of complexity, because now conflicts can arise. Of course, if you select all data for synchronisation into one direction, it will yield the same result as replication. However, replication cannot replace synchronization.

        Why do you need to keep data in sync?

        Think about it – if clocks were not in sync, everyone would live on a different time. While I can see an upside to this, it would result in many inefficiencies as you could not rely on schedules. When business data is not in sync (up-to-date everywhere), it harms the efficiency of the organization due to:

        • Isolated data silos
        • Conflicting data / information states
        • Duplicate data / double effort
        • Outdated information states / incorrect data

        In the end, the members of such an organization would not be able to communicate and collaborate efficiently with each other. They would instead be spending a lot of time on unnecessary work and “conflict resolution”. On top, management would miss an accurate overview and data-driven insights to prioritize and steer the company. The underlying mechanism that keeps data up-to-date across devices is a technical process called data synchronization (Sync). And while we expect these processes to “just work”, someone needs to implement and maintain them, which is a non-trivial task.

        Growing data masses and shifts in data privacy requirements call for sensible usage of network bandwidth and the cloud. Edge computing with selective data synchronization is an effective way to manage which data is sent to the cloud, and which data stays on the device. Keeping data on the edge and synchronizing selective data sets effectively, reduces the data volume that is transferred via the network and stored in the cloud. Accordingly, this means lower mobile networking and cloud costs. On top, it also enables higher data security and data privacy, because it makes it easy to store personal and private data with the user. When data stays with the user, data ownership is clear too.

        Unidirectional Data Replication

        replication-data-sync-database

        Bidirectional Data Synchronization

        how-to-sync-data-what-is-data-sync

        Out-of-the-box Sync magic: Syncing is hard

        Almost every Mobile or IoT application needs to sync data, so every developer is aware of the basic concept and challenges. This is why many experienced developers appreciate out-of-the-box solutions. While JSON / REST offers a great concept to transfer data, there is more to Data Sync than what it looks like at a glance. Of course, the complexity of Sync varies widely depending on the use case. For example, the amount of data, data changes, synchronous / asynchronous sync, and number of devices (connections), and what kind of client-server or peer-to-peer setup is needed, all affect the complexity.

        iceburg-building-data-synchronization

        What looks easy in practice hides a complex bit of coding and opens a can of worms for testing. For an application to work seamlessly across devices – independent of the network, which can be offline, flaky, or only occasionally connected – an app developer must anticipate and handle a host of local and network failures to ensure data consistency. Moreover, for devices with restricted memory, battery and/or CPU resources (i.e. Mobile and IoT devices), resource sensitivity is also essential. Data storage and synchronization solutions must be both effective / efficient, and sustainable.

        How to Keep Data in Sync Without the Headache?

        Thankfully, there are out-of-the-box data synchronization solutions available on the market, which solve data syncing for developers. They fall broadly into two categories: cloud-dependent data synchronization, and independent, “edge” data synchronization. Cloud-based solutions, like Firebase, require a connection to the internet to function. Data is sent to and requested from the cloud constantly. Edge solutions, like ObjectBox, also offer “Offline Sync”: Data is stored in an efficient on-device database, synchronization on and between edge devices can be done continually without an Internet connection, and Dat Sync with a cloud or a backend that is not located on premise occurs once the device(s) goes online. Below, we summarize the most popular market offerings for data synchronization (offline and cloud based):

        mongo-realm-logo

        Couchbase

        Couchbase is a Cloud DB, Edge DB and Sync offering that requires the use of Couchbase servers.

        firebase-logo

        Firebase

        Firebase is a Backend as a Service (BaaS) offering from Google (acquired). Google offers it as a cloud hosted solution for mobile developers.

        mongo-realm-logo

        Mongo Realm

        Realm was acquired by MongoDB in 2019; the Mongo Realm Sync solution is now in Alpha and available hosted with MongoDB.

        mongo-realm-logo

        ObjectBox

        ObjectBox is a DB for any device, from restricted edge devices to servers, and offers an out-of-the-box Sync solution. ObjectBox enables self-hosting on-premise / in the cloud, as well as Offline Sync.

        pasre-logo-comparison

        Parse

        Parse is a BaaS offering that Facebook acquired and shut down. Facebook open sourced the code. The GitHub repository is not officially maintained. You can host Parse yourself or use a Parse hosting service.

        Data Sync, Edge Computing, and the Future of Data

        There is a megashift happening in computing from centralized cloud computing to Edge Computing. Edge computing is a decentralized topology entailing storing and using data as close to the source of the data as possible, i.e. directly on edge devices. Accordingly, the market is growing rapidly with projections estimating continuing growth with a 34% CAGR for the next five years. The move from the cloud to the edge is strongly driven by new use cases and growing data masses Edge data persistence and Data Sync (managing decentralized data flows), especially “Offline Sync”, are the key technologies needed for Edge Computing. Using edge data persistence, data can be stored and processed on the edge. This means application always work, independent from a network connection, offline. Faster response times can be guaranteedWith Offline Sync, data can be synchronized between several edge devices in any location independant from an Internet connection. Once a connection becomes available, selected data can be synchronized with  a central server. By exchanging less data with the cloud or a central instance, data synchronization reduces the burden on the network. This brings down mobile network and cloud costs, and reduces the amount of energy used: a win-win-win solution. It also enables data privacy by design.

        IoT, Edge Computing, and Digitalization in Healthcare

        IoT, Edge Computing, and Digitalization in Healthcare

        COVID-19 accelerated the digitization of healthcare, contributing to growing IoT adoption and exploding health data volumes. This digital transformation helps to improve efficiency and reduce costs, while opening new avenues for enhanced patient experience and well-being. Simultaneously, growing data privacy concerns, increasing costs, and heavier regulatory requirements are challenging the use of cloud computing to manage this data. A megashift to Edge Computing is addressing these challenges enabling a faster, safer and more reliable digital healthcare infrastructure.

        The digital healthcare market 2020 and beyond, a high speed revolution

        Prior to COVID, growth in digital health adoption stalled. [1] However, digitalization in the healthcare industry has sky-rocketed since the start of the pandemic. Reflecting this market turnaround, the third quarter of 2020 was a record year for investments in healthcare companies. [2] A trend that will continue in the next years, as analysts predict rapid growth across digital healthcare market sectors:

        healthcare-edge-iot-trends

        Drivers of growth and change in digital healthcare

        Digital Healthcare Growth Driver 1: COVID

        The COVID pandemic accelerated the digitization of healthcare, pushing doctors, patients – and their data – to the virtual world. [8] The year 2020 marks the tipping point for digital healthcare offerings. With healthcare providers and patients forced to use digital means, adoption barriers have been removed for good. Indeed, a recent study from Forrester indicates that 36% of adults found that the care they received virtually was just as effective as what they would have received in person, and over 30% of adults will seek virtual care again in the future. [9]

        health-care-edge-computing

        Over 30% of adults will seek
        virtual care again in the future

        Digital Healthcare Growth Driver 2: Growing Medical IoT Device Adoption

        There will be a projected 55 billion IoT devices by 2025. [10] Internet of Medical Things (IoMT) are hardware devices designed to process, collect, and/or transmit health related data via a network. IoMT devices are projected to make up 30% of the entire IoT device market by 2025. [11] According to Gartner, 79% of healthcare providers are already using IoT in their processes, [12] i.e. remote health monitoring via wearables, ingestible sensors, [13] disinfection robots, [14] or closed-loop insulin delivery systems.15 IoMT devices increase safety and efficiency in healthcare, and future technical applications, like smart ambulances or augmented reality glasses that assist during surgery, are limitless.

        IoMT devices are projected to make up
        30% of the IoT device market by 2025

        health-care-edge-computing

        Digital Healthcare Growth Driver 3: The Explosion of Health Data

        Growing IoMT adoption is subsequently driving a rapid increase in the amount of collected health data. According to an IDC study, healthcare data is growing exponentially projected 36% CAGR through 2025; health data is expected to eclipse data volumes from sectors like manufacturing, financial services, and media. [16] The increase in healthcare data opens up new opportunities to apply technology to improve healthcare like e.g. big data analysis, AI and ML. In fact, the healthcare analytics market is expected to reach $84.2 billion by 2027 with a 26% CAGR. [17]

        health-care-edge-computing

        Healthcare data will experience a
        36% CAGR through 2025

        Digital Healthcare Growth Driver 4: Technological innovations: Edge Computing, AI, and VR

        Big health data sets are being used to revolutionize healthcare, bringing new insights into fields like oncology,18 and improving patient experience, care, and diagnosis: “Taken together, big data will facilitate healthcare by introducing prediction of epidemics (in relation to population health), providing early warnings of disease conditions, and helping in the discovery of novel biomarkers and intelligent therapeutic intervention strategies for an improved quality of life.” [19] In a November 2020 survey from Intel, 84% of healthcare providers shared that Artificial Intelligence deployments had occurred or were planned in their clinical workflow, an increase from 37% in 2018. This is unsurprising, as AI technologies are predicted to save the healthcare industry up to $150 billion per year, by answering “20 percent of
        unmet clinical demand.” [20]

        Augmented and Virtual Reality are also finding a place in healthcare settings. VR tools have been shown to reduce pain, [21] and are being used in therapy as a means to help patients overcome painful and traumatic experiences. Experts expect a realm of future AR applications in the operating room, assisting doctors during surgical procedures.

        Current or planned AI deployments are at
        84% in 2020, up from 37% in 2018

        health-care-edge-computing

        Digital Healthcare Growth Driver 5: Underlying Social Megatrends

        The global population is growing; global life expectancy is rising. Accordingly, by 2030 the world needs more energy, more food, more water. Explosive population growth in some areas versus declines in others contributes to shifts in economic power, resource allocation, societal habits and norms. Many Western populations are aging rapidly. E.g. in America, the number of people 65+ is expected to nearly double to 72.1 million by 2034. Because the population is shrinking at the same time, elder care is a growing challenge and researchers are looking to robots to solve it. [22]

        Health megatrends focus not only on the prevention of disease, but also on the perception of wellness, and new forms of living and working. Over the coming decade more resources will be spent on health and longevity, leading to artificially and technologically enhanced human capabilities. More lifestyle-related disorders and diseases are expected to emerge in the future. [22]

        health-care-edge-computing

        A focus on health and longevity will
        lead to artificial & tech enhanced
        human capabilities

        The Challenges of Healthtech

        Along with more data, more devices and more opportunity also comes more
        responsibility and more costs for healthcare providers.

        health-care-edge-computing

        Data Volume and Availability With the growing number of digital healthcare
        and medical devices, a dazzling volume of health data is created and collected across many different channels. It will be vital for the healthcare industry to reliably synchronize and combine data across devices and channels. [23] Due to the sheer volume, reliable collection and analysis of this data is a major challenge. After it’s been processed, data needs to be available on demand, i.e. in emergency situations that require reliable, fast, available data.

        health-care-edge-computing

        Reliability, Privacy, and Data Security are extremely important in health
        technology; 70% of healthcare consumers are concerned about data privacy. [24] Data use is often governed by increasingly strict national regulation, i.e. HIPAA (USA) and / or GDPR (Europe). [25] With the number of cyber-attacks in the healthcare industry on the rise, [26] healthcare professionals must be even more diligent about the storage and processing of data. In addition, healthtech must be extremely well vetted; failures can cost lives – typical “banana products”, which ripen with the customers, are a no-go.

        health-care-edge-computing

        IT Costs Medical devices contribute a large portion to healthcare budgets.
        However as data volumes grow, data costs will also become a relevant cost
        point. Sending all health data to the cloud to be stored and processed is not
        only slow and insecure, it is also extremely costly. To curb mobile network and
        cloud costs, much health data can be stored and processed at the edge, on
        local devices, with only necessary data being synced to a cloud or central
        server. By building resilient data architecture now, healthcare providers (e.g.
        hospitals, clinics, research centers) can avoid future costs and headache.

        Edge Computing is Integral to Data-driven Healthcare Ecosystems

        With big data volumes, industries like healthcare need to seek out resilient information architectures to accommodate growing numbers of data and devices. To build resilient and secure digital infrastructure, healthcare providers will need to utilize both cloud computing and edge computing models, exploiting the strengths of both systems.

        Cloud & Edge: What’s the Difference?

        Cloud Computing information is sent to a centralized data center, to be stored, processed and sent back to the edge. This causes latency and higher risk of data breaches. Centralized data is useful for large scale data analysis and the distribution of data between i.e. hospitals and doctors’ offices.

        Edge Computing Data is stored and processed on or near the device it was created on. Edge Computing works without an internet connection, and thus is reliable and robust in any scenario. It is ideal for time sensitive data (real time), and improved data privacy and security.

        health-care-edge-computing

        Edge Computing contributes to resilient and secure healthcare data systems

        health-care-edge-computing

        Transforming Healthcare with Edge Computing

        Use Case: Secure and Up to Date Digital Record Keeping in Doctors Offices

        For private doctors offices, embracing digitalization comes with different hurdles than larger healthcare providers. Often, offices do not keep a dedicated IT professional on staff, and must find digital solutions that serve their needs, while allowing them to comply with ever-increasing data regulations. As an industry used to legislative challenges, GPs know that sensitive patient data must be handled with care.

        Solution providers serving private doctors offices are using edge databases to help keep patient data secure. An edge database allows private GPs to collect and store digital data locally. In newer practice setups, doctors use tablets, like iPads, throughout their practice to collect and track patient data, take notes and improve flexibility. This patient data should not be sent or stored in a central cloud server as this increases the risk of data breaches and opens up regulatory challenges. In a cloud-centered set up, the doctor also always needs to rely on a constant internet connection being available, making this also a matter of data availability

        health-care-edge-computing

        Accordingly, the patient data is stored locally, on the iPads, accessible only by the doctor treating the patient. Some of the data is synchronized to a local, in-office computer at the front desk for billing and administration. Other data is only synchronized for backup purposes and encrypted. Such a setup also allows synchronizing data between iPads, enabling doctors to share data in an instant.

        Use Case: Connected Ambulances – Real Time Edge Data from Home to Hospital

        health-care-edge-computing

        Between an incidence location and the hospital, a lot can happen. What if everything that happened in the ambulance was reliably and securely tracked and shared with the hospital, seamlessly? Already there are trials underway using 5G technology to stream real time data to hospitals, [27] and allowing ambulance medics to access patient data while in transit. [28] Looking to the future, Edge Computing will enable digital healthcare applications to function in realtime and reliably anywhere and anytime, e.g. a moving ambulance, in the tunnel, or a remote area, enabling ambulance teams and doctors to give the best treatment instantly / on-site, while using available bandwidth and networks when available to seamlessly synchronize the relevant information to the relevant healthcare units, e.g. the next hospital. This will decrease friction, enhance operational processes, and improve time to treatment.

        Digital Healthcare: Key Take-Aways

        Digital healthcare is a fast-growing industry; more data and devices alongside new tech are empowering rapid advances. Finding ways to utilize growing healthcare data, while ensuring data privacy, security and availability are key challenges ahead for healthcare providers. The healthcare industry must find the right mix of technologies to manage this data, utilizing cloud for global data exchange and big data analytics, while embracing Edge Computing for it’s speed, security, and resilience.

        health-care-edge-computing

        Underutilized data plays a major role in health-tech innovation, [29] data is the lifeline of future healthcare offerings; however, there is still much work to be done to improve the collection, management and analysis of this data.

        health-care-edge-computing

        It’s all about data availability. Either in emergency situations, or simply to provide a smooth patient experience, data needs to be fast, reliable, and available: when you need it where you need it.

        health-care-edge-computing

        Edge computing alongside other developing technologies like 5G, Augmented and Virtual Reality, Artificial Intelligence and Machine Learning will empower a new and powerful digital healthcare ecosystem.

        ObjectBox provides edge data software, to empower scalable and resilient digital innovation
        on the edge in healthcare, automotive, and manufacturing. ObjectBox’ edge database and
        data synchronization solution is 10x faster than any alternative, and empowers applications
        that respond in real-time (low-latency), work offline without a connection to the cloud,
        reduce energy needs, keep data secure, and lower mobile network and cloud costs.

        Sources
        1. https://www.accenture.com/us-en/insights/health/leaders-make-recent-digital-health-gains-last
        2. https://www.cbinsights.com/research-state-of-healthcare-q3-2020
        3. https://www.accenture.com/us-en/insight-artificial-intelligence-healthcare%C2%A0
        4. https://www.grandviewresearch.com/industry-analysis/wearable-medical-devices-market
        5. https://www.marketsandmarkets.com/PressReleases/iot-healthcare.asp
        6. https://www.grandviewresearch.com/press-release/global-mhealth-app-market
        7. https://www.globenewswire.com/news-release/2020/05/23/2037920/0/en/Global-Digital-Health-Market-was-Valued-at-USD-111-4-billion-in-2019-and-is-Expected-to-Reach-USD-510-4-billion-by-2025-Observing-a-CAGRof-29-0-during-2020-2025-VynZ-Research.html
        8. https://www.sciencemag.org/features/2020/11/telemedicine-takes-center-stage-era-covid-19
        9. https://go.forrester.com/blogs/will-virtual-care-stand-the-test-of-time-if-youre-asking-the-question-its-time-tocatch-up/
        10. https://knowledge4policy.ec.europa.eu/foresight/topic/accelerating-technological-change-hyperconnectivity/hyperconnectivity-iot-digitalisation_en
        11. https://mobidev.biz/blog/technology-trends-healthcare-digital-transformation
        12. https://www.computerworld.com/article/3529427/how-iot-is-becoming-the-pulse-of-healthcare.html
        https://www.gartner.com/en/documents/3970072
        13. https://science.sciencemag.org/content/360/6391/915
        14. http://emag.medicalexpo.com/disinfection-robots-against-covid-19/
        15. https://www.theverge.com/2019/12/13/21020811/fda-closed-loop-insulin-system-software-diabetes-tandemcontrol-iq
        16. https://www.seagate.com/files/www-content/our-story/trends/files/idc-seagate-dataage-whitepaper.pdf
        17. https://www.prnewswire.com/news-releases/healthcare-analytics-market-worth-84-2-billion-by-2027–growingat-a-cagr-of-26-from-2020–pre-and-post-covid-19-market-opportunity-analysis-and-industry-forecasts-bymeticulous-research-301117822.html
        18. https://www.nature.com/articles/s41437-020-0303-2
        19. June 2019, https://journalofbigdata.springeropen.com/articles/10.1186/s40537-019-0217-0
        20. https://www2.stardust-testing.com/en/the-digital-transformation-trends-and-challenges-in-healthcare
        21. https://www.geekwire.com/2018/snowworld-melts-away-pain-burn-patients-using-virtual-reality-snowballs/
        22. https://www.pwc.com/gx/en/government-public-services/assets/five-megatrends-implications.pdf
        23. https://www2.stardust-testing.com/en/the-digital-transformation-trends-and-challenges-in-healthcare
        24. https://www.accenture.com/_acnmedia/PDF-133/Accenture-Digital-Health-Tech-Vision-2020.pdf#zoom=40
        25. https://www.lexology.com/library/detail.aspx?g=99b83b76-3f2f-4b23-a5c3-30ad576af369
        26. https://www.medicaleconomics.com/view/cyberattack-threat-to-health-care-providers-on-the-rise
        https://www.healthcareitnews.com/news/fbi-hhs-warn-increased-and-imminent-cyber-threat-hospitals
        https://blogs.microsoft.com/on-the-issues/2020/11/13/health-care-cyberattacks-covid-19-paris-peace-forum/
        27. https://www.vodafone.co.uk/business/5g-for-business/5g-customer-stories/connected-ambulance
        28. https://www.digitalhealth.net/2019/04/london-ambulance-access-patient-data/
        29. https://news.crunchbase.com/news/for-health-tech-startups-data-is-their-lifeline-now-more-than-ever/

        What is an Edge Database, and why do you need one?

        What is an Edge Database, and why do you need one?

        Edge Databases – from trends to use cases

        With the megashift from Cloud Computing to the Edge, a lack of core technologies supporting the needs of the decentralized Edge Computing topology became apparent. Edge Databases are a new type of database addressing these need. To implement edge solutions, developers need fast local data persistence and decentralized data flows (Data Sync). Edge Databases solve these core edge functionalities out-of-the-box, making it easy for application developers to implement edge solutions quickly. 

        Table of Contents

        The trends driving the megashift to decentralized Edge Computing
        Urgently needed: Software infrastructure for edge computing
        What is an edge database?
        When do you need an edge database?
        Edge Database Use Case Example in Manufacturing
        Edge Database Outlook  

        The trends driving the megashift to decentralized Edge Computing

        By 2025, 30+ billion IoT devices will be creating ~4.6 trillion GB of data per day. The growing numbers of devices and data volume, variety, and velocity, as well as bandwidth infrastructure limitations, make it infeasible to store and process all data in a centralized cloud. On top, new use cases come with new requirements, a centralized cloud infrastructure cannot meet. For example, soft and hard response rate requirements, offline-functionality, and security and data protection regulations.

        trends-driving-edge-computing

        These trends accelerate the shift away from centralized cloud computing to a decentralized edge computing topology. Edge computing refers to decentralized data processing at the “edge” of the network. For example, in a car, on a machine, on a smartphone, or in a building. Hardware specifications do not capture the definition of an “edge device”. The crucial point is rather the decentralized use of data at, or as close as possible to, the data source.

        Edge computing itself is not a technology but a topology, and according to McKinsey, one of the top growing trends in tech in 2021. The technologies needed to implement the edge computing topology are at this moment still inadequate. More specifically, there is a gap in basic “core” edge technologies, so-called “software infrastructure”. This gap is one of the main reasons for the failure of edge projects.

        Needed: Infrastructure Software for Edge Computing

        With computing shifting to the edge of the network, the needs of this decentralized topology become clear:

        hugh performance db

        Need for fast local data storage

        → i.e. a machine on the factory floor collects data on stiffness, friction, pressure points. There is limited space on the device, and typically no connection to the Internet. Even with an Internet connection, high data rates quickly push the available bandwidth, as well as associated networking / cloud costs, to the limit. To be able to use this data, it must be persisted in a structured manner at the edge, e.g. stored locally in a database.

        feedback dialogue icon

        Need for reliable on-device data flows

        → i.e. the car is an edge device consisting of many control units. Therefore, data must be stored on multiple control units. In order to access and use the data within several of the control units of the car, the data must be selectively synchronized between the devices. A centralized structure and thus a single point of failure is unthinkable.

        Need for edge-to-edge-to-cloud data flows

        → i.e. in a manufacturing hall: Typically, you will find any number of diverse devices from sensors to brownfield to greenfield devices, and no internet connectivity. At the same time, there are diverse employee devices such as tablets or smartphones, as well as central PCs, and a cloud. To extract value from the data, it must be available in raw, aggregated, or summary form, in different places. This means it needs to be synchronized efficiently and selectively, with possible conflicts resolved.

        types-of-data-on-edge-flexibility

        Need for flexible edge data management

        → e.g. with the rise of IoT, time-series data have become common. However, time series data alone is usually not sufficient, and needs to be combined with other data structures (like objects) to add value. At the same time, a push to standardize data formats in industries (e.g. VSS in automotive or Umati in Industrial IoT) requires that the database supports flexible data structures.

        Developing solutions without software infrastructure on an individual level is possible, but has many drawbacks:

        Custom in-house implementations are cumbersome, slow, costly, and typically scale poorly. Oftentimes, applications or certain feature sets become unfeasible to deliver because of the lack of core software infrastructure. Legacy code and individual workarounds create problems over the lifetime of a product. Instead of a thriving ecosystem, only a few big players are able to implement edge solutions. Innovation and creativity are limited. An edge database is part of the solution and enables the entire edge ecosystem to build edge applications faster, cheaper and more efficiently.

        lack-of-core-tech-for-the-edge

        What is an edge database?

        An edge database is a new type of database specifically tailored to the unique requirements of the Edge Computing topology. An edge database has specific features that make it easy for application developers to focus on value creation. It remove the burden of implementing underlying functionalities for secure storage and the decentralized synchronization of data.

        First, an edge database is optimized for resource efficiency (CPU, memory, …) and performance on resource-constrained devices (embedded devices, IoT, mobile). It has a small footprint of a few megabytes. Traditional databases such as MySQL or MongoDB are too large and cumbersome for typical edge devices, and unsuitable for computing at the edge.  

        An edge device without data flows to/from other devices is just a data island with very limited utility. Accordingly, an edge database must support the management of decentralized data flows. There is no more efficient way than at the database level. This includes a range of conflict resolution strategies due to the decentralized and multi-directional structure of the Edge.

        Data security and protection is an increasingly important issue and can quickly become a showstopper for Edge projects. Edge database need to ensure that data is secured in every state (at rest, in transit, in use).

        What is an Edge Database?

        When do you need an edge database?

        Most IoT applications need to store and synchronize data. An edge database is always useful when functions / applications are planned that:

        • should work offline and independent of an internet connection
        • need to guarantee fast response times
        • work with a lot of, possibly high-frequency data
        • need to serve many devices at the same time
        • need historical data

        In addition, developers also often decide to use an edge database to save time and nerves, or to be able to react quickly and flexibly to future requirements.

        Edge Database Use Case Example in Manufacturing

        Today, you can find everything from low-frequency brownfield devices to high-frequency greenfield devices on a factory floor. As a rule, the machine controllers in use are not designed to store or transmit data. They usually lack not only the functionality, but also the resources to support this. Therefore, additional edge devices are often needed to collect, analyze and interpret the huge amounts of data that each machine produces on site. For such an edge device, rapid data persistence and ingestion, and efficient data flow from edge-to-edge and edge-to-cloud are at the heart of value creation. The clear separation of machine control and edge data processing unit ensures that there is no risk of unintentional interference with the machine controller. An edge device with a powerful edge database can support multiple use cases on the shop floor today:

        manufacturing-edge-computing-use-case

        1. Operational efficiency

        Process optimization along the line to increase quality and reduce damage. When the first machine in a production line uses a new batch of material, i.e. in sheet metal processing, one of the first steps is to cut a sheet to the required size. At this stage, the machine can already detect the differences in the metal compared to a previous batch (deviations are allowed within the DIN standard). With an Edge device this data can be evaluated, and the relevant information passed on to the next machine. With this data machines further down the line can avoid damage / breakpoints of the material.

        2. Condition monitoring

        Continuous machine condition monitoring reduces downtime and increases maintenance efficiency. A constant stream of high-frequency machine data is compared against the fingerprint of the machine. Any slight deviation is immediately detected and reported. Catching deviations early reduces down-times and costly repairs.

        3. Historical Data

        Historical data is stored for learning and training to optimize the production line. With an edge database, the data is persisted and thus available in the event of faulty behavior. In case of an error, the data preceding the incident can be analyzed and used to find the causes and predict, or even avoid, such an error in the future. Chances are that “fuzzy expert knowledge” already available at the production site can be translated into deterministic rules when tested with these data sets.

        Edge Database and the edge ecosystem – an outlook

        Edge computing brings many advantages, and enables many applications and functionalities that can only be realized by computing on the edge. Up to now, however, only a few (usually large) players have been able to create value in edge computing projects, and thus gain competitive advantages. One reason is the lack of basic software for the edge. A thriving edge ecosystem requires edge software infrastructure that solves the basic recurring requirements of edge projects. Edge databases are an important building block on the way to such an ecosystem.

        Why database performance creates business value

        Why database performance creates business value

        “Why does database performance matter?” “What is the business value of database speed?” “Why should I care about the performance of a database?”

        Why database performance matters in a nutshell

        fast-database-business-decisions

        Make Faster Decisions

        Database speed is the key to compute more data faster and make data-based decisions quickly. Faster decision-making drives business value.

        fast-database-speed-saves-costs

        Save Resources & Costs

        Database speed translates into resource efficiency. Saving resources (like battery, CPU, memory) saves money and reduces waste.

        improve-ux-response-times-database

        Better UX & Response Rates

        Database speed affects end user response rates significantly – smooth and fast user experiences keep people happy and more productive.

        As a developer, it seems clear that database performance matters. At the very least, a fast database that gives you out-of-the-box speed saves time and nerves during development. Any piece of the tech stack that works super-fast makes a developer’s job easier. But there is more to it. Learn, why and how database performance impacts business value and get ideas on how to quantify this for your business case.

        Data should be available when need where needed

        We all dream of a future transformed by data. Cars that drive themselves to be repaired before a failure occurs. Fridges that are restocked while we are at work. Reducing resource waste to an absolute minimum. Building sustainable cities and communities.[1] It is truly amazing what is possible today…

        database performance business value

        Then reality hits: Before you can implement amazing solutions to make the world a better place for everyone, someone needs to solve the technical challenges, including hidden requirements. For example: you need the necessary data, and you need it available when needed where needed. This often isn’t that simple. Data persistence, database speed, and data synchronization are typical non-functional or “hidden” requirements. These are prerequisite technologies to allow the application to access, process and possibly depict the data required to answer a request (from another application or from a user), and thus enable the functionalities /  features. All in all, this is a pretty fundamental requirement. And it pays off to build your app on top of a solid foundation. Because, if you built your application on a solid foundation, every feature you dream up, no matter when,  and any next feature will be easier and faster to implement. 

        Functional and non-functional requirements – the hidden challenges of your IoT project

        IoT project hidden challenge

        While you need data in any application, most often no one will write down where and how to handle it  as a user story or requirement. As opposed to features, e.g. “being able to search for names in the address book”, data persistence, database speed, and often even data synchronization are “hidden requirements”. Data is just expected to be available where needed when needed. Whether  the data you need really will be available when you need it, depends strongly on the database the application is using and and where this database runs. On top, the mechanisms you employ to exchange data between different devices (end devices, servers, ….) matter.

        Hidden requirements are one of the major reasons why the Industry 4.0 dream is still in many respects a dream and not a reality – in Europe at least. Despite it being a topic for more than 10 years. [2]

        Database performance 

        What is a database?

        A database is a piece of software that allows the storage and systematic use of digital information. A database typically allows developers to store, access, search, update, query, and otherwise manipulate data in the database via a developer language or API. These types of operations are done within an application, in the background, typically hidden from end users. Most applications need a database as part of their technology stack.

        What is database performance?

        We like and therefore use the following definition from Craig Mullins (2002): “Database performance can be defined as the optimization of resource use to increase throughput and minimize contention, enabling the largest possible workload to be processed.” [3]

        Why does it matter if the database runs on the edge or in the cloud?

        An edge database holds data on the (end) devices, where the data is used – and typically additionally sends some parts of the data to a central place like an on-premise server or the cloud. As opposed to this, a server / cloud-based database holds all data on the server / in the cloud. Where the data sits, determines from where, when and how it can be accessed. If all data is on a central server or the cloud, the prerequisite to accessing this data is a working network connection.

        Online

        Offline

        It follows that edge applications are based upon a distributed computing paradigm, allowing edge devices to be autonomous. On the other hand, cloud-based applications are based on the centralized computing paradigm, where one central instance is in charge, with all other devices being dependent upon this central instance. This significantly affects the response time of the application, the availability of the application, and last not least the bandwidth needed for the application, which also translates into cloud costs.

        database performance business value

        Location matters: while a fast database gives you fast response times, if the database sits in the cloud and needs to be called from edge devices, you need to factor in  the duration it takes to request the data and get a response. And with any networking you cannot guarantee response times or ensure it is always available. While this is not the database performance itself, it highly affects application performance. 

        The impact of database performance on your business

        Database performance matters. Whether your solution needs the speed, because of the necessity to re-act in (near) realtime, or to keep your users (customers, employees, …) happy, productive, buying, or just to save costs for stronger edge hardware and the cloud. “Considering that even a single moment of latency or downtime can cost companies thousands of dollars, the speed advantages of edge computing cannot be overlooked.” [4]

        The necessity of database speed for mission-critical, security relevant, (near) real-time functionalities 

        If you need near real time functionalities, every piece in the tech stack matters, but the database has a particularly strong impact on the response rates of your application. Consider autonomous driving, healthcare and security applications, or IIoT solutions for production lines: Any application supporting such a scenario needs to respond reliably with speed. “This is not the same as a lag in loading your favorite cat pictures. A lag in a moving vehicle scenario is a matter of life and death.” [5]

        Accordingly, if end devices like cars, smartphones, health trackers, machines on the factory floor are involved, a purely cloud-based application is not an option. Data needs to be stored and used on the devices directly. Thus, an edge database is necessary. Ideally, an extremely fast one.

        Examples of use cases with a need for database speed

        Anything running on a car really needs to be highly ressource efficient and fast. Ressources on the car are highly limited and database speed translates into ressource-efficency. Autonomous driving capabilities are a special case requiring significant compute power to run the algorithms in real-time within the control unit of the car. As can be easily deducted from first-hand driving experience, during this kind of constant information processing and instantaneous decision making, every fraction of a millisecond counts. Information processing speed and reliability (guaranteed QoS parameters)  is of the essence for driver assistance and autonomous driving.

        Moving to a purely monetary example, let’s consider roadside tolling. In roadside tolling, the edge devices on the side of the road need to process the information from a moving vehicle in order to identify the car, bill according to usage, and detect violators. Ideally, it even informs the car owner of the result. As the car is constantly moving and can be going fast, all of this needs to happen in a very short amount of time. A super fast database lookup on the edge is key to avoid money loss and deliver good customer service. 

        For a final example,  let us look at an Industrial IoT (IIoT) application: Additive manufacturing. 3D printers use layering techniques with a variety of materials to quickly create custom designed parts. During the layering process, the controller needs to quickly and efficiently incorporate small changes in the environment (e.g. an increase in temperature) to ensure quality and accuracy of the part. Faster and more precise manufacturing is currently limited by the I/O throughput. With a fast database, the I/O throughput is higher, allowing for more complex and finite production.

        In short: A superfast database is not a nice to-have, it is a must-have. The database speed a database brings out-of-the-box is critical for such an application.

         

        The impact of database speed on Sales, Conversions, Retention (or at least, nerves) 

        There is a reason Google forces companies to optimize their websites and mobile applications for performance: There is a wealth of research and evidence that suggests response rates of websites and mobile applications impact user behavior significantly.[6] Even more, there are several studies providing evidence that response rates impact actual buying behavior. [7] While there is less research on other digital applications like e.g. a desktop app or workplace software, some studies have shown that needing to work with slow applications decreases employee satisfaction and productivity. [8]

        The impact of database speed on battery, CPU, hardware and related resources

        Another hidden requirement typically is resource-efficiency with regards to CPU, RAM, Disc space and battery / electricity. For any application running in the cloud, these requirements are balanced in the backend as the cloud scales vertically. It “only” adds to cloud costs (and is a waste of energy – not to mention all the infrastructure / hardware enabling that waste). 

        On the edge, you typically work with restricted devices, meaning you can only use the devices’ resources, which can be pretty limited. Therefore, inefficient applications can push a device to its limits, leading to e.g. slow response rates, crashes, and battery drain. Security is a very necessary cross-the-stack functionality that often impacts performance. While data that stays on the edge is challenging to hack, edge data needs to be protected just like data in the cloud.

        How database performance impacts the business value of your IoT application

        All applications on one device share the available hardware capabilities; resource allocation is managed by the operating system. Accordingly, the more resources an application or the database uses, the less resources are available for other uses. The faster a database executes its operations, the less CPU it uses, the less battery / electricity, and typically also memory. In practice that means there are more resources available on the device to run e.g. Edge AI or Edge ML applications.

        database

        From a business value perspective that means:

        • You can save on hardware costs (CPU, RAM, Disc, Memory, …): either do more on existing / chosen hardware, upgrade hardware later or choose smaller and thus less expensive hardware. 
        • You can save on energy and cloud costs: The more efficient, the less electricity, the less cloud costs. This can add up tremendously as projects scale.
        • You can add more features, deliver more functionalities, make your application more secure within a given environment. 
        • You can deliver a smooth, fast user experience, enabling applications that deliver in near-realtime. 

          In sum, it clearly impacts the cost structure and value you can deliver.
        database performance business value

        Database performance impacts business value, directly and indirectly

        As projects scale in size and scope, hidden requirements like database performance often become clear. At scale, small issues like delayed data, or data volumes, become big headaches. Ideally, these sorts of requirements would be at the heart of the design stage of any project – and budgeted for at the beginning. The choice of database clearly has a huge impact on the business success of IoT applications.

        [1] See https://www.weforum.org/agenda/2018/01/effect-technology-sustainability-sdgs-internet-things-iot/ for IoT impact on Sustainable Development Goals (SDG)
        [2] https://restart-project.eu/much-know-industry-4-0/
        https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=13&cad=rja&uact=8&ved=2ahUKEwiGidSA6trnAhVQY8AKHTpSDUIQFjAMegQICBAB&url=https%3A%2F%2Fwww.mdpi.com%2F2076-3387%2F9%2F3%2F71%2Fpdf&usg=AOvVaw3cx44OOMfNzJ_BJlCG8Gfj
        [3] Database Administration: The Complete Guide to Practices and Procedures By Craig Mullins 2002
        [4] https://www.vxchnge.com/blog/the-5-best-benefits-of-edge-computing
        [5] https://www.zdnet.com/article/why-autonomous-vehicles-will-rely-on-edge-computing-and-not-the-cloud/
        [6] https://developers.google.com/web/fundamentals/performance/why-performance-matters https://www.thinkwithgoogle.com/intl/en-154/insights-inspiration/research-data/need-mobile-speed-how-mobile-latency-impacts-publisher-revenue/
        https://www.machmetrics.com/speed-blog/how-does-page-load-time-affect-your-site-revenue
        https://datadome.co/bot-management-protection/website-performance-how-to-increase-your-business-by-blocking-bots/
        [7] https://developers.google.com/web/fundamentals/performance/why-performance-matters
        https://www.thinkwithgoogle.com/intl/en-154/insights-inspiration/research-data/need-mobile-speed-how-mobile-latency-impacts-publisher-revenue/
        https://www.machmetrics.com/speed-blog/how-does-page-load-time-affect-your-site-revenue
        https://datadome.co/bot-management-protection/website-performance-how-to-increase-your-business-by-blocking-bots/
        [8] https://drum.lib.umd.edu/handle/1903/1233
        https://www.tandfonline.com/doi/abs/10.1080/01449290500196963