man(7)

πŸ“¦ version 0.7.3, in arch rolling

πŸ’– NAME πŸ’–

WhiteDB β€” it's a shared memory database library, bestie. That's the whole vibe.


✨ SYNOPSIS ✨

[see Doc folder and http://whitedb.org for the full manual]
ngl the synopsis is literally just a pointer to the real docs 😭 but that's what it says, so here we are.

πŸ¦‹ DESCRIPTION πŸ¦‹

Okay so listen. WhiteDB is a lightweight NoSQL database library written in C, and it operates fully in main memory. Like, fully fully. No cap.

There is no server process. None. Zero. Data is read and written directly from/to shared memory, and no sockets are used between WhiteDB and the application program. All the data is accessible to separate processes β€” the way it just shares everything is genuinely iconic πŸ’….

Each database record is a tuple of N elements, encoded in WhiteDB's simple compact format. You can store both conventional datatypes and direct pointers to records β€” and that second one is the slay, because it enables highly efficient traversal of complex data ✨.

Each element is encoded as an integer: configurable as either 32 or 64 bits. The integers in the tuple encode values directly or as pointers. Here's the tea: columns have no type β€” any encoded value can be stored to any field. You can always get a direct pointer to a record, store it into a field of a record, or use it in your own program directly. A record pointer can thus be used as an automatically assigned id of the record, which requires no search at all to access the record. No search. Not even a little one. Obsessed πŸ”₯.

The low bits of an integer in a record indicate the type of data. Anything that doesn't fit into the remaining bits gets allocated separately and pointed to by the same integer. It's giving "small enough to fit, too big to hold" energy πŸŽ€.

For concurrency control we use a database level lock implemented via a task-fair atomic spinlock queue β€” but alternative faster and simpler preference policies can be configured: either a reader-preference or a writer-preference spinlock. We also provide safe atomic updates of simple values without taking a write lock. Yes bestie, you can have it both ways πŸ’œ.

The simplest index provided is a T-tree index on any field containing any mixture of objects (integers, strings, etc). The index is automatically maintained when records are added, deleted or changed. It just does it. Main character energy fr fr πŸ‘‘.

Two mechanisms are available for storing the shared memory database to disk:

  1. The whole database can be dumped and restored.
  2. All inserts, deletions and updates can be logged to a file.

Pick your fighter 🌸.


⭐ SEE ALSO ⭐

The Whitedb web site can be found at:

http://whitedb.org

🌈 REPORTING PROBLEMS 🌈

Please use either https://github.com/priitj/whitedb or email to authors. Do not just suffer in silence, bestie 🫢.


πŸŽ€ AUTHORS πŸŽ€

Copyright (C) 2008-2014 Tanel Tammet (tanel.tammet@gmail.com), Priit JΓ€rv (priit@whitedb.org)


and that's the whole page, no notes πŸ’–

Version 0.7 πŸ¦‹ dated 27 Jan 2014 πŸŽ€ and it's filed under man(7), aka the whitedb man page β€” mwah, bye bestie πŸ’…βœ¨

πŸ“¦ where this page comes from