diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 25395dbe..6b1f8d2e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -276,7 +276,6 @@ jobs: with: tag_name: ${{ steps.get_version.outputs.VERSION }} release_name: ${{ steps.get_version.outputs.VERSION }} - prerelease: true - name: Download all artifacts uses: actions/download-artifact@v2 diff --git a/CHANGELOG.md b/CHANGELOG.md index 4dc10243..bb526c39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,39 @@ All changes in this project will be noted in this file. +## Version 0.6.0 [2021-05-27] + +> Breaking changes! + +* Dropped support for Terrapipe 1.0 (reached EOL) +* Added support for Skyhash 1.0 (see [#147](https://github.com/skytable/skytable/pull/147)) +* Fixed persistence bugs (see [#151](https://github.com/skytable/skytable/pull/151)) +* Fixed bugs in background services (see [#152](https://github.com/skytable/skytable/pull/152)) +* Make BGSAVE recoverable (see [#153](https://github.com/skytable/skytable/pull/153)) +* Added `lskeys` action (see [#155](https://github.com/skytable/skytable/pull/155)) +* Added `compat` module (see [#158](https://github.com/skytable/skytable/pull/158)) +* Added backward compatibility for storage formats all the way upto 0.3.0. See [this wiki article](https://github.com/skytable/skytable/wiki/Disk-storage-formats) for more information + +### Upgrading existing clients + +As Terrapipe 1.0 has reached EOL, all clients have to be upgraded to use the [Skyhash 1.0 Protocol](https://docs.skytable.io/protocol/skyhash). + +### Upgrading existing datasets + +Please refer to [this wiki article](https://github.com/skytable/skytable/wiki/Disk-storage-formats). + +### Improvements in the new protocol (Skyhash) + +* Upto 40% lower bandwidth requirements +* Upto 30% faster queries +* Support for recursive arrays +* More robust and well tested than Terrapipe + +### Internal codebase improvements + +* BGSAVE is now tested by the test suite +* `skysh` and `sky-bench` both use the [Rust client driver for Skytable](https://github.com/skytable/client-rust). + ## Version 0.5.3 [2021-05-13] > No breaking changes diff --git a/README.md b/README.md index 80c971dd..8d8a36cc 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@

Skytable

The next-generation NoSQL database

