YugabyteDB Engineering Update – Feb 28, 2020

Jimmy Guerrero

VP Developer Relations

We are excited to announce that YugabyteDB 2.1 went GA earlier this week! You can read the official release notes here. This release shipped with almost 70 new enhancements and fixes.

What’s YugabyteDB? It is an open source, high-performance distributed SQL database built on a scalable and fault-tolerant design inspired by Google Spanner. Yugabyte’s SQL API (YSQL) is PostgreSQL wire compatible.

Highlights of this release include:

Generally Available Features

Geo-distributed, multi-cloud clusters

Performance improvements in Yugabyte SQL

  • YCSB – 10x gain since 2.0 release
  • TPC-C – first release to run the full TPC-C suite

Enterprise-grade security enhancements

Beta Features

New & Improved Ecosystem Integrations Since Release 2.0

For more information on what’s new, check out the 2.1 announcement blog and the complementary performance optimizations post. Below is a listing of what shipped in 2.1.

YSQL API

  • Fix table location cache for system and colocated tables. #3416
  • Enable ALTER TABLE IF EXISTS syntax. #3417
  • Use std::future in PgDocOp to fetch RPC result. #3240
  • Clean up unique index if its creation fails. #3462
  • Eliminate redundant foreign key checks. #3328
  • Batch all write operations when possible. #2934
  • Allow CREATE DATABASE ENCODING unicode/utf8. #3595
  • Fixed test wrong assumption in yb_dml_systable_scan.
  • Use smart pointers for YBqlOp and YBPgsqlOp. #3641
  • Provide a GFLAG to suppress unsupported error. #3633

YCQL API

  • Add gflag to create YCQL tables as transactional by default; change GROUP from reserved word to keyword; fix duplicate column error message. #3313
  • Fix unexpected ‘Duplicate Object’ error from the CatalogManager. #2475
  • Fix signal 11: seg fault: yb::ql::PreparedResult::PreparedResult. #3415
  • Application stuck in BoundStatement execution if a variable was not bound. #3419
  • DocDB distributed store
  • Set the default history retention duration to 120 seconds. #3373
  • Fix metrics error after resetting percentiles. #3362
  • Extract classes from transaction_participant.cc to separate files. #1032
  • Recover after write stop. #3331
  • Fix issue with yugabyted process restart loop. #3207
  • Track replicated batches at transaction participant. #3220
  • Backfill Index Table. #448
  • Use 4 byte PG table ID as DocKey prefix. #3365
  • YB inbound RPCs throttling on soft memory limit. #2563
  • BlockBasedMemory mem-trackers should use the “tablet” MetricsEntity instead of “servers”. #3364
  • Mean for metrics histograms should be based on the current values, not historic values. #3470
  • Make yugabyted work with Docker volume mounts. #3513
  • Add Graph to track Rocksdb write rejections. #2871>
  • Fsync before WAL close. #3490
  • Enable percentiles for redis metrics. #3362
  • BlockBasedMemory mem-trackers may already exist in OpenKeyValueTablet. #3364
  • Avoid race condition with CDCReadRpc. #3441
  • Call TransactionParticipant shutdown from Tablet shutdown. #3495
  • Point yugabyted to system conf file if present. #3169
  • Backfill Index Table – TServer side implementation for backfilling non-unique indices. #448
  • Colocation: make reads aware of table tombstone #3359
  • Add ability to set hybrid time filter to existing rocksdb files. #1032
  • Server crash on startup after table truncate. #3524
  • Move all yugabyted modified data under central var dir. #3524
  • Add physical time to cdc_state table. #2837
  • docdb: iterate over intents past kTransactionId. #3482
  • Prevent callback from detached rocksdb instance; prevent race condition between insert and truncate; disable rocksdb flush on truncate. #3288
  • Persist cdc min replicated index in the superblock. #3418
  • Clean up cdc_state rows for deleted streams. #2529
  • yugabyted does not start with custom config file. #3634
  • Create new BootstrapProducer API. #3319
  • Fix key processing on CDCProducer. #3582
  • Make yb-docker-ctl compatible with python3.
  • Backfill index: handle failed master -> TS rpc. #3627
  • [cdc] Add Last Consumer Checkpoint to CDC Producer Metrics. #2154
  • Evict log cache at follower after operation was appended to log. #3665
  • Implement transaction sealing w/o abort. #3220
  • [Colocated] Master should issue AddTableToTable only for subsequent tables. #3681
  • Extract HeartbeatDataProvider from Heartbeater. #3571
  • Avoid sending apply intents from the follower. #3698

Yugabyte Platform

  • YW Alerting improvements. #2892
  • Add the ‘snooze alerts status’ of a universe to the health check panel. #2891
  • Add UI support to be able to snooze and enable alerts. #2891
  • Add toggle to take backup button. #3341
  • Redirect yugaware logs from yugabyted into yugabyte-logs dir. #3516
  • Add features for the read only user.
  • Add endpoint to support creation of user roles in YB database(s).
  • Add ability to specify list of tables to backup. #3614
  • Fix metrics url check. #3653
  • Do not merge flags during a gflag update. #3533
  • Add option to add, delete users.
  • Add ESC key binding to document to close any modal on the screen by calling the onHide callback. #3211
  • Add default value for currentProvider and fix eslint warnings. #3332
  • Enable multi-table backups in CreateBackups modal. #3680
  • Add authentication for registering new users.
  • Add support to disable the Enable/Disable Backup button on the Tables tab, and change color of disabled TableActions.
  • Handle overall exceptions in a better way. #3676

New Documentation, Blogs, Tutorials, and Videos

New Blogs

New Videos

New and Updated Docs

Yugabyte Cloud Docs, including the following pages

Upcoming Conferences

We Are Hiring!

Yugabyte is growing fast and we’d like you to help us keep the momentum going! Check out our currently open positions:

Our team consists of domain experts from leading software companies such as Facebook, Oracle, Nutanix, Google, and LinkedIn. We have come a long way in a short time but we cannot rest on our past accomplishments. We need your ideas and skills to make us better at every function that is necessary to create the next great software company. All while having tons of fun and blazing new trails!

Get Started

Ready to start exploring YugabyteDB features? Getting up and running locally on your laptop is fast. Visit our quickstart page to get started.

High performance distributed SQL by Yugabyte

What’s Next?

  • Compare YugabyteDB in depth to databases like CockroachDB, Google Cloud Spanner and MongoDB.
  • Get started with YugabyteDB on macOS, Linux, Docker and Kubernetes.
  • Contact us to learn more about licensing, pricing or to schedule a technical overview.
Jimmy Guerrero

VP Developer Relations

Related Posts

Explore Distributed SQL and YugabyteDB in Depth

Discover the future of data management.
Learn at Yugabyte University
Get Started
Browse Yugabyte Docs
Explore docs
PostgreSQL For Cloud Native World
Read for Free