Releases: yugabyte/yugabyte-db
Releases · yugabyte/yugabyte-db
v1.2.0 (Mar 12, 2019)
Overview of Changes
Theme of this release: PostgreSQL, PostgreSQL, PostgreSQL! YSQL is a distributed PostgreSQL that can scale-out, tolerate failures and has no single point of failure.
Support has been added for a ton of Postgres functionality. The following is a list of some of the functionality:
DDL statements
- CREATE, DROP and TRUNCATE tables
Data types
- All primitive types including numeric types (integers and floats), text data types, byte arrays, date-time types
- Support for UUID and SERIAL
- Support for JSONB
DML statements
- INSERT, UPDATE, SELECT and DELETE statements
- JOIN, WHERE clauses, GROUP BY, ORDER BY, LIMIT, OFFSET and SEQUENCES
Transactions
- ABORT, ROLLBACK, BEGIN, END, and COMMIT
Miscellaneous
- Expressions: Built-in functions and operators
- VIEWs
- EXPLAIN PLAN
- PREPARE-BIND-EXECUTE
- JDBC Support
Key Commits
- [
aef1a1f
] ENG-4683 (#874): Fix user table UI to exclude transactions and sequences tables - [
c60921f
] ENG-4681 [YSQL] Support INTERVAL for date/time datatypes - [
4927d38
] [YSQL] ENG-4807 (#957) Fix logs wrongly reporting that YugaByte transactions are not enabled - [
4e69172
] ENG-4780 (#930): Fix postgres server crash while creating index on existing table with data - [
f004732
] #972: ENG-4808: Fixed TabletInvoker::SelectTabletServer - [
652bb5e
] [#959]: Groups threads by stack trace in /threadz - [
d33eaa9
] #665: [YSQL] Enable support for sequences - [
53a1331
] ENG-4801 (#944): yb-ctl improvements for easier onboarding - [
dce09da
] ENG-4585: #796: Created test that covers case when thread pool is not yet ready for intents cleanup - [
bb40833
] ENG-4468: (#871) Add support for checking if tserver is ready for IO requests. - [
e570c1c
] [ENG-3928] [#967] Wait for NFS-based paths to exist in run_tests_on_spark.py - [
3399b88
] [YSQL] #255: Separate YCQL, YSQL and YEDIS namespaces - [
064d366
] ENG-4749: #887: Handle failure of delete at start of iteration in PgLibPqTest.SerializableColoring test - [
88bb343
] #961 Fix instantiation of round-robin policy - [
1037c47
] ENG-4577: Log Replay Count Bugfix and Test #782 - [
57ca114
] ENG-4725: #932: Write RPC should take into account retryable_rpc_single_call_timeout_ms - [
e9424ab
] [YSQL] #943 Optimize single-row write transactions to avoid distributed txn path. - [
c545fb5
] ENG-4783: Misc fixes in shared lock manager - [
45bc122
] ENG-4783: Fixed LockBatch move ctor/assignment - [
3db5d55
] Cleanup of stray processes, NFS issues workaround, DXR integration, adjusting RPC timeout and using random PG ports in YSQL - [
36431db
] Update PostgreSQL code as of the following commit: - [
3952394
] [YSQL] ENG-4757: #902: Restart transaction when it was first executed operation and read restart is required - [
d563e50
] ENG-4577: Log Replay Count Bugfix and Test #782 - [
1ed9e95
] ENG-3558: #920: Replace our own implementation of VarInt with BIGNUM from OpenSSL - [
2f6dedc
] [#836][ENG-4638] Fix KEYS to not Surface Deleted Keys - [
7cf6ccd
] [#918]: Add a pool of pre-created transaction records to avoid a Raft round-trip for transaction creation on the write path - [
7b59cc8
] #897: Fixed yb-tserver failure on SELECT COUNT(column) where column contains null value - [
b0314eb
] [YCQL] #916 Making STATIC an unreserved-keyword. Removing REFERENCES from keyword list. - [
c886b86
] [YSQL] #917: Support DROP INDEX - [
81a80ab
] [YCQL] (#878) : Add uuid() builtin function support. - [
99cc736
] ENG-4672: Provide more information (version, - [
a101e74
] ENG-4656 (#852): Enabled pg_depend - [
c839f8c
] Avoid using NFS-shared local Maven repository directory for running Java tests on macOS - [
396ff88
] [#914]: Split doc_operation into multiple files - [
78776a5
] [YCQL] #835 Allow OFFSET to be used as column names and identifiers - [
362502d
] ENG-4636 (#834): Make transaction failure messages more user friendly - [
a746743
] #904: ENG-4735: Fixed race between deleting obsolete files and creating new output SST file - [
845cdb4
] ENG-4717: #891: Not submitted write operation should block tablet peer shutdown - [
1125d1e
] #771 [YEDIS] Close connection on pub/sub limit - [
ae1e30c
] #768 Ping in subscribe mode should return a multi-bulk string - [
dd97847
] [YSQL] ENG-4734 Fix data race with ysql_catalog_version #903 - [
08c9bbf
] ENG-4410 (#696): Retry resolving master addresses instead of erroring out immediately - [
3ce7386
] ENG-4680 (#873): Save postgres logs in tserver/logs directory - [
1dd8e4b
] ENG-4692 (#868): Enable access share mode for table lock - [
63a0d61
] ENG-4692 (#868): Enable support for read only transactions - [
3779a86
] #862: ENG-4728: Use libbacktrace only in debug builds and in single-threaded mode to avoid high memory consumption - [
827ff02
] [YSQL] Basic framework for cache consistency with multi-head DDLs #679 - [
299c718
] Add pre- for leader election logging - [
bfd2019
] #895: Rate-limit the warning of unsupported YCQL consistency level. - [
ff38980
] Break the long test TestPgRegressPgTypes into two separate tests - [
492c67c
] Bump up master memory limit threshold for ASAN and TSAN - [[
abc6a2e
](https://github.com/YugaByte/yugabyte-db/commit/abc6a2ead184c764a7732cfb2d...
v1.1.0 (Sep 17, 2018)
Overview of Changes
- Distributed multi-shard/multi-table ACID transactions!
- Global & consistent secondary indexes
- UNIQUE constraint on secondary indexes
- Native JSON data type
- Public/private IP bindings for multi/hybrid cloud or multi-region deployments
- User authentication
- Redis-compatibility features added to our YEDIS API:
- “Read from followers” for tunable read consistency
- Support for multiple databases or namespaces
- Support for MONITOR, EXPIRE, TTL
- Bug fixes and performance enhancements
- Plus excellent progress on the Postgres-compatible SQL API!
Key Commits
- [
068f64f
] Fixes #49 #111 #465 Efficiently support IN conditions for clustering columns - [
92d442a
] [#386] Switch ResettableHeartbeater with Periodic timer - [
4ff9e7c
] Remove TTL from init marker on TS type. - [
7b28dd7
] Cap max pre-allocated file size for compactions at 1G - [
887820d
] Fix hang during tserver shutdown - [
afef8f2
] Fixes #469: Optimize QLResultSet to serialize rows results directly - [
2fdad35
] #456: Update committed hybrid time from WAL records - [
7e4108a
] #467: Fix several issues with remote bootstrap - [
0d9feb2
] #338 Preliminary support for Redis Lists - [
d902325
] #334 Redis (P)ExpireAt Support - [
d4865d4
] #460: Add handling of controller status in GetMasterEntryForHosts - [
19c9fed
] Add memory limit to ram ratio (#458) - [
c6538a8
] Added broadcast address for stable pod IDs in K8s. This fixes master/tserver pod failure cases. (#464) - [
cdbf60c
] [#289] Cleanup intents for aborted transactions in the compaction path - [
a0a2072
] #459: Upgrading k8s yb cluster fails when bind address is private ip of pod. - [
8438e9f
] #418: Increase default network rate for remote bootstrap - [
653871a
] Prevent PeerMessageQueue from being deleted while Peer could use it - [
6022cae
] Add loadbalancer option (#450) - [
154810c
] (#418) Rate limiter for remote bootstrap - [
e4a55b9
] #451: Fix double reply in case of read from follower during startup - [
5842ed6
] Expose raw size in tablet-server metrics #439 - [
3bd4f37
] #451: Check result of weak_ptr lock, before doing actual call in LocalYBInboundCall - [
900a733
] Fix CassandraSecondaryIndex degradation - [
f8a83c2
] Use scoped_refptr for pggate classes so we can get rid of maps from raw to shared pointers - [
41b9a6e
] #384 Rename ApplyAsync to ApplyOperation and get rid of the unused apply thread pool - [
6cc4bfb
] Reverse scan should handle intents. - [
48a3d8f
] Set in-memory master address list in tserver after a full move. - [
5a460b8
] #444: IntentAwareIterator is missing intents even during a forward scan - [
d355997
] Fixes #445 Invalid start_doc_key error with IN condition and paging state - [
78c4c26
] Split tables in YB /tables view by system/index/user - [
e33a2bb
] IntentAwareIterator could miss intents from the same transaction - [
e940d61
] #403 Support Deleting and Recreating a Redis Table online. - [
2a4fb09
] #432: Add "transactions" and "is_unique" columns to system_schema.indexes - [
898e432
] Integrate basic PostgreSQL statements from the external PostgreSQL process with the internal YugaByte PostgreSQL API - [
82884f9
] Skip cleanup when transaction is not loaded - [
4be4c9b
] Fixes #441: Return selected columns of "select * ..." with index in the same order of the table columns. - [
b2164ff
] Fixes #434: Deletes of specific range key incorrectly deleting all rows for that partition key - [
b052e13
] Fix to execute GetSegmentsSnapshot using lock - [
1c6e237
] #428: Support remote bootstrap for very large tablets - [
eb04e90
] Add file_macro to CCACHE_SLOPPINESS for better ccache hit ratio - [
36953b4
] #388: Support batch request of DMLs on table with secondary index - [
d55bad6
] Fix handling of write intents for aborted transaction - [
73a5e9d
] Ignore error when removing index from the indexed table while dropping an index. - [
9d0085a
] [#427] Change CQL wire protocol to move the JSONB type - [
b5d66ea
] Make master and tserver have their own overrides (#426) - [
94be2b1
] Fix UpdateTransaction call during cleanup - [
03a3e47
] #423: Truncate indexes when truncating a table - [
7e82039
] Remove intents of aborted transactions - [
8758c9f
] #343 Implement Select and CreateDB commands. - [
026b582
] Allow overriding the UUID to be used for new instance metadata for a fresh master or tserver - [
03079e3
] Allow remote compiler execution mode for Postgres build - [
8765bab
] #415: End a query always when LIMIT clause is hit. - [
e65b6ed
] #397: Added ability to specify multiple endpoints for master - [
9bc7dc1
] #410: Remove unused CQLRpcServerEnv - [
7b925bd
] Support for SELECT in Postgres API - [
74751e8
] #407: Refactor CQL write dependency check - [[
ee502c7
](https://github.com/YugaBy...
v1.0.5 (Jul 27, 2018)
Overview of changes
The following are some of the key fixes and features in this release:
- Basic helm chart support to deploy Kubernetes clusters
- Various bug fixes and performance improvements
- YEDIS
- Auth support for Redis
- Safety flags to disable dropping data, for example using commands such as
FLUSHALL
- YCQL
- Added support for "broadcast address" to enable public and private IP support
- Ability to return fine-grained errors in CAS (compare and set) and batch statements
- Support for weak secondary indexes for higher ingest performance
Key Commits
- [
76a3550
] #401: Clean up YCQL batch execution - [
ad4abee
] #382: Unable to initialize catalog manager with docker. - [
6db30ec
] Updated the pom file to include new Cassandra driver changes. - [
5d1774d
] Clean up the use of SQL statement string in statement processor - [
083465c
] IsLoadBalanced check made per cluster. - [
e9606c6
] (#375) Optimize queries with IN list to execute in parallel when reasonable - [
2048e79
] #385: Add CassandraUniqueSecondaryIndex workload - [
048e821
] Fixed snapshot files collecting in the RemoteBootstrapSession and related test. - [
0dcb7f0
] #377: Move unique index duplicate-value check to index tablet. - [
b5502ef
] In TabletPeer, we should not access try to call log() before the log is initialized - [
7cb3df0
] Add batch update test for weak secondary index - [
76aac82
] Specify correct parent mem tracker for outbound connections - [
189260f
] Public/private IP support in YB - [
059317c
] #350 Avoid blocking in Peer::Close() - [
d898ee1
] A macro-based DSL for C-to-C++ APIs for PostgreSQL integration - [
7e6fddd
] [ENG-3454] Don't close Jedis after each pipeline batch. - [
5a062dd
] Improve performance when sending peer's requests (#350) - [
a921f98
] (#347) [YCQL] provide mechanism for DML operations to return finer-grained errors - [
b2fa67b
] ENG-3580: Fix abort scheduled async RPC task - [
c0abc0f
] #373: Persist index info in tablet metadata. - [
eca8f18
] [ENG-3484] #335 Implement Redis Monitor command - [
28b4386
] (#374) Add suport for partition_hash() builtin function. - [
a5a78cd
] [ENG-1735] #283 Implement Auth support for Redis - [
93cd133
] [ENG-3543] #357 Fix error messages for Redis - [
0197104
] ENG-3546: CQL TLS Encryption - [
2848cd6
] ENG-3326: Fixed reverse scan infinite loop issue. - [
10ef4e2
] [#145] Sum for Varint or decimal columns - [
5985d82
] ENG-3564: #361 Support for Alter Role - [
b4f2b82
] #366: Update README.md to have a section for running the C++ and Java tests. - [
7e8e85e
] (#349) Enhance YCQL grammar to support interchanging order of OFFSET and LIMIT clauses. - [
a8dd107
] #362: Cache index table metadata in tserver when updating an index - [
f31cfc9
] ENG-3472: #346: Clean committed transaction in TransactionParticipant - [
16f1d6f
] ENG-3529 #351: Refresh master leader when server queue is full - [
cedfae3
] ENG-3527: Implement weak secondary index - [
b595fe5
] #345 Fixed the return type of "PING" by adding a flag for returning a Simple String vs Bulk String - [
2bd0312
] #352: CREATE INDEX syntax changes - [
81ac392
] Clean up the C API for PostgreSQL integration with YB data fabric and use YBCStatus - [
50fb6d2
] ENG-3493: add ELSE ERROR to YCQL - [
0f8ca9c
] Remove some unnecessary functionality from yb_fdw - [
5009728
] (#339) Support YCQL offset clause in docdb and our paging state. - [
a5719bd
] Generate PostgreSQL catalog script for YugaByte DB - [
9343596
] (#339) Add grammar and semantic analysis for offset clause. - [
6847aff
] ENG-1756: Support Redis "CLUSTER SLOTS" - [
708ea83
] ENG-2929 : Shell master start should not allow master_addresses flag to be set. - [
6716483
] Set up a placeholder foreign data wrapper yb_fdw using file_fdw - [
607173b
] Allow specifying YB master addresses to use inside pggate with an env var - [
160ab8e
] Refactor PostgresSecondaryIndex workload. - [
3aa2066
] ENG-3453: Settings for TLS encryption - [
8c229db
] Add load-balancing test for query with secondary index - [
d2366eb
] ENG-3475: Remove compaction filter for provisional DB - [
a062473
] ENG-3481: added option to disable flushall in redis (#337)
v1.0.4 (Jun 20, 2018)
Overview of changes
Here are some key features and fixes:
- Support for unique constraints to ensure that a column does not have duplicate values in YCQL.
- Support fine grained selection and update of JSON attributes, built-in JSON operators in YCQL.
- Support for AVERAGE, blob conversion functions in YCQL.
- Ability to read from the local datacenter when using YEDIS.
- Support ZSCORE in YEDIS.
- Support bounded staleness for follower reads.
- Presto integration.
Key Commits
- [
ab0611e
] ENG-3453: Add TLS support to RPC layer - [
70fcb1b
] Add a workload to test secondary indexes in postgres. - [
b06d6c3
] Use thread pool to pickup status tablet when wait is disallowed - [
979fbc8
] Ensure we allow the same column multiple times in WHERE and IF clauses for json and collection columns - [
aa3621e
] Fix check failure when reading in future - [
8e0bf34
] #322: Always raise unique constraint error for unique secondary index violation - [
bc58df3
] Fix TSAN issue with sys_catalog in catalog manager - [
43c1146
] (#331) ENG-3407: Pick local transaction status tablet - [
25177f6
] Remove redundant delete from index table - [
9879ada
] #276: Bounded staleness for follower reads - [
c6e0c4d
] #322: Abort transaction on failed DML. - [
b8ddceb
] #322: Implement unique secondary index - [
7ccda6f
] #327: Fix missing null index column values. - [
642e0e7
] #325: Fix SEGV when creating an index with an unsupported index column datatype. - [
97f32b2
] #287: Fix occasional inconsistent read of data written in a distributed transaction - [
405396a
] #293: Use a separate RocksDB for provisional records - [
d0779bd
] #294: Tserver misses new master info in some cases. - [
9582136
] (#294) Fix tserver overwriting master address list in-memory. - [
1c3a235
] #311 Prefer local tserver, or tservers in the same zone when redis_allow_reads_from_followers is set - [
a855a96
] ENG-3378 cqlsh: "select * from system.transactions" crashes tserver. - [
de1a8f9
] (#303): Handle multiple updates to same column in SET expression appropriately. - [
c846c6c
] Support fine grained updates for JSON columns. - [
41f4982
] #310: Fixes for yb-ctl setup_redis wait and num_shards - [
25c75f4
] Add support of NTP clock to master - [
6287d0a
] ENG-3282: #313: Use HostPort in Proxy instead of Endpoint - [
03dc761
] ENG-2724 Strongly Typed Uuids - [
3146d18
] Implement transaction read restart - [
c2e0f20
] Add metric to track read requests requiring restart. - [
57d40c6
] #312 Fix handling of min value as token upper bound - [
3ac9146
] Add metric to track expired transactions. - [
103f074
] #307: Fix occasional "SetTransaction with non empty batcher" error when committing a distributed transaction - [
7bb3972
] ENG-3317: Fix issues with high concurrent transaction aborts because of write conflicts - [
99f0ae1
] #264 Implement blob conversion functions in YQL (simple data types). - [
4b450cd
] #238: Retry distributed transaction on conflicts - [
eddf548
] (#291) [YCQL] Aggregation functions headers - [
0be501d
] ENG-3293: implement secondary index workload - [
40d75b7
] Remove error logging and reduce pool overflow log rate. - [
5b4b4b4
] #296 Add the size_estimates system table to YCQL - [
9aca5e0
] Update Spark and Cassandra driver versions - [
4f1d848
] (#26) Implement CAST(expr as Typename) builtin function (especially for json) - [
2dfc031
] (#290): Add support for avg in YCQL - [
30c425f
] ENG-3213: Implement IsLeaderLoadBalanced RPC - [
9a13bde
] Remove ExecContext::Error overloaded APIs - [
1c011ea
] #277: Add metric to track distribute transaction conflicts - [
71f1d82
] Ensure json scalar strings don't require quotes. - [
28845be
] Fix some sample apps to honor the user specified table name. - [
49edf46
] Add custom numeric opcode to builtin function directory. - [
deb2fc5
] #282: Enhance master change config to remove a dead peer. - [
56803e3
] ENG-3184: Two read buffers per connection should not count towards the read buffer limit - [
5dae084
] Reduce rpc timeout defaults for redis - [
f619ccd
] ENG-3239. Remove repeated log. - [
94d19c0
] (#175) ENG 3108: Implement ZSCORE - [
5bfb330
] ENG-3217: Introduce interval for update consumption of root mem tracker - [
92ce6d0
] #260 Accept lowercase options expire_in expire_at. Improve the error messages when the absolute timestamp is incorrect - [
eb5b0f8
] #259 Fix inconsistencies in YCQL keyword list - [
5d48691
] #237: Fix transaction status leadership change - [
7bf8cbb
] (#163) Support fine grained selection of json attributes in CQL. - [
5cc9357
] (#162) Add support in doc...
v1.0.0 (May 01, 2018)
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
](https://github.co...
v0.9.8 (Mar 21, 2018)
Overview of changes
- Basic jsonb serialization and de-serialization to support a document datatype
- Lots of performance improvements
- Improved performance when running on 2 core machines with auto-tuning of various gflags
- Reduced lock contention
- Eliminated unnecessary memory copies
- YugaByte DB can now run on ZFS filesystem
- Initial secondary index read/write support
- Handling large requests in Redis and memory protection on violating max command size
Key commits
- [
cdf48e3
] Fix hybrid time going backwards because of logical component overflow - [
0bf401e
] Add RPC read buffers to MemTracker - [
451b7f8
] Misc client template simplifications - [
e27d429
] #103 Do not crash due to block size mismatch on ZFS - [
218ddcd
] Remove log spew from TabletServiceImpl::Read - [
956deb2
] #101 pick better auto-defaults for max number of compactions - [
28ca802
] Keep java client API to pass in number of tablets for redis table creation. - [
e321311
] Secondary index read/write - [
e463718
] Fix macOS build issue in physical_time.cc - [
f4a1c89
] Fix build in pg_server_main.cc - [
5a91590
] #1 Enable building on gcc 7 on Ubuntu 17.10 - [
6f9bdef
] Add version info to log file including build timestamp and git - [
f9bafcc
] New clock abstraction layer - [
2826097
] Change defaults on server side for some flags. - [
0440305
] Fix missing comma in ybctl for pgsql service display. - [
a18d393
] Remove number of tablets from redis table creation client APIs. - [
26f909e
] RPC support for processing commands from Postgresql clients. - [
40786a4
] #97: Fix for Fatal failure on scaling down kubernetes cluster - [
a60c81f
] Report the stored log entry header CRC in the CRC mismatch error message. - [
4c6baeb
] Remove semi-colon requirement after "begin transaction" plus misc code cleanup. - [
5104ad2
] #98: Remove pointer to TableReader from MultiLevelIndexReader - [
4327930
] Quick fix of SegFault during reads. - [
44640b0
] Avoid copying of QLValue and QLValuePB. - [
960f19f
] Do not print a failure message when remote bootstrap is started successfully - [
5b16cf1
] Send num shards parameter to master from yb-ctl. - [
c311ad3
] Master removal needs to remove yb-data contents for shell mode. - [
2726eac
] Resolving bug where the placement info that gets allocated to a master/tserver is off by one respect to the command line argument. - [
280fdc0
] Fix ScopedPendingOperation to return Status::Busy error when unavailable. - [
d16bc28
] Backoff exponentially for server too busy errors - [
e0b78dc
] Set upperbound for intent iterator in IntentAwareIterator. - [
7147469
] Miscellaneous test improvements, and better diagnostics before a fatal error in MvccManager::AddPending - [
6be69a8
] Handle case when read buffer is full and command is not fully transferred yet - [
72de5cb
] Put ValueType::kIntentPrefix's before all non-intent ValueTypes. - [
ed45995
] Handle dependencies for libraries in mac_library_packager.py - [
556f710
] TSAN Race Condition between Register and Load Balancer. - [
e2f4b9b
] Fix the increment of SQLProcessor_ExecuteRequest metric. - [
2871820
] #93 Fix trying to read ahead of the log while preparing peer request - [
b1d4d7f
] #90: Reduce lock contention in TabletInvoker::IsLocalCall - [
0250c13
] #88: Fix return value from XX and NX options - [
63363df
] Basic jsonb serialization and de-serialization code. - [
897a925
] #86: Accept lowercase options for SET - [
679b57b
] Fix bug timezone parsing for timestamp literals - [
4902d06
] Allow flushing all tablets of a given table
v0.9.7 (Mar 07, 2018)
Overview of changes
- Enables high data density by turning multi-level indexing on by default. This allows efficient queries even where there is a lot of data per node.
- Core performance fixes to run better on lightweight (2 vCPU) machines
- Better handling of huge io spikes. The scenario is having many more requests from the clients than what the database cluster can handle.
- Tuning the Redis query layer performance
Key commits
- [
a4498b4
] #88: Ensure we check TTL when we look up the type of a subdoc - [
beae94d
] Remove Scoped watch stack from outbound calls. Gflags for consensus log - [
abe90b1
] Make the appenders use a thread pool - [
6b33e8d
] Bundle yb-prof.py in the release package. - [
e94574c
] Change defaults for the number of concurrent tserver-to-master RPCs and Redis buffer size - [
e96545a
] Allow std::atomic usage with clang and libstdc++ - [
13724f5
] Remove unnecessary encoding and decoding from DocDB - [
b36c90e
] Spawn a shell master when adding a new master. - [
702d528
] Use multi-level indexes by default - [
72ffc21
] Fixing reactor-test: DelayedTask::AbortTask should still call the callback for tasks that have not been scheduled - [
c0c4c7b
] Add paging to table iterator to fix RaftConsensusITest.TestAutoCreateReplica
v0.9.6 (Mar 01, 2018)
Overview of changes
- Support for using Kubernetes style cnames in YugaByte CQL client natively! The sample applications can easily be run as a Kubernetes service now.
- Lots of perf fixes for running YugaByte on machines with large number of CPUs.
- Added built-in time functions such as now(), totimestamp(), tounixtimestamp() and unixtimestampof().
- Support for high-performance batch transaction codepath with intra-batch dependencies.
Key commits
- [
fadfd84
] Use a separate thread pool for consensus service - [
71fc829
] Initialize being_compacted to false - [
db55a6f
] Support Kubernetes style cname in YugaByteDB clients - [
c27f929
] Correct apply of repeated keys in txn - [
8ceaeb9
] Enable creating multiple outstanding pipelines per IO thread - [
699a58e
] Handle intra-dependency in batch request / transaction - [
39100f4
] Replace upgrade lock with shared_lock and unique_lock - [
f17b2a8
] Implementing now(), totimestamp(), tounixtimestamp() and unixtimestampof() functions for YQL. - [
024730e
] Use circular buffer for receive - [
c619be7
] Reserve the number of subkeys from ParseCollection - [
de6a268
] Handle intra-dependency in batch request / transaction - [
a26f8d2
] Need to remove the special tserver service queue sizes on "low-cpu" machines. - [
3857155
] Change distributed transaction test cases to test writing to the same hash / primary key in the same transaction. - [
99d4adb
] Group lookup tablet requests - [
0bd8878
] Set iterate_upper_bound to avoid seeking over deleted keys in RocksDB. - [
88cf84e
] Introduce limits for queued commands and don't drop connection on read buffer overflow - [
2250acb
] #59: Set GIT_DIR to /tmp when building AWS SDK so that it does not pick up YugaByte DB version as its own - [
b4a9b8e
] Reduce log spew for unavailable peer - [
0261099
] Make Redis read buffer size and number of concurrent master lookups in meta cache configurable - [
f3e9672
] Gflag for block cache num shards - [
b0553d9
] Porting nonredundant functionalities of local_cluster_ctl to yb-ctl. - [
dc6e2e2
] Log spew during tablet startup under load. - [
4ad88df
] system_redis.redis should not be counted as an user table - [
7302b1f
] Correct handling of failure to retry RPC command - [
f90a83f
] Fix TransactionManager destruction
0.9.5 (Feb 16, 2018)
Overview of changes
- Support for natively running YugaByte DB using Kubernetes StatefulSets! YugaByte DB now works in GKE as well.
- Distributed transactions supported at isolation level SNAPSHOT ISOLATION.
- HINCRBY support in Redis API.
- Defaults for CQL client driver switched to strong consistency.
- Lots of performance enhancements and fixes. Notably - lock free hybric clock implementation. New YugaByte perf report uploaded.
- Improved debuggability - added slow query logging for Redis.
- Overhauled the third party build system to make it more readable and easy to maintain.
Thanks
- @mchang31415 for reporting a number of perf issues.
- @praneeth-nimmagadda for reporting issues with the
COUNTER
datatype. - @nickhristov for pointing out that duplicate primary keys in a batch are not getting loaded
Key commits
- [
2150bee
] Added AWS C++ SDK 3rd party. - [
8d8030f
] Fix TransactionManager destruction - [
9546e7e
] Fix counter column datatype in system_schema.columns. - [
3074f56
] Allow multiple writes of the same row within a batch request. - [
8ee1288
] Update 3rd party version for mac - [
cfd54dd
] Periodic timers - [
2292067
] Implement HIncrBy - [
7a7421f
] Fix a CHECK failure due to handling of slow responses when looking for leader master - [
bed88c9
] Create cloud-machine-types-analysis.md - [
90ae07b
] Update yb-perf-0.9.5rc-Feb-13.md - [
ab9deaa
] Set defaults for read_pool_* flags - [
eb32648
] #51: Kubernetes cname only tries the first ip address on GKE (#53) - [
2dbd7e8
] Update yugabyte-statefulset.yaml - [
0c87387
] Fix master UI to show only running tables - [
c294304
] Capture by reference to avoid copies during HMGet - [
c6d2635
] High CPU usage in CleanWaitingConnections - [
d4fd22c
] Print slow queries for Redis. Similar to CQL - [
6488bfd
] Set GLOG flag so that we do not sync for WARNING messages - [
e230091
] Fix parsing of tcmalloc max thread cache bytes. - [
54121c0
] Added tests for ImportSnapshotMeta. - [
072595a
] Update Cassandra Java driver versions to use default YB_STRONG consistency level. - [
c62d02a
] Make HybridClock Now/Update lock-free - [
4fa3118
] Parallelize reads for Redis ops in the same TabletService::Read request - [
8cd931c
] Increase tcmalloc local thread cache size for tservers. - [
3ef0019
] Reuse iterator for Redis Operations - [
dfb16c9
] Prevent core dumps for LOG(FATAL) and CHECK. - [
07ffec9
] Fix QLTabletTest.SkewedClocks and other safe time logic in MvccManager - [
58c97d3
] Change YQL transaction isolation level to SNAPSHOT_ISOLATON.