1594 Commits (6c50a4042a921e9fd032300bfd03152b9eb0a3ef)
 

Author SHA1 Message Date
Sayan Nandan 7a5b958402
Support reset syntax 2 years ago
Sayan Nandan 700204913a
Enable adding fields using `alter model` 2 years ago
Sayan Nandan a84bb28a6a
Avoid pointless allocations for DDL operations 2 years ago
Sayan Nandan 70754cbb4d
Support field removal in alter model 2 years ago
Sayan Nandan 500bfc353d
Add field-dict expression syntax 2 years ago
Sayan Nandan f41ea72747
Upgrade deps 2 years ago
Sayan Nandan efcc89d984
Enable altering of spaces 2 years ago
Sayan Nandan 9d5f85374b
Fix equality checks 2 years ago
Sayan Nandan 36a2b0162f
Enable creating spaces 2 years ago
Sayan Nandan 779fbb7785
Add parsing of schemas 2 years ago
Sayan Nandan a75df3a1d7
Add field parsing 2 years ago
Sayan Nandan 185df7a829
Add field property parsing 2 years ago
Sayan Nandan 71a9ceb093
Add `NULL` and `PRIMARY` keywords 2 years ago
Sayan Nandan e8aaccdb32
Improve kw/sym matching algorithms 2 years ago
Sayan Nandan d0a548a59a
Add fuzzing for layers 2 years ago
Sayan Nandan 1d69751ccf
Add fuzzing for tymeta 2 years ago
Sayan Nandan e7170b1a54
Add fuzzing for tokens 2 years ago
Sayan Nandan 3b5bcdde4b
Fix litnum parsing 2 years ago
Sayan Nandan 659ed8f6d9
Add tests for layers 2 years ago
Sayan Nandan a48da8b0ca
Add tymeta tests 2 years ago
Sayan Nandan 8ffe6360df
Simplify states 2 years ago
Sayan Nandan 103553ef20
Add type folding algorithm 2 years ago
Sayan Nandan 707f5c4d7e
Add type metadata parsing 2 years ago
Sayan Nandan e7e799aca7
Re-implement dictionary folding algorithm 2 years ago
Sayan Nandan 7d982a78bf
Add dictionary folding from tokens 2 years ago
Sayan Nandan 9d0486452f
Implement basic AST, add tests and fix lexing 2 years ago
Sayan Nandan a14e4cce3a
Add `Lexer` impl and `TypeDefintion` expr 2 years ago
Sayan Nandan b97f381238
Upgrade deps 2 years ago
BA acb9b2b8be
Fix returning values of LMOD_POP & LSET (#281) 2 years ago
Sayan Nandan 7041dd6ce3
Upgrade deps 2 years ago
Sayan 58f080f465
Add pull request template 2 years ago
Sayan Nandan 4d8e53f5cc
Cleanup and upgrade deps 2 years ago
Sayan d156347bc4
Re-implement network stack (#279)
* Re-implement network stack

This commit does a complete overhaul to the networking subsystem, and this has
been pending for a long time. For whatever reason, when some generic
flexibility was aimed for, we went ahead with the "expensive emulation" of
async traits which has resulted in unnecessary complication with type arguments
(lifetimes, function signatures looking insane et cetera) besides the usual
downsides.

Also, the termination signaling mechanism was slightly excessive because it was
built with the idea of supporting PUB/SUB by default.

Last but not the least, the authentication system used dynamism which had
resulted in unwanted complication to type arguments for functions that accepted
the auth handle. Now, none of those complications exist and we have an almost
glorious life (for now atleast).

* Fix simple query header for Skyhash-1.0
2 years ago
Sayan Nandan 166208cbb7
Use aligned pointer for zero-sized slice
This ensures that we always have an aligned pointer, even
when the slice is zero sized. This is required for enum
optimizations (as noted in from_raw_parts).
2 years ago
Sayan 8b45dcd96f
Switch implementation for shared in-memory data (#278)
* Switch to using `SharedSlice`

Although I'm a huge fan of case-based optimizations, we don't exactly need the
sophistication that `Bytes` gives us. Instead, we switch to a traditional ref
counted structure, which allocates on creation and deallocates when it is the
only owner (bytes also does this albeit using dynamic dispath via a vft).

The same function path is utilized for every operation on the structure. The
difference between heap-allocating the shared state and having it as fields
on the base structure is a micro-optimization that I'm yet to substantiate
with performance gains.

* Add tests for `SharedSlice`
2 years ago
Sayan Nandan a4daa47c65
Merge branch 'newbench' into next 2 years ago
Sayan Nandan 60d36af34b
Wait for threads to start up before returning 2 years ago
Sayan Nandan da645247d2
Refactor benchmarks into separate functions 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 021579d4f8
Ensure that we don't exhaust memory while trying to generate packets 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 a512b8b617
Upgrade deps 2 years ago
Sayan Nandan 9372e3aeeb
Upgrade deps 2 years ago
Sayan Nandan d2d340b760
Enable use of newlines and tabs in BQL 2 years ago
dependabot[bot] fef8b3f8db
Bump openssl-src from 111.21.0+1.1.1p to 111.22.0+1.1.1q (#268)
Bumps [openssl-src](https://github.com/alexcrichton/openssl-src-rs) from 111.21.0+1.1.1p to 111.22.0+1.1.1q.
- [Release notes](https://github.com/alexcrichton/openssl-src-rs/releases)
- [Commits](https://github.com/alexcrichton/openssl-src-rs/commits)

---
updated-dependencies:
- dependency-name: openssl-src
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2 years ago
Sayan Nandan 081f8691f4
Bump deps 2 years ago
Sayan Nandan 80ba03278b
Don't ignore `skysh` for Docker image build
PR #261 added `skysh` to the Docker image. However, due to our
`dockerignore` rules, the `skysh` binary is ignored. This commit
fixes that.
2 years ago
Sayan 62eed115a5
Merge pull request #261 from jse1t5/add-skysh-to-dockerfile
add skysh to dockerfile
2 years ago
Sayan Nandan 0b5b978e81
Use stdlib for core count and upgrade deps 2 years ago
jse1t5 6671d8fa38
add skysh to dockerfile 2 years ago