Skytable is a modern scalable NoSQL database with BlueQL, designed for performance, scalability and flexibility. Skytable gives you spaces, models, data types, complex collections and more to build powerful experiences
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Sayan Nandan 5ecc6f55f4
Drop the read lock to avoid perpetual waits
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 Skip builds on pushes to tags 4 years ago
ci Don't checkout `next` while setting variables 4 years ago
cli Don't use an explicit `enabled` flag in `snapshot` 4 years ago
examples/config-files Don't use an explicit `enabled` flag in `snapshot` 4 years ago
libtdb Don't use an explicit `enabled` flag in `snapshot` 4 years ago
server Drop the read lock to avoid perpetual waits 4 years ago
tdb-bench Provide default params for queries, cons and size 4 years ago
tdb-macros Revise random port allocation logic 4 years ago
.gitignore Re-implement snapshots and add tests 4 years ago
AUTHORS.md Updated project metadata 4 years ago
CHANGELOG.md Rollout v0.4.5 4 years ago
CLA.md Improve community documentation 4 years ago
CODE_OF_CONDUCT.md Improve community documentation 4 years ago
CONTRIBUTING.md Make MKSNAP return code 3 for `howmany != 0` 4 years ago
CONTRIBUTORS.md Improve docs 4 years ago
Cargo.lock Enable JSON output for `tdb-bench` 4 years ago
Cargo.toml Remove `testsuite` crate and decompose a few tests 4 years ago
Dockerfile Fix issues with the Dockerfile 4 years ago
LICENSE Formal terrapipe query parsing 4 years ago
README.md Fix issues with the Dockerfile 4 years ago
actions.jsonc Use refs instead of cloning for pre-compiled resps 4 years ago
pushrelease.sh Improve workflow and docs 4 years ago
release.sh Add diskstore module 4 years ago

README.md

<html>

TerrabaseDB

The next-generation NoSQL database

GitHub Workflow Status Status: Alpha Development GitHub release (latest SemVer including pre-releases) GitHub commit activity

Docker Pulls Docs Contribute Now

</html>

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 🚀

  1. Download a bundle for your platform from here ⬇️
  2. Unzip the bundle
  3. Make the files executable (run chmod +x tdb tsh on *nix systems)
  4. First run tdb to start the database server and then run tsh to start the interactive shell
  5. Run commands like: SET foo bar , GET bar , UPDATE cat mitten or DEL proprietary 🤪 on tsh !

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 💻

Linux supported macOS supported Windows supported

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

Contribute Now

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.