104 Commits (4fcb0ee3c9653d0df57433a3dbd1af0afd01f76a)

Author SHA1 Message Date
Sayan 4fcb0ee3c9
net: Fix RST and thread crash due to multiple HS errors (#341) 5 months ago
Sayan Nandan 4982a537de
storage: online rollback for disk failures 6 months ago
Sayan Nandan 2dd6537af0
net: Add illegal packet escape for pipeline
Additional changes:
- Added changelog entry
6 months ago
Sayan Nandan 4c11ac7b66
DCL: further test for empty authentication data 6 months ago
Sayan Nandan aa7051b6e1
storage: Fix 32-bit checksums (test) and update backup dir
Also added changelog entry
6 months ago
Sayan Nandan 10e1f50d78
Fix system health reporting 7 months ago
Sayan Nandan a4e39a83f4
Upgrade deps and bump version 7 months ago
Sayan Nandan bbcb7acb95
Add sysctl alter user
We will now also only output server logs to the terminal in CI, iff
there is an error. Otherwise, it plagues output.
10 months ago
Sayan Nandan 0ade763b78
Clarify errors, fix responses 10 months ago
Sayan Nandan 8d6a047f02
Implement all inspect queries
Also cleaned up space handling
10 months ago
Sayan Nandan 0fdd615665
Simplify entity handling, impl describe and use 10 months ago
Sayan Nandan 6ea9758714
Ensure queries are evaluated completely 10 months ago
Sayan Nandan 4ba7b97ac7
Fix windows builds
Also added changelog entries
10 months ago
Sayan Nandan a4daa47c65
Merge branch 'newbench' into next 2 years ago
Sayan 2180818dca
Fix erroneous removal of auth table during tree cleanup (#277)
* Fix erroneous removal of auth table during tree cleanup

When it comes to the handling of system tables, the current storage engine has
a little "funk." It is because the limited flexibility of the format prevents
us from directly storing system tables which have a different structure than
ordinary user created tables; this is why when the cleanup is run, previously,
the dummy keyspace created for the PRELOAD was scanned and since it has nothing
any "alien" file in the `ks/system` directory was purged. This commit fixes
that and ensures that we do not clean up the system directory.

This is also another reason why a new storage engine coupled with a new memory
engine are being developed. These shortcomings will be addressed with the new
engines.

* Add test case for issue #276

Add Changelog entry
2 years ago
Sayan Nandan 0f11dcfb88
Re-implement benchmark tool
This commit re-implements the benchmark tool, doing a lot of refactoring and
speeding up things, while reducing memory usage. Some notes:

1. The `testkey` subcommand was removed. This was needed because it makes no
sense to have it with data types like lists. I'll leave support for creating
test data for another PR (if at all needed)

2. The bench tool now uses lesser memory "in a go." Previously, all the get,
set and update packets were generated in one single step. This is no longer
done. Instead, we generate the packets for one type, run its corresponding
tests and completely deallocate and cleanup once we're done with that test.
This helps alleviate memory usage.

3. Instead of going in the sequence (GET, SET, UPDATE, ...) and running that
set some n times, we now run each test n times, and repeat that for the other
tests. The advantage of this is code clarity.

4. Finally, more validation checks were added ensuring that the benchmark tool
very closely resembles a "real-life" scenario wherein a connection is picked up
from a pool by a thread, a task run-on and evaluated.

5. Better logging and error reporting: instead of vaguely crashing, the
benchmark tool provides more clarity on errors. However, panics in worker
threads are yet to be improved in terms of reporting.
2 years ago
Sayan Nandan 57571bc519
Add changelog entry 2 years ago
Sayan Nandan 231dd53341
Reduce code redundancy by using `RawParser` and `RawParserExt`
Also added changelog
2 years ago
Sayan Nandan 2ccd771833
Fix `sky-bench testkey` causing RST due to wrong buffer size
Also fixed linuxpkg harness that was broken due to code cleanup
in 14d9eb4bac
3 years ago
Sayan Nandan df994cf4f7
Add `sys metric storage` for checking on-disk storage usage 3 years ago
Sayan Nandan 2c6768dc12
Ensure snapshot overwrite protection if host time is incorrect 3 years ago
Sayan Nandan 076282df2b
Add tests for snapshot directory structure 3 years ago
Sayan Nandan e5909eb1f9
Use separate flag for tree cleanup 3 years ago
Sayan Nandan 08cffa1d3f
Fix bug causing bgsave/termsig flush failure if a snapshot flushed it
I came across an interesting scenario that led to the discovery of this bug:
if a keyspace is created before a snapshot cycle and before termsig/bgsave,
and then the snapshot cycle runs, then the subsequent runs of bgsave/termsig
would fail. The reason behind this interesting bug turns out to be rather
trivial.

Since the `flush_full` routine, regardless of storage targets would untrip
the PRELOAD switch, the snapshot target as expected untrips the switch. Now,
this means that a tree re-init is not run by BGSAVE or save on termsig.
As a consequence, while attempting to run bgsave/save on termsig, the new
keyspace directories are not found, resulting in flush failure. This commit
fixes it my simply checking if the target should untrip the switch or not.

Tests for the same were added
3 years ago
Sayan Nandan c4eaf3d182
Bump version [skip ci] 3 years ago
Sayan Nandan 5002fed675
Fix pipeline with pedantic execution for stages 3 years ago
Sayan Nandan 0283d91f67
Fix panic resulting from corrupted metadata in `PARTMAP` 3 years ago
Sayan Nandan 0b17f7b0e4
Fix new instance detection 3 years ago
Sayan Nandan 0e7340c965
Fix LF check in protocol impl 3 years ago
Sayan Nandan d57b0d98cf
Improve error reporting infrastructure
This commit greatly improves the error reporting infrastructure
all across the `skyd` crate. Now, every error has far more
context making it easier to debug and test while also providing
helpful feedback to users. This feedback can be extremely helpful
to find out offending files and fix them; for example, by being
specific about which file is corrupted or has bad metadata.
3 years ago
Sayan Nandan 624c7e5aaa
Update docs [skip ci] 3 years ago
Sayan Nandan f40c1d00e5
Add `auth whoami` 3 years ago
Sayan Nandan 81c3479ffb
Fix handling of EOF keystroke 3 years ago
Sayan Nandan 82420e2013
Enable inspecting the current table 3 years ago
Sayan Nandan ced5e75182
Enable inspecting current keyspace 3 years ago
Sayan Nandan b057de94e6
Bump version to 0.7.4 3 years ago
Sayan Nandan 90ef10a56d
Fix snapshot engine init failure 3 years ago
Sayan Nandan ad2f87de7a
Add `auth listuser` subaction 3 years ago
Sayan Nandan 369f7b89ed
Enable table access using partial entity syntax 3 years ago
Sayan Nandan 482f4009db
Enable regenerating tokens and fix panic on wrong length `AuthID` 3 years ago
Sayan Nandan 88955b62c6
Add changelog and remove unused code 3 years ago
Sayan Nandan 33b0693fcb
Fix infinite loop on save failure during termination 3 years ago
Sayan Nandan 0b54ea1cb3
Bump up version 3 years ago
Sayan Nandan 6c59bc4f31
Add changelog entry [skip ci] 3 years ago
Sayan Nandan 84134ed240
Remove `upgrade` subcommand and log on restore
The `upgrade` subcommand from `skyd` which was removed in 0.7, but was
erroneously accepted in the CLI parameters has been removed. This
was silently ignored.
3 years ago
Sayan Nandan d550e0d7a7
Expect `noart` in production mode
This might make one think that we are being outrageously strict,
but at the end of the day, it can help investigate crashes
or inspect logs without artwork all over the place.

Following some discussions, the `user` mode was renamed to `dev`
mode.

This commit also upgrades some deps, other than clap which has
deprecated yaml support (we will continue to use 2.x).

Finally, the CHANGELOG was updated.
3 years ago
Sayan Nandan 12d90944a3
Report error when sample space is too low for key generation
It's important that we report an error when the sample space is too
low for the given k/v size and key count. Previously, we'd end up
entering an infinite wait time (essentially an infinite loop); this
has been fixed.
3 years ago
Sayan Nandan 6800b5eb0a
Use native endian for testing
Add changelog
3 years ago
Sayan Nandan 93d1004c80
Add changelog and switch to using rustc edition 2021 3 years ago
Sayan 76f493753b
Add the `whereami` action (#232)
* Move macros into module

* Add the `whereami` action to identify the current entity

* Show entity group in the skysh prompt

* Add tests and actiondoc for `whereami`

* Add changelog entry

* Upgrade deps
3 years ago