Skytable 0.7.5: System metrics, improved error infrastructure, new actions and several fixes
The Skytable Team is extremely happy to announce the release of Skytable 0.7.5. Skytable is a free and open-source NoSQL database that aims to provide flexible data modeling at scale. This release packs some new actions while also adding a huge number of very critical fixes. We strongly recommended you to update your instances to 0.7.5 to apply the fixes. But before you do, let's take a quick look at them.
System actions
Until now, there was no way to get information about a Skytable instance. This release changes that, with the sys
action that enables you to get information from the system. sys
has two kinds of subactions:
info
: This is used to query static properties, i.e properties that do not change at runtime. Examples includeversion
,protocol
andprotover
metric
: This is used to query metrics or dynamic properties, i.e properties that can change during runtime. The currently available metrics include ahealth
check endpoint and an on-diskstorage
usage check
Improved error detection and reporting
This release greatly improves error detection and reporting. Like you know, Skytable's data is stored in a data
directory. Say the PARTMAP
for the default
keyspace gets corrupted due to a disk fault. Previously, you'd get a vague error like below:
[2022-03-27T06:18:41Z ERROR skyd] Error while initializing database: invalid data
With this update, this is what it will look like:
[2022-03-27T06:25:50Z ERROR skyd] Storage engine error: file `default/PARTMAP` is corrupted
Hence, you get actionable insights on what is broken and what isn't, making it easier for you to attempt a fix or for us to debug. Another important fix lies in the detection of a new instance. Previously we relied on a bad heuristic – checking if the data/ks/PRELOAD
file was present or not. Now we check the structure of the data directory instead, making the check more reliable and not accidentally deleting or overwriting files.
Actions
Apart from the sys actions, the following actions were added or improved:
auth whoami
: returns the name of the currently logged in userlmod push
: now enables multiple elements to be pushed in at onceinspect keyspace
: instead of having to supply the keyspace name, without any arguments the action now checks the tables in the current keyspaceinspect table
: when run without any arguments, this checks the properties of the current table
Fixes, and towards 0.8
This release is a significant bugfix release. It includes many critical fixes including: pipeline stages returning invalid responses, fixes in the protocol implementation when not enough data is buffered, improved metadata corruption detection, snapshot overwrite protection, fixes for crashes and much more. You can read the complete changelog here. We recommend you to immediately update your servers to use 0.7.5 as several critical fixes have been delivered. Download the the 0.7.5 release here.
Unless any severe bugs emerge, this will be the last release in the 0.7 release track. So yeah, let's launch our text editors – we'll start working on 0.8 while you can start using Skytable in your app!