YugaByte DB 1.0 release 🔥🍾
Overview of changes
Big payload!
- PostgreSQL API beta support
- Cassandra API enhancements (now called YugaByte Cloud Query Language or YCQL):
- Introduced a JSONB data type for storing documents
- Added a personalization and a timeseries workload to the sample apps
- Redis API enhancements (now called YugaByte Dictionary Service or YEDIS):
- Introduced follower reads
- Added more command coverage (like
ZRANGE
,TSLastN
, etc)
- Distributed transactions enhancements
- Increased transactions perf
- Fixed some corner case error conditions
- Lots of performance improvements
- Improved core decoding logic to boost perf on 2-core machines
- Better handling during huge spikes (backpressure)
- Handle large network buffers better when getting large memory-buffer requests
Key Commits
- [
0d07add
] #239 Callback should keep a reference to Synchronizer in UpdateReplica - [
10338ff
] Consensus: Use periodic timers for failure detection - [
f1e12eb
] Loose-ends for PostgreSQL support - [
e9f3735
] Table splits should be created based on primary cluster tserver count. - [
193cd4c
] (#162) Add grammar and parsing for basic json where clause filtering. - [
0bc9d69
] #198 Show only Cassandra keyspaces and tables in cqlsh - [
39ef45d
] Fix bug in Postgres SSL negotiation handling - [
95aa22e
] Read replicas should not show up as LEARNERSs - [
a5bbca4
] Avoid using spinlocks in the ts_tablet_manager. - [
ec4ae20
] Fix value validation in CassandraTransactionalKeyValue load-tester. - [
c19b14f
] Fix intermittent "Pool is CLOSING" exception in the write-only setup phase of Java load-tester - [
c560765
] Adding java support for shared thirdparty - [
c52c55e
] Automatically set network buffer limits based on available memory - [
7ba423c
] LogCache improvements: SpaceUsed outside lock and fix race on next_sequential_op_index_ - [
7892a2a
] Limit max wait in SetPermanentUuidForRemotePeer - [
9bf8fce
] Use atomic variable for state in TabletPeer - [
43cda3b
] Further reduce writers for batch CQL workloads. - [
7458489
] Removed filenames from error messages - [
e0b4b5d
] Add links for Cassandra, Redis and PGSQL API RPCs in progress in tserver. - [
aad076c
] Reduce default logging from reactor. - [
be18db9
] Fix TSAN version of TestRedisService.TestHMGetTiming - [
bb204e4
] #236: Fixed TestPathUtil.TestODirectFileCreationInDir - [
26552c5
] Linting error for common due to new lib yb_bfpg - [
e86a336
] #197: Fix DoсDB compaction filter to skip transaction metadata - [
222341b
] Switch RaftConsensus to shared_ptr - [
3cdeecf
] Load balancer does not respect replication factor - [
a9fcc08
] #196: Fix "Commit of expired transaction" error under high-load distributed transactions - [
9b6df54
] Harden CreateTable validation in CatalogManager - [
5dc30fc
] Improve DocDB and IntentAwareIterator performance - [
92ac433
] Keep pending operation counter disabled on tablet shutdown - [
49c9d4a
] Postgresql Support - [
7b12cce
] Allow integration of distributed txns with NTP clocks such as AWS time sync service - [
d6d130b
] #194: Some java client wait APIs could incorrectly exit due to overflow. - [
b125942
] Fix postgres port in java mini cluster - [
7482468
] #170: New TsRevRangeByTimestamp redis command - [
8797e39
] Implement ZRANGE for Sorted Sets. - [
158def7
] Improve performance of IntentAwareIterator - [
91e6e02
] #159: Added psql 3rd party - [
9ba8436
] Async DNS resolution of peers - [
a7d1447
] Removed exclusive index bounds in ZRevRange. - [
d0679af
] #23: Use cassandra driver's DNS resolution - [
b67e03c
] #82 Do not tombstone a tablet even if new tserver doesn't get promoted - [
d537ed2
] #87 Expire based on time spent in the queue - [
1796740
] (#141) DocDB filtering on minor compactions - [
08762c7
] #148: Fixed clqsh wrapper - [
be2d598
] Basic jsonb implementation with support at C++ SQL processor level. - [
c9d74a2
] #110: Allow redis reads from followers - [
d78db0f
] Remove transaction_table_num_replicas flag. - [
e640ac7
] Add support for arrays in our jsonb serialization format. - [
05d100c
] Additional data types for jsonb serialization. - [
907243a
] (#109) Support TSCard for redis time series. - [
17c3081
] Make the appenders use a thread pool - [
c2555ed
] Allow YBClient callback(s) to run in a separate threadpool - [
9cd6a2f
] Limit the total amount of memory consumed by network read buffers - [
8f2f390
] add gflag to enable/disable compression of sstables - [
29058a0
] #109 Implement TSLastN functionality for redis time series. - [
89a0269
] Change defaults for Kernel Watchdog - [
4c5813a
] Detecting if the data/log/wals allow file creation with O_DIRECT. - [
409704d
] Increase performance of FastDecodeSignedVarInt. - [
74536a0
] PrimitiveValue write time is being accessed without being initialized - [
95f3092
] Create yugabyte-statefulset-local-ssd-gke.yaml - [
ee306e0
] Add a Cassandra batch timeseries app. - [
37f9c6e
] Fix failed task transition kStateWaiting -> kStateRunning - [
6d981be
] Fix batch/transaction inter-statement dependency analysis for multiple writes. - [
561b811
] Avoid overhead of encoding read_time_.global_limit in IntentAwareIterator::SeekForward(). - [
57946b9
] Cassandra Personalization Workload - [
1192f57
] Avoid overhead of decoding DocHyridTime in IntentAwareIterator::SkipFutureRecords.