[23.06.0] - 2023-06-16
Features
- Expose the Public Lua API `pico.*`. It's supplemented with a
built-in reference manual, see `pico.help()`.
- _Compare and Swap_ (CaS) is an algorithm that allows to combine Raft
operations with a predicate checking. It makes read-write access to
global spaces serializable. See `pico.help('cas')`.
- _Clusterwide schema_ now allows to create global and sharded spaces.
The content of global spaces is replicated to every instance in the
cluster. In sharded spaces the chuncs of data (buckets) are
distributed across different replicasets. See
`pico.help('create_space')`.
- _Raft log compaction_ allows stripping old raft log entries in order
to prevent its infinite growth. See `pico.help('raft_compact_log')`.
- Remove everything related to "migrations". They're superseeded with
"clusterwide schema" mentioned above.
CLI
- `picodata run --script` command-line argument sets a path to a Lua
script executed at startup.
- `picodata run --http-listen` command-line argument sets the [HTTP
server](https://github.com/tarantool/http) listening address. If no
value is provided, the server won't be initialized.
- `picodata connect` CLI command provides interactive Lua console.
Implementation details
- Picodata automatically demotes Raft voters that go offline and
promotes a replacement. See docs/topology.md for more details.
Replicaset leadership is switched too.
Compatibility
- The current version is NOT compatible with prior releases. It cannot
be started with the old snapshots.