Skip to content

Releases: yugabyte/yugabyte-db

v1.2.0 (Mar 12, 2019)

13 Mar 16:33
Compare
Choose a tag to compare

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...
Read more

v1.1.0 (Sep 17, 2018)

19 Sep 23:35
Compare
Choose a tag to compare

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...
Read more

v1.0.5 (Jul 27, 2018)

17 Aug 04:52
Compare
Choose a tag to compare

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)

18 Jul 05:05
Compare
Choose a tag to compare

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...
Read more

v1.0.0 (May 01, 2018)

04 May 04:43
Compare
Choose a tag to compare

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...
Read more

v0.9.8 (Mar 21, 2018)

21 Mar 21:27
Compare
Choose a tag to compare
v0.9.8 (Mar 21, 2018) Pre-release
Pre-release

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)

21 Mar 19:35
Compare
Choose a tag to compare
v0.9.7 (Mar 07, 2018) Pre-release
Pre-release

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)

09 Mar 22:55
Compare
Choose a tag to compare
v0.9.6 (Mar 01, 2018) Pre-release
Pre-release

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)

22 Feb 00:35
Compare
Choose a tag to compare
0.9.5 (Feb 16, 2018) Pre-release
Pre-release

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

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.