-![GitHub Workflow Status](https://img.shields.io/github/workflow/status/skybasedb/skybase/Test%20(push)) ![Status: Alpha](https://img.shields.io/badge/status-alpha-critical?style=flat-square) ![Development](https://img.shields.io/badge/development-regular-32CD32?style=flat-square) ![GitHub release (latest SemVer including pre-releases)](https://img.shields.io/github/v/release/skybasedb/skybase?include_prereleases&sort=semver&style=flat-square) +![GitHub Workflow Status](https://img.shields.io/github/workflow/status/skybasedb/skybase/Test%20(push)) ![Development](https://img.shields.io/badge/development-regular-32CD32?style=flat-square) ![GitHub release (latest SemVer including pre-releases)](https://img.shields.io/github/v/release/skybasedb/skybase?include_prereleases&sort=semver&style=flat-square) [![Docs](https://img.shields.io/badge/readthedocs-here-blueviolet?style=flat-square)](https://skytable.github.io/docs) [![Contribute Now](https://img.shields.io/badge/%F0%9F%8C%9Fcontribute-now-a94064)](https://ohsayan.github.io/skythanks) @@ -13,7 +13,7 @@ Skytable is an effort to provide the best of key/value stores, document stores and columnar databases, that is, **simplicity, flexibility and queryability at scale**. The name 'Skytable' exemplifies our vision to create a database that has limitless possibilities. Skytable was previously known as TerrabaseDB (and then Skybase) and is also nicknamed "STable", "Sky" and "SDB" by the community. -Skytable is curently in an alpha stage, but can be used as a **performant**, **secure** and **persistent key-value store**. +Skytable is curently under development, but can be used as a **performant**, **secure** and **persistent key-value store**. ## Getting started 🚀 @@ -42,7 +42,7 @@ You can learn more about installation [here](https://skytable.github.io/docs/get The project currently maintains an official [Rust driver](https://github.com/skytable/client-rust) and we have plans to support more languages along the way! -If you want to use a different language, for now you'll just need to implement the simple and performant [Skyhash Protocol Spec](https://skytable.github.io/docs/next/protocol/skyhash) or for versions prior to 0.6.0, the [Terrapipe Protocol Spec](https://skytable.github.io/docs/protocol/terrapipe). +If you want to use a different language, for now you'll just need to implement the simple and performant [Skyhash Protocol](https://docs.skytable.io/protocol/skyhash). ## Community 👐 diff --git a/actions.jsonc b/actions.jsonc index b672b281..0de3d572 100644 --- a/actions.jsonc +++ b/actions.jsonc @@ -31,7 +31,6 @@ [ { "name": "GET", - "since": "0.1.0", "complexity": "O(1)", "args": "GET ", "desc": "Get the value of a key", @@ -39,7 +38,6 @@ }, { "name": "MGET", - "since": "0.4.0", "complexity": "O(n)", "args": "MGET ...", "desc": "Get the value of 'n' keys", @@ -47,7 +45,6 @@ }, { "name": "SET", - "since": "0.1.0", "complexity": "O(1)", "args": "SET ", "desc": "Set the value of a key", @@ -55,7 +52,6 @@ }, { "name": "MSET", - "since": "0.4.0", "complexity": "O(n)", "args": "MSET ...", "desc": "Set the value of 'n' keys", @@ -63,7 +59,6 @@ }, { "name": "UPDATE", - "since": "0.1.0", "complexity": "O(1)", "args": "UPDATE ", "desc": "Update the value of an existing key", @@ -71,7 +66,6 @@ }, { "name": "MUPDATE", - "since": "0.4.0", "complexity": "O(n)", "args": "MUPDATE ...", "desc": "Update the value of 'n' keys", @@ -79,7 +73,6 @@ }, { "name": "DEL", - "since": "0.1.0", "complexity": "O(n)", "args": "DEL ...", "desc": "Delete 'n' keys", @@ -87,7 +80,6 @@ }, { "name": "EXISTS", - "since": "0.4.0", "complexity": "O(n)", "args": "EXISTS ...", "desc": "Check if 'n' keys exist", @@ -95,7 +87,6 @@ }, { "name": "SSET", - "since": "0.4.3", "complexity": "O(n)", "args": "SSET ...", "desc": "Set all keys to the given values only if all of them don't exist", @@ -103,7 +94,6 @@ }, { "name": "SDEL", - "since": "0.4.3", "complexity": "O(n)", "args": "SDEL ...", "desc": "Delete all keys if all of the keys exist. Do note that if a single key doesn't exist, then a `Nil` code is returned.", @@ -111,7 +101,6 @@ }, { "name": "SUPDATE", - "since": "0.4.3", "complexity": "O(n)", "args": "SUPDATE ...", "desc": "Update all keys if all of the keys exist. Do note that if a single key doesn't exist, then a `Nil` code is returned.", @@ -119,7 +108,6 @@ }, { "name": "DBSIZE", - "since": "0.4.3", "complexity": "O(1)", "args": "DBSIZE", "desc": "Number of key/value pairs stored in the database", @@ -127,7 +115,6 @@ }, { "name": "FLUSHDB", - "since": "0.4.3", "complexity": "O(n)", "args": "FLUSHDB", "desc": "Removes all the key/value pairs stored in the database", @@ -135,7 +122,6 @@ }, { "name": "USET", - "since": "0.4.4", "complexity": "O(n)", "args": "USET ...", "desc": "SET all keys if they don't exist, or UPDATE them if they do exist", @@ -143,7 +129,6 @@ }, { "name": "KEYLEN", - "since": "0.4.4", "complexity": "O(1)", "args": "KEYLEN ", "desc": "Returns the length of the UTF-8 string", @@ -151,15 +136,13 @@ }, { "name": "MKSNAP", - "since": "0.5.0", "complexity": "O(n)", "args": "MKSNAP ", - "desc": "This action can be used to create a snapshot. Do note that this action **requires snapshotting to be enabled on the server side**, before it can create snapshots. \nIf you want to create snapshots **without** snapshots being enabled on the server-side, use a second argument (`[SNAPNAME]`) to specify a snapshot name and a snapshot will be create in a folder called `remote` under your snapshots directory. \nFor more information on snapshots, read [this document](/snapshots)", + "desc": "This action can be used to create a snapshot. Do note that this action **requires snapshotting to be enabled on the server side**, before it can create snapshots. \nIf you want to create snapshots **without** snapshots being enabled on the server-side, pass a second argument to specify a snapshot name and a snapshot will be create in a folder called `remote` under your snapshots directory. \nFor more information on snapshots, read [this document](/snapshots)", "return": "Okay if succeeded, otherwise it returns `err-snapshot-disabled` if snapshotting is disabled or `err-snapshot-busy` if a snapshotting operation is already in progress" }, { "name": "LSKEYS", - "since": "0.6.0", "complexity": "O(n)", "args": "LSKEYS ", "desc": "Returns a flat string array of keys present in the database. If no is given, then a maximum of 10 keys are returned. If a limit is specified, then a maximum of keys are returned", diff --git a/release.sh b/release.sh index 57f74995..d839bea9 100755 --- a/release.sh +++ b/release.sh @@ -1,5 +1,5 @@ # This is a simple script which creates a release build and # moves the release builds into my $HOME/bin folder cargo build --release -cp -f target/release/sdb target/release/skysh target/release/sky-bench $HOME/bin +cp -f target/release/skyd target/release/skysh target/release/sky-bench $HOME/bin echo 'Done!'