108 Commits (3e4bc1e6fc634c321a6a1b3dd5ad600db22a158d)

Author SHA1 Message Date
Sayan Nandan a1ea9c3111 Upgrade deps and document parser 3 years ago
Sayan 111d50b75e
Release v0.7.0 (#210)
* Simplify query gen in sky-bench and bump versions

* Upgrade to the latest driver version
3 years ago
Sayan Nandan 4ef28ea7e8 Upgrade deps 3 years ago
Sayan Nandan 42f3251d2c Upgrade deps
Also added docs for Skymap
3 years ago
Sayan Nandan da8462eda3 Switch hasher implementation 3 years ago
Sayan Nandan 9da0cdafee Upgrade interfaces to use Skymap 3 years ago
Sayan Nandan db60133dc3 Add basic Skymap methods 3 years ago
Sayan Nandan 891f9a2e06 Remove unused deps
Also simplified new instance check
3 years ago
Sayan b6fcb4c035
Add `drop keyspace <name> force` (#192)
* Add forceful dropping of keyspaces

This commit also improves the reliability of `drop keyspace` in general

* Add changelog

* Add tests for `force_drop_keyspace`

* Upgrade deps
3 years ago
Sayan Nandan 32fcbc2075 Add changelog and bump up version 3 years ago
Sayan Nandan c1064a7cd1 Implement and upgrade to `Corestore` 3 years ago
Sayan Nandan c20302ef75 Add storage module for custom encoding/decoding 3 years ago
Sayan Nandan 17d1c472b6 Use proc macro for uninit array magic
The proc macro does some magic to give us a const array with the full
size without having to manually write it. Magic!
3 years ago
Sayan Nandan bdc4b3483f Add basic `KVEngine` definition 3 years ago
Sayan d43e6f41da
Use `QuickLock` instead of mutex (#185)
* Use our own lock instead of parking_lot::Mutex

* Account for spurious failures in cmpxchg weak

* Ignore send error because parent may have panicked

The parent thread may have already panicked, dropping the rx.
3 years ago
Sayan bae2b8354c
Release v0.6.3 (#184)
* Bump up version to 0.6.3

* Update changelog entry
3 years ago
Sayan 2d7b9d7667
Add automated tests for TLS (#183)
* Auto start with TLS

* Add automated tests for SSL

* Add cert generation script

* Use script to generate SSL cert
3 years ago
Sayan e30d51a599
Release v0.6.2 (#180)
* Bump up version and add changelog entry

* Use separate cache object for release workflows
3 years ago
Sayan 66e5d41302
Simplify overall locks (#176)
* Remove the need for TableLockStateGuard

The htable impl uses locks under the hood making external locks
redundant.

* Use atomics instead of rwlock for poisoned state

* Simplify snapshot locking
3 years ago
Sayan Nandan 2a2addfa6d Upgrade deps and add changelog entries 3 years ago
Sayan Nandan a87478dcba Optimize dependencies 3 years ago
Sayan 8df9901740
Upgrade deps and actiondoc (#165) 3 years ago
Sayan e553c5172b
Release v0.6.1 (#164)
* Explicitly fsync and relax CPU on snap busy-loop

This commit also switches to using global `VERSION` and `URL` statics
than defining it per-crate.

* Add changelog entry and bump up version

* Optimize `dbtest` macro and rm redundant allocs

* Upgrade deps
3 years ago
Sayan Nandan 72d871ed3f Upgrade deps 3 years ago
Sayan Nandan 260b336bf6 Add tests for races and synchronized unlocks 3 years ago
Sayan a1320da52b
Migrate to using `Coremap` (#156)
* Upgrade all interfaces to use new HTable

* Document `HTable`
3 years ago
Sayan Nandan a7f5d84ef4 Bump dependencies
Also use `tokio::join` in-place of `futures::join`
3 years ago
Sayan Nandan 3616793554 Update versioning and support information [skip ci] 3 years ago
Sayan Nandan f55fa85174 Upgrade server to use client driver's `RespCode`s 3 years ago
Sayan Nandan 80fc9e5e9c Upgrade all tests to use the driver 3 years ago
Sayan Nandan d18631680c Bump up version and add changelog entry 3 years ago
Sayan Nandan 50273f324a Upgrade dependencies 3 years ago
Sayan Nandan 07dd884f3c Upgrade deps and remove unused regex in cli
Closes #128, closes #129 and closes #132
3 years ago
Sayan Nandan ba478b9f5a Add a generic implementation for a connection
This commit defines two traits: `Con` and `ConOps`. Implementors of
`ConOps` get a free implementation for `Con`. `Con` is the ultimate
object that can be used in place of the current SSL/non-SSL connection
objects. If you look at the implementations of the current connection
objects, they have a lot of repetition as they do almost the same thing
except for the fact that they have a different underlying stream.
This is exactly what we're trying to eliminate. We will also define a
generic connection handler object to reduce redundancy.
3 years ago
Sayan Nandan 6e680b33e5 Add native file locks for unix and windows systems
This commit implements file locks for unix-based systems and windows
systems. This is done by using platform-specific `__sys` modules for
locking, trying to lock and unlocking files.

A build script was added for unix-systems that make use of the
flock-posix.c file
3 years ago
Sayan Nandan aca9888109 Remove fscposix and begin adding native impls
This commit removes the fscposix.c file and begins implementing native
file locking mechanisms for each platform (supported platforms)

BSD-style `flock`s were added
3 years ago
Sayan Nandan a9710587bb Add advisory locking for POSIX systems
This commit adds a basic implementation of POSIX advisory record locking
which sets a lock on the `data.bin` file when the database server starts
and releases the lock when it terminates. This is just done for
compliance to let other processes know that we don't want them to use
the file.

However, the result depends entirely on the process that wants to do
'something' with the file. It is the responsibility of the process to
ensure that it respects the file lock.

Also, exclusive locks aren't perfect on Linux, so we can't rely on them.
See discussion #123 for more information.
3 years ago
Sayan Nandan 1be348f5a2 Upgrade deps
Closes #117, closes #118 and closes #121
3 years ago
Sayan Nandan e10cc1411f
Upgrade deps and fix actiondoc script
Closes #111 and closes #112

Signed-off-by: Sayan Nandan <nandansayan@outlook.com>
4 years ago
Sayan Nandan 9df39187d1
Upgrade deps, add changelog entry and bump version
This closes #107, closes #108 and closes #109.

The configuration template was updated to include TLS/SSL and the
corresponding tests were also updated.

It also renames `sdb` to `skyd` for streamlining binary names.

Signed-off-by: Sayan Nandan <nandansayan@outlook.com>
4 years ago
Sayan Nandan 151d2dd454
Upgrade deps
Closes #96, Closes #97, Closes #98, Closes #101, Closes #102
and Closes #103.

Signed-off-by: Sayan Nandan <nandansayan@outlook.com>
4 years ago
Sayan Nandan 6a10f927c8
Upgrade deps
Closes #88, closes #89

Signed-off-by: Sayan Nandan <nandansayan@outlook.com>
4 years ago
Sayan Nandan a3398f1d07
Rebrand from TerrabaseDB to Skybase (#90)
Signed-off-by: Sayan Nandan <nandansayan@outlook.com>
4 years ago
Sayan Nandan 2c895cf143
Upgrade dependencies
This closes #86 and also closes #87.

Signed-off-by: Sayan Nandan <nandansayan@outlook.com>
4 years ago
Sayan Nandan 8736db1034
Code cleanup and added auto-sync with repo mirror
Dependencies were upgraded

A mirror sync badge was added. Also README was revised and workflow badge was fixed.

Signed-off-by: Sayan Nandan nandansayan@outlook.com
4 years ago
Sayan Nandan 8a54e8f85d
Remove `openssl-sys` as a dependency
`openssl-sys` isn't required anymore; it was added in the `ssl` branch
during the development phase.

Signed-off-by: Sayan Nandan <nandansayan@outlook.com>
4 years ago
Sayan Nandan 3a6b9b282f
Merge branch 'ssl' into next
Signed-off-by: Sayan Nandan <nandansayan@outlook.com>
4 years ago
dependabot[bot] 4db769c2d8 Bump bytes from 1.0.0 to 1.0.1
Bumps [bytes](https://github.com/tokio-rs/bytes) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/tokio-rs/bytes/releases)
- [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md)
- [Commits](https://github.com/tokio-rs/bytes/compare/v1.0.0...v1.0.1)

Signed-off-by: dependabot[bot] <support@github.com>
4 years ago
dependabot[bot] 4f039f45f5 Bump tokio from 1.0.1 to 1.0.2
Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/tokio-rs/tokio/releases)
- [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.0.1...tokio-1.0.2)

Signed-off-by: dependabot[bot] <support@github.com>
4 years ago
Sayan Nandan e92a6eb8c1
Use `read_again()` to read from the `SslStream`
Signed-off-by: Sayan Nandan <nandansayan@outlook.com>
4 years ago