2

When reading articles about NoSQL databases e.g. FoundationDB I very often encounter a notion of "storage substrate". I tried to find some formal or exact definition of what is a storage substrate in the context of databases but didn't find anything, just mentions not a definition.

Can someone clarify for me what is a storage substrate? Is it a synonym of database or some part of it? Just a small definition or link will be helpful. Thanks

Community
  • 1
  • 1
MainstreamDeveloper00
  • 8,436
  • 15
  • 56
  • 102

1 Answers1

5

FoundationDB uses the term to indicate the 'bottom' of a database technology stack. It's used when you want to think about how how data is accessed separately from how it is stored. For example, with FoundationDB, the Key-Value core is the storage substrate. Various APIs, or layers, can be added on top of that substrate and provide different ways of accessing your data.

Here's an example. An application uses the SQL query language to access FoundationDB's SQL Layer, which then converts those queries into a Key-Value API. Those Key-Value commands are sent to the storage substrate, aka FoundationDB Cluster:

enter image description here

When we start thinking of storage substrates as different from how we access our data, it opens an interesting possibility. What if you could have one storage substrate, but access it with a variety of different APIs, depending on whichever one was most appropriate for your application? I think this can be very powerful from an operations point of view, as we no longer have to figure out how to install, scale, and maintain multiple databases.

Full disclosure: I'm an engineer at FoundationDB

jrullmann
  • 2,912
  • 1
  • 25
  • 27
  • Thanks a lot. So if I understood correctly - storage substrate is a part of the database, which is only manages data storing functions: transactions, key-value engine and indexing.I'm right? – MainstreamDeveloper00 Jul 03 '14 at 20:13
  • That's right. Other things - such as bindings and layers - are not considered part of the storage substrate. – jrullmann Jul 04 '14 at 00:48