5ecc6f55f4
We previously made a big mistake: we tried to set poisoned to true, an operation that requires a write lock, without dropping the read lock. This commit ensures that we first drop `rlock` before doing anything else. At the same time, if BGSAVE has failed, we'll just shut down the service. The error descriptions were improved for a failed `get_saved` operation. And finally, a couple of variables in `MKSNAP` were renamed to make them sound more sensible. Signed-off-by: Sayan Nandan <nandansayan@outlook.com> |
4 years ago | |
---|---|---|
.github | 4 years ago | |
ci | 4 years ago | |
cli | 4 years ago | |
examples/config-files | 4 years ago | |
libtdb | 4 years ago | |
server | 4 years ago | |
tdb-bench | 4 years ago | |
tdb-macros | 4 years ago | |
.gitignore | 4 years ago | |
AUTHORS.md | 4 years ago | |
CHANGELOG.md | 4 years ago | |
CLA.md | 4 years ago | |
CODE_OF_CONDUCT.md | 4 years ago | |
CONTRIBUTING.md | 4 years ago | |
CONTRIBUTORS.md | 4 years ago | |
Cargo.lock | 4 years ago | |
Cargo.toml | 4 years ago | |
Dockerfile | 4 years ago | |
LICENSE | 4 years ago | |
README.md | 4 years ago | |
actions.jsonc | 4 years ago | |
pushrelease.sh | 4 years ago | |
release.sh | 4 years ago |
README.md
What is TerrabaseDB?
TerrabaseDB (or TDB for short) is an effort to provide the best of key/value stores, document stores and columnar databases, that is, simplicity, flexibility and queryability at scale. TDB is curently in an alpha stage, but can be used as a performant and persistent key-value store.
Getting started 🚀
- Download a bundle for your platform from here ⬇️
- Unzip the bundle
- Make the files executable (run
chmod +x tdb tsh
on *nix systems) - First run
tdb
to start the database server and then runtsh
to start the interactive shell - Run commands like:
SET foo bar
,GET bar
,UPDATE cat mitten
orDEL proprietary
🤪 ontsh
!
Features
- Insanely fast: Scale to millions of queries per second per node
- Key/value store:
GET
,SET
,UPDATE
and all that stuff - Snapshots: Automated (and tunable) snapshots for stress-free backups
- Multithreaded: Designed to exploit all CPU cores
- Resource friendly: The database server doesn't need more than 1MB to run
- Convenient: Without the setup hassle and system-specific dependencies
(... and more on the way)
Clients 🔌
Until we release an official driver, you'll have to write your own clients — all you need to do is implement the simple and performant Terrapipe protocol spec.
Community 👐
A project which is powered by the community believes in the power of community! If you get stuck anywhere - here are your options!
<html> </html>Platforms 💻
Versioning
This project strictly follows semver, however, since this project is currently in the development phase (0.x.y), the API may change unpredictably
Contributing
Yes - we need you! Be it a typo, a bizarre idea, a dirty bug🐞 or an amazing patch - you're welcome to contribute to TDB! Beginner friendly issues are marked with the label. Read the guide here.
Contributors
You can see a full list of contributors here
License
This project is licensed under the AGPL-3.0 License.