YugabyteDB - the cloud native distributed SQL database for mission-critical applications.
OTHER License
Bot releases are visible (Hide)
Published by stevebang over 4 years ago
YugabyteDB now supports distributed backup and restore of YSQL databases, including backup of all tables in a database. #1139 and #3849
CREATE INDEX
statement to enable building these indexes in an online manner, without requiring downtime. For details on how the online backfill of indexes works, see the Online Index Backfill design document.yb-tserver
--ysql_disable_index_backfill
flag to false
when starting YB-TServers. For details on how this works, see Online Index Backfill.Database-level colocation for YSQL, which started as a beta feature in the 2.1 release, is now generally available in the 2.2 release. Traditional RDBMS modeling of parent-child relationships as foreign key constraints can lead to high-latency JOIN
queries in a geo-distributed SQL database. This is because the tablets (or shards) containing the child rows might be hosted in nodes, availability zones, and regions different from the tablets containing the parent rows. By using colocated tables, you can let a single tablet be shared across all tables. Colocation can also be at the overall database level, where all tables of a single database are located in the same tablet and managed by the same Raft group. Note that tables that you do not want to reside in the overall database’s tablet because of the expectation of large data volume can override the feature at table creation time and hence get independent tablets for themselves.
What happens when the “colocation” tablet containing all the tables of a database becomes too large and starts impacting performance? Check out automatic tablet splitting [BETA].
Foreign keys in YSQL now support the DEFERRABLE INITIALLY IMMEDIATE and DEFERRABLE INITIALLY DEFERRED clauses. Work on deferring additional constraints, including those for primary keys, is in progress.
Application developers often declare constraints that their data must obey, leaving it to relational databases to enforce the rules. The end result is simpler application logic, lower error probability, and higher developer productivity. Automatic constraint enforcement is a powerful feature that should be leveraged whenever possible. There are times, however, when you need to temporarily defer enforcement. An example is during the data load of a relational schema where there are cyclic foreign key dependencies. Data migration tools usually defer the enforcement of foreign key dependencies to the end of a transaction by which data for all foreign keys would ideally be present. This should also allow YSQL to power Django apps.
The yugabyted
server is now out of beta for single-node deployments. New users can start using YugabyteDB without needing to understand the underlying architectures acts as a parent server, reducing the need to understand data management by YB-TServers and metadata management by YB-Masters.
See it in action by following the updated Quick start. For details, see yugabyted
in the Reference section.
yb-master
--tablet_split_size_threshold_bytes
flag to specify the size when tablets should split.New results are now available for benchmarking the performance of the YSQL API using the TPC-C suite. For the new TPC-C results and details on performing your own benchmark tests to evaluate YugabyteDB, see TPC-C.
SELECT
statements that involve null pushdown on system tables. #4685
yb-tserver
--ysql_log_min_duration_statement
. #4817
yb-admin list_tables
command with optional flags for listing tables with database type (include_db_type
), table ID (include_table_id
), and table type (include_table_type
). This command replaces the deprecated yb-admin list_tables_with_db_types
command. #4546
ALTER TABLE
on colocated tables. #4293
CREATE TABLE
with unique column constraint). Skip index backfill for unsupported statements, including DROP INDEX
, CREATE UNIQUE INDEX ON
, and index create in postgres nested DDL. [#4918]incomplete startup packet
messages in YSQL logs. #4813
YugabyteDB supports distributed backup and restore of YCQL databases and tables. #1139 and #3849
yb-tserver
--ycql_disable_index_backfill
flag to false
when starting YB-TServers. Note: Do not use this flag in a production cluster yet. For details on how online index backfill works, see Online Index Backfill #2301 and #4708
Most applications have a need to frequently evolve the database schema, while simultaneously ensuring zero downtime during those schema change operations. Therefore, there is a need for schema migrations (which involve DDL operations) to be safely run in a concurrent and online manner alongside foreground client operations. In case of a failure, the schema change should be rolled back and not leave the database in a partially modified state. With the 2.2 release, not only the overall DocDB framework for supporting such schema changes in an online and safe manner has been introduced but also this feature is now available in beta in the context of YCQL using the ALTER TABLE
statement.
yb-master
--tablet_split_size_threshold_bytes
flag to specify the size when tablets should split.throttle_cql_calls_on_soft_memory_limit
and throttle_cql_calls_policy
can be used to control it. #4973
<web>/api/v1/masters
: Returns all master statuses.<web>/api/v1/is-leader
: Returns 200 OK
response status code when the master is a leader and 503 Service Unavailable
when the master is not a leader./api/v1/cluster-config
for YB-Master to return the current cluster configuration in JSON format. #4748
yb-admin get_universe_config
command is now in JSON format for easier parsing. [#4589](#1462
yugabyted destroy
command. [#3872](#3849
yb-admin list_snapshots
command to use not_show_restored
option to exclude fully RESTORED entries. #4351
yb-admin master_leader_stepdown
, specifying a new leader is now optional. #4722
yb-admin
from logging harmless "Failed to schedule invoking callback on response" warning. #4131
yugabyted
--bind_ip
flag renamed to --listen
. #4960
async_replication_sent_lag_micros
(last applied time on producer - last polled for record) and async_replication_committed_lag_micros
(last applied time on producer - last applied time on consumer) for 2DC replication and export to Prometheus. #2154
AccessKeyId
and SecretAccessKey
and set these in the configuration so that data nodes inherit the required IAM permissions to access S3. #3451 and #4900
AccessKeyId
and SecretAccessKey
and set these in the configuration so that data nodes inherit the required IAM permissions to access S3. #4900
Note:
Prior to version 2.0, YSQL was still in beta. As a result, the 2.0 release included a backward-incompatible file format change for YSQL. If you have an existing cluster running releases earlier than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0+. Export from your existing cluster and then import it into a new cluster (v2.0 or later) to use existing data.
Published by stevebang over 4 years ago
SPLIT INTO
clause for CREATE INDEX
statement. #3047
ninja
. #4474
IS NULL
condition to DocDB. #4499
SELECT <aggregate>(<const>)
, for example, SELECT COUNT(1)
, to DocDB. #4276
cqlsh
to ycqlsh
. #3935
3.8.0-yb-4
and adds support for guava
26 or later. The latest release of the driver is available in the Yugabyte cassandra-java-driver
repository. #3897
CassandraSecondaryIndex
workload resolved. #4401
yb-admin import_snapshot
support for renaming a few tables (not all), but the specified name is equal to the old table name: yb-admin import_snapshot <meta-file> ks old_table_name
. #4280
Enum
value from JSON
to JSONB
to allow schema creation to succeed programmatically involving JSON column types and update the cassandra-java-driver
to 3.8.0-yb-5
. #4481
<tserver-ip>:13000/rpcz
. #4418
= NULL
condition to DocDB. #4499
yugabyted
, do not start redis
server by default. Resolves port conflict during startup. #4057
yb-admin
command get_load_balancer_state
to get the cluster load balancer state. #4509
yb-master
for running in low-memory setups (<=4 GB
). #3742
yb-tserver
crashes or is restarted while performing a snapshot operation. #4352
yb-admin master_leader_stepdown
command. #4135
yb-ts-cli
commands, flush_all_tablets
and flush_tablet <tablet_id>
, to flush tablets. When used with rolling restarts, less time is spent applying WAL records to rocksdb. #2785
yb-master
rerunning snapshot operations after upgrade. #4816
change_metadata_operation
. Use atomic<P*> to avoid race betweenFinish()
and ToString
from updating or accessing request. #3912
RaftGroupMetadata
to avoid keeping unnecessary TableInfo
objects in memory. #4354
ops
, avg latency
, and P99 latency
.ops
and avg latency
.server.conf
file. #4341
QLTableRow
representation. #4427
CDCServiceTxnTest.TestGetChangesForPendingTransaction
. #4544
Note:
Prior to version 2.0, YSQL was still in beta. As a result, the 2.0 release included a backward-incompatible file format change for YSQL. If you have an existing cluster running releases earlier than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0+. Export from your existing cluster and then import it into a new cluster (v2.0 or later) to use existing data.
Published by stevebang over 4 years ago
SPLIT INTO
clause for CREATE INDEX
statement. #3047
ninja
. #4474
IS NULL
condition to DocDB. #4499
cqlsh
to ycqlsh
. #3935
3.8.0-yb-4
and adds support for guava
26 or later. The latest release of the driver is available in the Yugabyte cassandra-java-driver
repository. #3897
CassandraSecondaryIndex
workload resolved. #4401
yb-admin import_snapshot
support for renaming a few tables (not all), but the specified name is equal to the old table name: yb-admin import_snapshot <meta-file> ks old_table_name
. #4280
Enum
value from JSON
to JSONB
to allow schema creation to succeed programmatically involving JSON column types and update the cassandra-java-driver
to 3.8.0-yb-5
. #4481
<tserver-ip>:13000/rpcz
. #4418
= NULL
condition to DocDB. #4499
yugabyted
, do not start redis
server by default. Resolves port conflict during startup. #4057
yb-admin
command get_load_balancer_state
to get the cluster load balancer state. #4509
yb-master
for running in low-memory setups (<=4 GB
). #3742
yb-admin master_leader_stepdown
command. #4135
yb-ts-cli
commands, flush_all_tablets
and flush_tablet <tablet_id>
, to flush tablets. When used with rolling restarts, less time is spent applying WAL records to rocksdb. #2785
change_metadata_operation
. Use atomic<P*> to avoid race betweenFinish()
and ToString
from updating or accessing request. #3912
RaftGroupMetadata
to avoid keeping unnecessary TableInfo
objects in memory. #4354
ops
, avg latency
, and P99 latency
.ops
and avg latency
.server.conf
file. #4341
QLTableRow
representation. #4427
CDCServiceTxnTest.TestGetChangesForPendingTransaction
. #4544
Note:
Prior to version 2.0, YSQL was still in beta. As a result, the 2.0 release included a backward-incompatible file format change for YSQL. If you have an existing cluster running releases earlier than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0+. Export from your existing cluster and then import into a new cluster (v2.0 or later) to use existing data.
Published by stevebang over 4 years ago
tserver
to finish creating the transaction
table during the initial cluster startup (when the transaction table is first created) before before issuing requests that require it to exist. This was more likely an issue for CI/CD, where requests can be issued immediately. Most users would not encounter this issue. #4056
CREATE DATABASE
statements, improves fault tolerance by making CREATE API requests asynchronously and adds a state machine on namespaces to be the authority for processing these modifications. #3097
process_running_for_ms
), in milliseconds (ms), on <tserver_ip>:13000/rpcz
endpoint. #4382
system.peers_v2
table to be readable for cassandra-driver-core:3.8.0-yb-2-RC1
so that expected errors are returned to the driver. #4309
--enable_consensus_exponential_backoff
flag (enabled by default) to false
. #4042
SELECT COUNT(*)
has improved by 66%. #4277
server.conf
file is now being updated with the new master_addresses
. #4242
Note: Prior to 2.0, YSQL was still in beta. As a result, 2.0 release includes a backward-incompatible file format change for YSQL. This means that if you have an existing cluster running releases older than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0+. Export from old cluster and import into a new 2.0+ cluster is needed for using existing data.
Published by rao-vasireddy over 4 years ago
CREATE TABLE
statement now supports the SPLIT AT VALUES
clause. #1486
EXECUTE
statement if the prepared statement is SELECT
. #4205
yb-admin
commands now use table ID instead of table names. #1687
DROP INDEX
statement now ignores index backfill.DROP INDEX
statement now ignores DocDB NotFound
errors when it doesn't have table metadata, but postgres does. #4249
boundParams
to be sent for creation and execution. #4219
scanspec
for range partitioned tables using condition expression. #4033
yb-master
(in edit and add node), update master addresses correctly in yb-master
and yb-tserver
configuration files. #3636, #4242, and #4245
yb-admin import_snapshot
to return an error if there are less new table names than backed up tables. For example, if you rename only two of three tables, an error will be generated.yb-admin restore_snapshot
and yb-admin list_snapshot
to output restoration-id
(useful for verifying completed restorations).yb-admin import_snapshot
renaming only a few tables (but not all), but keeping the specified table name the same as the old table name. #4280
table_flush_timeout
in the yb-admin create_snapshot
command.yb-admin get_is_load_balancer_idle
if load balancer is busy. [#3949]yb-tserver
/utilz
endpoint page to display "Live Ops" instead of "RPCs" and add YSQL statements link #4106
yb-ts-cli
(adds --certs_dir_name
flag) for sending secure RPC requests to the servers. #2877
yb-ctl
failing when passing vmodule
in --master_flags
. #4234
yugabyte-client
package now includes a share
folder (containing .sql
files) for use by Yugabyte Cloud and other remote client users. #4264
yb_platform_backup.sh
script. #4208
yb_backup.py
to use the yb-admin
changes for backup-related changes for snapshot (see System improvements above).yb_backup.py
script.smtpData
(smtpServer
, smtpPort
, emailFrom
, smtpUsername
, smtpPassword
, useSSL
, and useTLS
). #4201
server.conf
for master. #4089
Prior to 2.0, YSQL was still in beta. As a result, 2.0 release includes a backward incompatible file format change for YSQL. This means that if you have an existing cluster running releases older than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0+. Export from old cluster and import into a new 2.0+ cluster is needed for using existing data.
Published by rao-vasireddy over 4 years ago
Prior to 2.0, YSQL was still in beta. As a result, 2.0 release includes a backward incompatible file format change for YSQL. This means that if you have an existing cluster running releases older than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0+. Export from old cluster and import into a new 2.0+ cluster is needed for using existing data.
Published by rao-vasireddy over 4 years ago
subnetId
requirement when specifying a VPC when creating GCP provider.Prior to 2.0, YSQL was still in beta. As a result, 2.0 release includes a backward incompatible file format change for YSQL. This means that if you have an existing cluster running releases older than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0+. Export from old cluster and import into a new 2.0+ cluster is needed for using existing data.
Published by rao-vasireddy over 4 years ago
Prior to 2.0, YSQL was still in beta. As a result, 2.0 release includes a backward incompatible file format change for YSQL. This means that if you have an existing cluster running releases older than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0+. Export from old cluster and import into a new 2.0+ cluster is needed for using existing data.
Published by rao-vasireddy over 4 years ago
Prior to 2.0, YSQL was still in beta. As a result, 2.0 release includes a backward incompatible file format change for YSQL. This means that if you have an existing cluster running releases older than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0+. Export from old cluster and import into a new 2.0+ cluster is needed for using existing data.
Published by rao-vasireddy over 4 years ago
We are excited to announce the general availability of YugabyteDB 2.1 release.
The blog posts below detail the features highlighted in the release notes on this page.
Performance improvements in Yugabyte SQL
Geo-distributed, multi-cloud clusters
Enterprise-grade security enhancements
[YSQL] Fix table location cache for system and colocated tables. #3416
[YSQL] Enable ALTER TABLE IF EXISTS syntax. #3417
[YSQL] Use std::future in PgDocOp to fetch RPC result. #3240
[YSQL] Cleanup unique index if its creation fails. #3462
[YSQL] Eliminate redundant foreign key checks. #3328
[YSQL] Batch all write operations when possible. #2934
[YSQL] allow CREATE DATABASE ENCODING unicode/utf8 #3595
[YSQL] Fixed test wrong assumption in yb_dml_systable_scan.
[YSQL] Use smart pointers for YBqlOp and YBPgsqlOp. #3641
[YSQL] Provide a GFLAG to suppress unsupported error. #3633
[YCQL] Add gflag to create YCQL tables as transactional by default; change GROUP from reserved word to keyword; fix duplicate column error message. #3313
[YCQL] Fixed unexpected 'Duplicate Object' error from the CatalogManager. #2475
[YCQL] Fixed: signal 11: seg fault: yb::ql::PreparedResult::PreparedResult. #3415
[YCQL] Application stuck in BoundStatement execution if a variable was not bound. #3419
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
[Colocation] 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
Added 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
[cdc] 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
[CDC] Clean up cdc_state rows for deleted streams. #2529
yugabyted does not start with custom config file. #3634
[2DC] 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
YW Alerting improvements. #2892
Add the 'snooze alerts status' of a universe to the health check panel. #2891
Added 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
[YW][#3211] Add ESC key binding to document to close any modal on the screen by calling the onHide callback.#3211
[YW][#3332] Add default value for currentProvider and fix eslint warnings. #3332
[YW][#3680] Enable multi-table backups in CreateBackups modal. #3680
Add authentication for registering new users.
[YW][OSS] 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
Published by rao-vasireddy over 4 years ago
assign_public_ip
through properly when creating GCP instance. #3386
Version 2.0 release includes a backward incompatible file format change for YSQL. Note: Prior to 2.0, YSQL was still in beta. This means that if you have an existing cluster running releases older than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0 or higher release.
There are two ways to address the above note.
Published by rao-vasireddy almost 5 years ago
[YW] Fix infinitely updating state causing React to fail. Reason is calling setState repeatedly in componentDidUpdate will create an infinite depth nested state update.
Version 2.0 release includes a backward incompatible file format change for YSQL. Note: Prior to 2.0, YSQL was still in beta. This means that if you have an existing cluster running releases older than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0 or higher release.
There are two ways to address the above note.
Published by rao-vasireddy almost 5 years ago
Version 2.0 release includes a backward incompatible file format change for YSQL. Note: Prior to 2.0, YSQL was still in beta. This means that if you have an existing cluster running releases older than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0 or higher release.
There are two ways to address the above note.
Published by rao-vasireddy almost 5 years ago
Version 2.0 release includes a backward incompatible file format change for YSQL. Note: Prior to 2.0, YSQL was still in beta. This means that if you have an existing cluster running releases older than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0 or higher release.
There are two ways to address the above note.
Published by rao-vasireddy almost 5 years ago
Version 2.0 release includes a backward incompatible file format change for YSQL. Note: Prior to 2.0, YSQL was still in beta. This means that if you have an existing cluster running releases older than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0 or higher release.
There are two ways to address the above note.
Published by rao-vasireddy almost 5 years ago
Version 2.0 release includes a backward incompatible file format change for YSQL. Note: Prior to 2.0, YSQL was still in beta. This means that if you have an existing cluster running releases older than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0 or higher release.
There are two ways to address the above note.
Published by rao-vasireddy almost 5 years ago
Version 2.0 release includes a backward incompatible file format change for YSQL. Note: Prior to 2.0, YSQL was still in beta. This means that if you have an existing cluster running releases older than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0 or higher release.
There are two ways to address the above note.
Published by rao-vasireddy almost 5 years ago
SERIALIZABLE
isolation)#1199
Version 2.0 release includes a backward incompatible file format change for YSQL. Note: Prior to 2.0, YSQL was still in beta. This means that if you have an existing cluster running releases older than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0 or higher release.
There are two ways to address the above note.
Published by rao-vasireddy about 5 years ago
Version 2.0 release includes a backward incompatible file format change for YSQL. Note: Prior to 2.0, YSQL was still in beta. This means that if you have an existing cluster running releases older than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0 or higher release.
There are two ways to address the above note.
Published by rao-vasireddy about 5 years ago
Version 2.0 release includes a backward incompatible file format change for YSQL. Note: Prior to 2.0, YSQL was still in beta. This means that if you have an existing cluster running releases older than 2.0 with YSQL enabled, then you will not be able to upgrade to version 2.0 or higher release.
There are two ways to address the above note.