Skip to content

Releases: yugabyte/yugabyte-db

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.