Questions tagged [foundationdb]

FoundationDB is a new-generation database built to support a diverse set of applications and data models while delivering exceptional performance, data consistency, and operational resilience.

FoundationDB is a new-generation database built to support a diverse set of applications and data models while delivering exceptional performance, data consistency, and operational resilience.

FoundationDB's core is a simple key-value API with useful properties and strong guarantees. Features in the core are deliberately kept to a minimum. We choose to expose additional data models and features via "layers".

Scalable

FoundationDB adapts to efficiently support applications with diverse performance requirements. By using a shared-nothing distributed architecture, FoundationDB scales out by adding more machines to a cluster rather than just scaling up by increasing the capacity of a single machine. Best of all, the hard work of managing data redundancy, partitioning, caching, etc., is all handled automatically.

Read more about our scalability→

ACID transactions

All reads and writes in FoundationDB are accomplished using transactions. These transactions are fully ACID (Atomic, Consistent, Isolated, and Durable) and span multiple machines with high performance. FoundationDB's isolation is the highest available—transactions appear to occur sequentially. FoundationDB's durability is the strongest—all transactions are redundantly stored to disk before they are considered committed.

Fault tolerance

A system designed to be distributed across many machines must be highly fault tolerant because the likelihood of hardware and network failures increases with the number of machines involved. FoundationDB has been designed and relentlessly tested to provide exceptionally high levels of fault tolerance. We've gone much further than designing for "no single point of failure". FoundationDB has also been designed and tested to guarantee that all ACID properties are preserved, even under catastrophic failures.

Read more about our fault tolerance→

Replicated storage

FoundationDB stores each piece of data on multiple servers. If a server containing one of the copies is lost, FoundationDB will automatically heal, finding a new location for the lost copy. For read operations, clients communicate directly to the servers with the replicas, requesting a specific version to ensure a consistent view of the data.

Ordered key-value API

Simple can be powerful. FoundationDB uses an ordered key-value store data model. Each "row" within the database consists of a key that is used to reference the row and a value which stores data associated with the key. No specific format for the keys or values is required; they are simply binary data. Because keys are kept in lexicographical (sorted) order, ranges of key-value pairs can be read efficiently.

OLTP and OLAP

FoundationDB is optimized for online transaction processing (OLTP) workloads consisting of many small reads and writes. However, because it is an ordered key-value store, FoundationDB can use range reads to efficiently scan large swaths of data. Thus, FoundationDB can be effectively used for online analytical processing (OLAP) workloads as well.

Visit http://www.foundationdb.com/ for more details.

38 questions
35
votes
1 answer

What factors to consider when choosing a Multi-model DBMS? (OrientDB vs ArangoDB)

I am looking to dip my hands into the world of Multi-Model DBMS, I have no particular use cases, just want to start learning. I find that there are two prominent ones - OrientDB vs ArangoDB, but was unable to find any meaningful comparison,…
dayuloli
  • 16,205
  • 16
  • 71
  • 126
7
votes
3 answers

How to clean FoundationDB?

Is there any fast way to remove all data from the local database? Like SQL 'drop database'? I was looking through the documentation but haven't found anythig interesting yet.
irytek102
  • 99
  • 1
  • 8
5
votes
2 answers

VSCode Debugger not working under Rosetta

when trying to use the VSCode Debugger, I get an error message: "Failed to launch: could not launch process: can not run under Rosetta, check that the installed build of Go is right for your CPU architecture" some background context as I read…
3
votes
2 answers

Unable to compile simple go program using foundationdb

Trying to cross compile on macos arm for linux. My sample project looks like this: main.go: package main import( "github.com/apple/foundationdb/bindings/go/src/fdb" ) func main() { fdb.APIVersion(630) …
gerasalus
  • 7,538
  • 6
  • 44
  • 66
3
votes
1 answer

How to start JanusGraph Server with FoundationDB on a different host or container?

I am trying to create a docker-compose project with - JanusGraph server, ElasticSearch server and FoundationDB server. I am using following docker images: for ElasticSearch - docker.elastic.co/elasticsearch/elasticsearch:6.3.2 & for FoundationDB -…
3
votes
1 answer

How exactly foundationdb beats CAP theorem?

Are foundationdb claims on consistency valid? FoundationDB provides the strongest possible consistency model, sequential consistency (closely related to serializability from the database literature), providing the greatest possible ease of…
Fakrudeen
  • 5,778
  • 7
  • 44
  • 70
3
votes
1 answer

How does FoundationDB handle conflicting transactions?

I'm curious how does FoundationDB handle a situation in which there are multiple transactions trying to update the same key? If one client executes this transaction: db.run((Transaction tr) -> { tr.set(Tuple.from("key").pack(),…
user9829695
3
votes
1 answer

Can I get a timestamp from a FoundationDB versionstamp?

FoundationDB has versionstamps, ten-byte, unique, monotonically (but not sequentially) increasing values for each committed transaction. Can I get a timestamp (when the transaction was committed) from that?
Thilo
  • 257,207
  • 101
  • 511
  • 656
3
votes
1 answer

FoundationDB SQL Parser to get WHERE clause

I'm using the foundationDB SQL parser (https://github.com/FoundationDB/sql-parser) to parse a query inside Java, but I'm not very familiar with the visitor design pattern, that is used by the parser to consume a query. I would like to send a query…
3
votes
1 answer

Are foundationdb layers interoperable?

I just started looking at foundation db and I have some trouble understanding how the layers work. Are foundationdb layers interoperable? If I add data using sql, can i then query that data using the graph layer? How does that conversion/mapping…
oskbor
  • 1,592
  • 18
  • 35
2
votes
1 answer

FoundationDB as storage backend for JanusGraph: still feasible and advisable?

I'm interested to know the state of the JanusGraph-FoundationDB Storage Adapter: Four years ago it was announced: https://www.youtube.com/watch?v=rQM_ZPZy8Ck&list=PLU8TPe7k8z9ew5W6YpACnGvjBDYaJVORZ&index=1 According to the README:…
Raphael10
  • 2,508
  • 7
  • 22
  • 50
2
votes
1 answer

foundationdb running docker image macos database unavailable

I am trying to run foundation db using a docker image in Macos as below. docker run --init --rm --name=fdb-0 foundationdb/foundationdb:6.2.22 Starting FDB server on 172.17.0.2:4500 This seems to start. But then I connect to fdb cli after logging…
2
votes
0 answers

JVM crashed in foundationdb SQLGrammar

The JVM crash log file: # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (sharedRuntime.cpp:834), pid=4784, tid=0x00007f50656d6700 # fatal error: exception happened outside interpreter, nmethods and vtable…
bayinamy
  • 487
  • 4
  • 14
2
votes
2 answers

What is the Redis equivalent of TransactionDB's getRange?

The transactionDB python api says that, Database.get_range(begin, end[, limit, reverse, streaming_mode]) Returns all keys k such that begin <= k < end and their associated values as a list of KeyValue objects. Note the exclusion of end from the…
PDK
  • 138
  • 5
2
votes
1 answer

What is a storage substrate?

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…
MainstreamDeveloper00
  • 8,436
  • 15
  • 56
  • 102
1
2 3