Kronotop v0.12.0 – Scalable, transactional doc DB with query predicates

4 months ago 15

This release includes the following fixes and improvements:

  • Initial implementation of BUCKET.ADVANCE command added,
  • New session attributes: limit and pin_read_version,
  • Initial implementation of the PlanCursor implementation.

Full Changelog: v0.11.0...v0.12.0

See Getting Started section to spin up a Kronotop cluster.

Set json as reply_type and input_type

127.0.0.1:5484> SESSION.ATTRIBUTE SET reply_type json OK 127.0.0.1:5484> SESSION.ATTRIBUTE SET input_type json OK

Insert some documents:

127.0.0.1:5484> BUCKET.INSERT users '{"username": "dennis"}' 1) 0000324L7V4H40000000xxxx

Fetch all documents in users bucket:

127.0.0.1:5484> BUCKET.QUERY users '{}' 1# 0000324J61UUE0000000xxxx => "{\"username\": \"mark\"}" 2# 0000324JVJ54E0000000xxxx => "{\"username\": \"bill\"}" 3# 0000324KEE5RO0000000xxxx => "{\"username\": \"steve\"}" 4# 0000324KMOI0I0000000xxxx => "{\"username\": \"sam\"}" 5# 0000324L7V4H40000000xxxx => "{\"username\": \"dennis\"}"

Run a query predicate that this the primary index:

127.0.0.1:5484> BUCKET.QUERY users '{"_id": {"$gte": "0000324J61UUE0000000xxxx"}}' LIMIT 3 1# 0000324J61UUE0000000xxxx => "{\"username\": \"mark\"}" 2# 0000324JVJ54E0000000xxxx => "{\"username\": \"bill\"}" 3# 0000324KEE5RO0000000xxxx => "{\"username\": \"steve\"}"

Advance the cursor:

127.0.0.1:5484> BUCKET.ADVANCE 1# 0000324KMOI0I0000000xxxx => "{\"username\": \"sam\"}" 2# 0000324L7V4H40000000xxxx => "{\"username\": \"dennis\"}" 127.0.0.1:5484> BUCKET.ADVANCE (empty hash) 127.0.0.1:5484>
Read Entire Article