What’s New and Improved in YugabyteDB Docs – August 2020
Welcome to this month’s edition of what’s new and improved in YugabyteDB Docs. We’re continually adding to and updating the documentation to give you the information you need to make the most out of YugabyteDB. This post covers recent content added, and changes made, to the YugabyteDB documentation since the last posting.
Before we dive into the details, a reminder that YugabyteDB provides two distributed SQL APIs on top of DocDB, a common distributed document store built with inspiration from Google Spanner. The end result is a SQL database that is resilient, scalable, and geo-distributed.
- Yugabyte Structured Query Language (YSQL) is a fully-relational, PostgreSQL-compatible API.
- Yugabyte Cloud Query Language (YCQL) is a semi-relational API with document data modeling and has its roots in the Apache Cassandra Query Language (CQL).
YSQL
Develop apps
Client drivers
The new client drivers for YSQL API page lists supported client drivers (by programming language) that can be used to connect to and interact with the YSQL API.
Deferred constraints on foreign keys
Starting in YugabyteDB 2.2, you can mark foreign key constraints as `DEFERRABLE INITIALLY IMMEDIATE` and `INITIALLY DEFERRED`. For details, see the updated Deferrable constraints page.
Window functions
The new Window functions section includes important information for developers on window functions supported in YSQL and how to use them. Here are the topics included in this section:
Benchmark using TPC-C
The updated Benchmark YugabyteDB using TPC-C page includes steps for you to benchmark the scaling performance (from 10 to 10,000 warehouses) of YugabyteDB YSQL running `oltpbench` with the TPC-C workload. For comparison, new results from in-house benchmarking are included.
Manage database clusters
Transactional distributed backup and restore
The new YSQL snapshot and restore page covers the steps to create a backup of your distributed YSQL databases and to restore to recover from disasters or user errors.
Online index backfills
Based on functionality added in YugabyteDB 2.2, the following new documentation covers how you can build indexes on non-empty tables while online, without failing other concurrent writes:- Online index backfill: Design document added to the GitHub repository.
- –ysql_disable_index_backfill: YB-TServer flag to enable or disable online index backfilling.
Tablet splitting – pre-splitting, manual, and automatic
Starting in YugabyteDB 2.2, you can use both manual and automatic tablet splitting (BETA) to reshard your data by changing the number of tablets at runtime. Additionally, you can pre-split the table into a specific number of tablets at table creation time using SQL syntax.Here is the new and updated tablet splitting documentation for YSQL:
- Automatic re-sharding of data with tablet splitting: New architecture design document in the GitHub repository.
- Tablet splitting: Updated architecture page to cover three mechanisms for tablet splitting, including presplitting, manual tablet splitting (BETA), and automatic tablet splitting (BETA).
- –tablet_split_size_threshold_bytes: New YB-Master flag for enabling tablets to automatically split while online, based on the specified tablet threshold size.
- yb-admin split_tablet: For a hash-partitioned tablet, split the tablet, computing the split point as the middle of the tablet’s partition range.
- CREATE TABLE…SPLIT INTO: For a hash-sharded table, specify the number of tablets to be created for the table. For an example, see Create a table specifying the number of tablets.
- CREATE TABLE…SPLIT AT VALUES (BETA): For a range-partitioned table, set split points to pre-split into tablets at table creation time.
- CREATE INDEX…SPLIT INTO: Supports specifying the number of tablets to be created for range-partitioned indexes. For an example, see Create an index specifying the number of tablets.
Track slow queries
To help you track down unoptimized, or “slow” queries, see the documentation added for the new YB-TServer –ysql_log_min_duration_statement flag.
YCQL
Develop apps
Client drivers
The new client drivers for YCQL API page lists supported client drivers (by programming language) that can be used to connect to and interact with the YCQL API.
Manage database clusters
Transactional distributed backup and restore
The updated YCQL snapshot and restore page covers the steps to create a transactional backup of your YCQL tables (including associated secondary indexes) and to restore for disaster recovery.
Online index backfills
Based on functionality added in YugabyteDB 2.2, the following new documentation covers how you can build indexes on non-empty tables while online, without failing other concurrent writes:- Online index backfill: Architecture design document added to the GitHub repository.
- –ycql_disable_index_backfill: YB-TServer flag to enable or disable online index backfilling.
Tablet splitting – pre-splitting, manual, and automatic
Starting in YugabyteDB 2.2, you can use automatic tablet splitting (BETA) to reshard your data by changing the number of tablets at runtime. Here is the new and updated tablet splitting documentation for YCQL:- Automatic re-sharding of data with tablet splitting: New architecture design document in the GitHub repository.
- Tablet splitting: Updated architecture page to cover three mechanisms for tablet splitting, including pre-splitting, manual tablet splitting, and automatic tablet splitting.
- –tablet_split_size_threshold_bytes: New YB-Master flag for enabling tablets to automatically split while online, based on the specified tablet threshold size.
- yb-admin split_tablet: For a hash-partitioned tablet, split the tablet, computing the split point as the middle of the tablet’s partition range.
- CREATE TABLE…WITH tablets: For a range-partitioned table, specify the number of tablets for a table, For an example, see Create a table specifying the number of tablets.
DocDB
These features are in the DocDB layer and as a result are common across both the distributed SQL APIs.
yugabyted parent server
The new yugabyted server acts as a parent server across YB-TServer and YB-Master that allows users to get started without knowing the underlying architecture. To see it in action, follow the updated Quick start.
What’s Next?
To help you learn and use YugabyteDB effectively and to get you the answers you need, we constantly update and add new topics to the YugabyteDB documentation. Here are a few ways you can contribute:
- File GitHub issues for the docs. If you discover missing information, incorrect information, unclear explanations, or have new topics you’d like to see, click New issue and add the “area/documentation” label.
- Contribute to the YugabyteDB docs. Share your knowledge and lessons learned with the Yugabyte by contributing to the YugabyteDB Docs. You will get recognition and rewards for your efforts as part of our recently launched Community Heroes program.
- Ask questions and share answers in our Slack community. Your questions in the yugabyte-db Slack community are seen by fellow members and contributors who are there to help you move forward. Additionally, we routinely create new documentation pages based on topics that are of interest to Slack community users.