Recent Changes

Below you will find a quarterly-updated, mostly-complete listing of improvements to the StructD platform over its open-source origins. These changes should eventually make it into open-source StructD, time and resources allowing.

December 2018

  • Version 3 of low/no-overhead snapshot, see ~8.56 MB vs. 9GB in 9GB resident test
  • Low / no overhead snapshot, 99.8%+ reduced bgsave memory overhead
  • Load during transfer, 50-70% reduced cold replica startup time
  • 20-75% faster snapshot load; given 16 byte keys, with whole databases of values:
    • 30-35% reduction in load time / 64 byte string values
    • 40-75% reduction in load time / 10-3.2k intsets, 548 entries avg
    • 40-75% reduction in load time / 10-100k intsets, 11k entries avg
    • 43-75% reduction in load time / 10-3.2k sets, 548 entries avg
    • 40-65% reduction in load time / 10-1k lists, ~21 bpe, 214 entries avg
    • 43-75% reduction in load time / 10-1k hashes, ~9.3kb per hash, 215 entries avg
    • ~20% reduction in load time / 10-100k zsets, ~1.2mb per zset, 11,056 entries avg
    • ~20% reduction in load time / 10-1k zsets, ~22.1kb per zset, 215 entries avg
  • 25-65% faster snapshot save; given 16 byte keys, with whole databases of values:
    • 45-65% reduction in bgsave time / 64 byte string values
    • 35-50% reduction in bgsave time / 10-3.2k intsets, 548 entries avg
    • 35-55% reduction in bgsave time / 10-100k intsets, 11k entries avg
    • 35-60% reduction in bgsave time / 10-3.2k sets, 548 entries avg
    • 35-55% reduction in bgsave time / 10-1k lists, ~21 bpe, 214 entries avg
    • 35-55% reduction in bgsave time / 10-1k hashes, ~9.3kb per hash, 215 entries avg
    • 25-40% reduction in bgsave time / 10-100k zsets, ~1.2mb per zset, 11,056 entries avg
    • 25-40% reduction in bgsave time / 10-1k zsets, ~22.1kb per zset, 215 entries avg
  • Fixed keyspace event propagation for key events on TXN.* rollback

September 2018

  • Version 2 of low-overhead snapshot, see ~50 MB vs. 9GB in 9GB resident test
  • Transactions rollback on data type errors with TXN.MULTI
  • Alias Lua scripts and call from inside or outside other scripts
    • SCRIPT LOAD '<script contents>' <name> [NX|REPLACE]
    • EVALSHA <name|sha1> <keycount> <keys ...> <argv ...>
    • From inside a Lua script: EVAL "return CALL.name(KEYS, ARGV)" ...
  • Better Lua environment protection, and other misc. Lua improvements
  • Re-arranged some commands / features from ‘debug’ to ‘client’
  • Better / more commands possible during long-running Lua script operations
  • Auto-kill transactions on deadline expiration

June 2018

  • Version 1 of low-overhead snapshot, see ~150 MB vs. 9GB in 9GB resident test
  • Finished original TLS/SSL with OpenSSL 1.1
    • Re-based my work Amazon / madolson s2n-derived branch
    • Cluster + structd-sentinel came for free, needs testing
  • CRC16 ~33% faster than Matt Standcliff / Mark Adler variant (up to 2100 MB/s on i3-2120)
  • CRC64 ~33-66% faster than Matt Standcliff / Mark Adler variant (up to 2100 MB/s on i3-2120, 2700 MB/s on E5-2670)
    • Hardware CRC64 sees ~10 GB/s on E5-2670, but uses different polynomial
  • Lua transaction effect propagation optionally via RESTORE .. UPDATE command

March 2018

  • Have usable multi-machine transactions in Cluster
  • Translated redis_trib.rb to redis_trib.py for fewer platform dependencies
  • Transactions in Lua with rollbacks, TXN.EVAL, TXN.ESHA
  • Started on OpenSSL / LibreSSL Async and Threaded SSL/TLS implementations
    • Have hiredis, structd-benchmark, structd-server, and tests
    • Still need cluster and structd-sentinel

This page and its contents are Copyright 2019 NISR LLC, All rights reserved.

The StructD name and logo are a registered Trademark of NISR LLC.

1-925-587-8283 | sales@structd.com | Privacy Policy