Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

difference between in-memory and embedded databses

I want to know if my understanding is correct :

embedded : databases which are up if my application is up and are down if my application is down. I am not referring the databases used in embedded space.

in-memory : databases could be on any server; irrespective of where my application is running. Just that, these uses main memory.

like image 708
Rahul Avatar asked Feb 14 '18 08:02

Rahul


People also ask

What is difference between memory and database?

An in-memory database keeps all data in the main memory or RAM of a computer. A traditional database retrieves data from disk drives. In-memory databases are faster than traditional databases because they require fewer CPU instructions.

What is meant by embedded 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.

What is in memory in database?

In-memory databases are purpose-built databases that rely primarily on memory for data storage, in contrast to databases that store data on disk or SSDs. In-memory data stores are designed to enable minimal response times by eliminating the need to access disks.


1 Answers

Full disclosure: I represent the vendor of eXtremeDB.

Embedded databases have been around since at least the early 80's. db_VISTA, c-tree, btrieve, Empress are some of the most common from back in the day.

'Embedded database' has nothing to do with embedded systems. It simply means a database management system that is delivered to the programmer as a set of object code libraries that are to be linked with the application object code into an executable program image. In other words, the database functionality becomes part of the application itself, in the same address space. Embedded databases were used primarily for line-of-business applications in the 80s and 90s. It wasn't until the late 90s and early 2000s that embedded systems began to migrate to 32-bit architectures in sufficient numbers that database systems could be considered to be commercially viable. eXtremeDB was launched in 2001 as the first in-memory, embedded database system written explicitly for embedded systems. (8-bit and 16-bit systems do not have enough addressable memory to support a DBMS.)

An embedded database system can be either an in-memory database or persistent database (i.e. disk-based database).

An in-memory database system can be an embedded database system, or it can be a client/server database system.

A client/server database system can be an in-memory database system, or it can be a persistent database system.

As you can see, all the lines cross. You can have

  • client/server in-memory
  • client/server persistent
  • embedded in-memory
  • embedded persistent

And, you have have hybrids of all the above.

like image 107
Steven Graves Avatar answered Sep 21 '22 17:09

Steven Graves