840 Commits (d744eaa2f6d02986af8d7b8933f75d65b314e5fc)
 

Author SHA1 Message Date
Sayan Nandan f9f49aee0b Use num_cpus to get number of cores 3 years ago
Sayan Nandan 4bd717b899 Autorun stress tests on push 3 years ago
Sayan Nandan bc8934e6ba Add tests for ARM64 3 years ago
Sayan Nandan ee04d89b0f Add pipeline script 3 years ago
Sayan Nandan 5b48aba345 Add linearity meter 3 years ago
Sayan Nandan 0f1264d312 Decompose linearity tests and utils into modules
Also fixed license headers
3 years ago
Sayan Nandan eb9053ce50 Only refresh specific sys data 3 years ago
Sayan Nandan 87c673e468 Establish connection before bombarding 3 years ago
Sayan Nandan b7229ca55d Use parallel iterators wherever possible 3 years ago
Sayan Nandan c83481cf36 Add linearity tests for GET 3 years ago
Sayan Nandan 5f00b2ddf2 Fix key generation and avoid using mutex
Keys can't repeat, so put them in a set. Also, don't use a mutex as it
only slows down things
3 years ago
Sayan Nandan d39f2dcda5 Add stress testing for `set` queries 3 years ago
Sayan Nandan f416c7f50c Document libstress 3 years ago
Sayan Nandan 5c10584351 Add auto-drop method to `Workpool`
This avoids the need for us to manually drop something to ensure that
all the workers have exited.
3 years ago
Sayan Nandan 9ea48363c2 Fix iterator pool init
The pool was being re-initialized on clone which caused a runtime panic.
To avoid complicating matters, we'll just ignore the result.
3 years ago
Sayan Nandan a7c0af01d4 Add support for parallel iterators in `libstress` 3 years ago
Sayan Nandan 1b8fda51fc Use parallel iterators for benches 3 years ago
Sayan Nandan a87478dcba Optimize dependencies 3 years ago
Sayan Nandan be087f0c84 Fix benchtool::runner not using max_connections
At the same time, several expressions were simplified.
3 years ago
Sayan Nandan 827a4afff2 Refactor sky-bench into modules
Also, error handling was improved.
3 years ago
Sayan Nandan 15d2b1922c Add basic stress-test crate 3 years ago
Sayan Nandan 6b4d27cf43 Add `libstress` and `Workpool` object
The `Workpool` is a more generic version of the Netpool that we used,
making it modular.
3 years ago
Sayan c2030d676e
Auto install any dependencies (#174) 3 years ago
Glydr ce9d830b5a
Merge pull request #173 from skytable/actions/pop
Add the `pop` action
3 years ago
Sayan Nandan 76acde2f4f Fix missing action argument in setkeys macro 3 years ago
Sayan Nandan 26775924ac Add tests for pop 3 years ago
Sayan Nandan a322159088 Add actiondoc for `pop` action 3 years ago
Sayan Nandan 57c957d4e7 Add `pop` action 3 years ago
Sayan 8bed8c9c2a
Use Makefile for builds (#172)
* Add makefile

* Use makefile for builds

* Fix start_server command on Windows

* Use `&` for backgrounding

Since mingw on Windows provides a bash shell, we can just use this

* Use `cmd` as shell for Windows builds

* Use `start` for backgrounding on Windows

* No need for chmod

* Specify target for server to start up

* Sleep to let the server start up

* Update build docs
3 years ago
Sayan cdae667cb0
Fix pid file creation (#170)
* Remove the pid file if runtime errors occur

* Clean up error handling and fix pid file creation

The pid file was being created before evaluating the args, now it may
happen that incorrect args or --help was passed: in that event, the pid
file remains created. This was also fixed, besides some refactoring.
3 years ago
Sayan ca9e482f47
Deter other processes from using the same data dir (#169)
* Deter other processes from using the same data dir

For more information, see #167

* Don't lock `pid_file`

Windows has mandatory locking so second instance won't be able to read
the PID of the other process. We'll just keep the file descriptor/handle
open
3 years ago
Glydr 40093e602c
Merge pull request #168 from skytable/workflow/rmlabel
Remove GHA labelling workflow
3 years ago
Sayan Nandan e1a60dd361 Remove labelling workflow
Our bot glydr now does this automatically on the server-side, so this
isn't required.
3 years ago
Sayan 7349e461e6
Try to auto recover the save operation on termination (#166)
This is very useful because it removes the need for user intervention in
the event save on termination fails. Say the save operation fails due to
'some bad daemon' changing the directory's perms. Now skyd reports this
error while trying to save upon termination. Our sysadmin now fixes the
perms issue. The previous design would force the sysadmin to _somehow_
foreground skyd and hit enter. That is silly. The new design just
attempts to do a save operation every 10 seconds. So in case the issue
is fixed, the save operation will recover on its own.

Why not exponential backoff?
That's because the issue can be fixed some long time later and we may
have reached a large backoff value so the save that could have succeeded
would have to wait for a long duration before it can do anything
meaningful.

This also fixes a bug that caused BGSAVE errors to be reported as info
class log entries.
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 0c33395a09 Add some general optimizations 3 years ago
Sayan Nandan 31d5af91a2 Update docs [skip ci] 3 years ago
Sayan 1bde8b197d
Fix file-locking on solaris (#162) 3 years ago
Sayan ff6e2175d3
Merge pull request #161 from skytable/refactor-actions
Refactor actions
3 years ago
Sayan Nandan 72d871ed3f Upgrade deps 3 years ago
Sayan Nandan 1bec90baac Optimize `sset` and `sdel` implementations 3 years ago
Sayan Nandan 2eedb041bb Make `gen_constants_and_matches!` macro logical
This commit imporves the overall 'look' of the macro and makes it appear
more logical
3 years ago
Sayan Nandan 58830edc80 Use iterators for actions 3 years ago
Sayan Nandan a839137643 Move actions into an `actions` module
These are actions and shouldn't be called the `kvengine`.
3 years ago
Sayan Nandan f8ea4c33de ucase for ASCII only
This is a silly optimization but can be significantly faster for larger
action names. Also, since there are (should be) no UTF-8 characters in
the first argument, this is absolutely fine and sensible.
3 years ago
Sayan Nandan a68c42f720 Document missing instances of `unsafe` 3 years ago
Sayan 952c5caa86
Poison the database by default if snapshotting fails (#160)
* Stop accepting writes if snapshotting fails

This is an important consideration: if BGSAVE fails and poisons the
database, snapshotting can and should too. But this is debatable in some
parts. For example, users may configure snapshots to be on a network
file system (symlinked maybe) and this can fail.
Now in some cases, this failure 'may be acceptable'. This commit adds a
way to customize this behavior through the `failsafe` key in the
snapshots section of the cfg file and through the --stop-write-on-fail
option passed to `skyd` on startup. However, BGSAVE remains unchanged:
it will always poison the database if it fails. If the user doesn't want
this, they can simply disable BGSAVE.

* Add changelog
3 years ago
Sayan Nandan ac336ff821 Add missing changes in changelog
Use `pat` token instead of `path` in query engine
3 years ago
Sayan 956d3beb53
Bump up version, add changelog and update scripts (#159)
* Bump up version, add changelog and update scripts

* Fix actiondoc

* Drop all `since` keys

Since our docs are now well versioned and doesn't read these keys
anymore, we can safely remove them.
3 years ago