Gufo Blob Backends¶
Gufo Blob provides several built-in backends, available in both synchronous and asynchronous modes. All synchronous backends are thread-safe, and asynchronous backends are safe for concurrent async access.
Built-in backends¶
Backends out of the box:
| Backend | Storage layer |
|---|---|
memory |
In-process memory |
file |
Local filesystem |
sqlite |
SQLite database |
Data durability¶
Backends may provide different levels of data durability (persistence across failures). Ordered from weakest to strongest guarantees:
- Process lifetime - data available in process lifetime.
- Process crash safety — data survives process restart (in-memory persistence beyond runtime is not guaranteed otherwise)
- Host crash safety — data survives operating system or host restart
- Distributed durability (replication) — data is replicated across multiple storage nodes and survives node failure
Data sharing¶
Backends may also differ in the scope of data visibility and sharing. Ordered from narrowest to widest:
- Process-local — data is visible only within a single process.
- Host-shared — data is accessible across multiple processes on the same machine.
- Network-distributed — data is accessible across multiple hosts over a network.
Backend comparison¶
| Backend | Data durability |
Data sharing |
|---|---|---|
memory |
Process lifetime | Process-local |
file |
Host crash safety | Host-shared |
sqlite |
Host-crash safety 1 | Host-shared |
Further reading¶
See appropriate backend documentation for implementation details.
-
Distributed file systems can increase durability. ↩