Skytable 0.7.1 is here: Lists and more!

Skytable 0.7.1 is here: Lists and more!

We're extremely happy to announce the release of Skytable 0.7.1. Skytable 0.7.1 introduces a new list data type, the sub-action class of actions and easier configuration via environment variables. Also, RFC 1 has been accepted which is going to be a big win for users; let's dive straight in!

Gimme those lists!

It is very often that we need to store ordered things. Think about storing things like a list of notes in the order they were created (a journal app maybe?). Until now, storing things in order wasn't a possibility; but that's history with the new list data type. A list is simply an ordered collection, synonymous with the idea of an array in programming languages.

You can create list based tables just like this:

skysh> CREATE TABLE notes keymap(str,list<str>)

Let's create a list and insert some items; 'tis super easy!

  1. First switch to the notes table:
    skysh> use default:notes
    
  2. Now let's create our first key for storing notes for user joe:
    skysh> lset joe
    
    This will create a key joe and map it to an empty list.
  3. Let's add some items:
    skysh> lmod joe push "Woke up at 7:00 AM"
    skysh> lmod joe push "Headed to the subway at 8:00 AM"
    skysh> lmod joe push "Worked till 6:00 PM. Was a really hectic day!"
    skysh> lmod joe push "Had a junk meal at Wendy's"
    skysh> lmod joe push "Off to bed. It's 01:00 AM!"
    
  4. Let's check out Joe's day!
    skysh> lget joe
    (1) "Woke up at 7:00 AM"
    (2) "Headed to the subway at 8:00 AM"
    (3) "Worked till 6:00 PM. Was a really hectic day!"
    (4) "Had a junk meal at Wendy's"
    (5) "Off to bed. It's 01:00 AM!"
    

Environment variable configuration

Skytable now supports configuration via environment variables for places where it is more convenient to use them in Docker containers, for example. You can read more about configuration via env vars here.

Guaranteed backward compatibility policy

With the proposal from RFC 1, all Skytable users are now assured a guaranteed backward compatibility for their datasets; this means that when we make a breaking change to the storage engine, all users from earlier versions would be able to upgrade their datasets using the built-in compatibility framework or tools that we'll provide. That means – upgrades without any fuss!

Final notes

Under the hood, we've made several fixes and under-the-hood improvements, including reduced memory usage for larger queries by adopting a zero-copy implementation wherever possible and multiple miscellaneous fixes to skysh.
A point to note is that the lists that are available is a basic implementation of the lists and several performance improvements will follow in the upcoming releases – along with support for nested lists (who's compatible actions are up for some debate). Until then, download the latest release, enjoy using lists and wait for the next data type we're working on!