Releases: vitessio/vitess
Releases · vitessio/vitess
Vitess v2.0.0-beta.2
Changes since v2.0.0-beta.1
Client Libraries
- JDBC-compatible wrapper
- Contributed by Flipkart
- See JDBC Example
- Update Java client to better match semantics of JDBC ResultSet
- Java: Synchronous client wrapper
- To simplify and enforce proper usage of Java client in blocking mode.
- Java: Support more bind variable types
- Python: Always use colon style for bind variables
- Removes extra translation layer for
%
formatting from Python client. - This makes the bind variable style consistent across all Vitess clients.
- See local example client changes
- Removes extra translation layer for
SQL Support
- Phase 2 of VTGate V3 API
- Can now route more complex queries.
- Can perform cross-shard joins.
- See phase 2 of V3 design for what is now supported.
- Cross-shard sequences
- Note that NEXT is now a reserved word, and must be back-quoted if used as a column name.
- Support INTERVAL construct
- Support keyspace-qualified names
- i.e.
SELECT * FROM keyspace.table
, analogous todb.table
outside Vitess.
- i.e.
- Support STRAIGHT_JOIN and UNION DISTINCT SELECT
Resharding
- Support merging shards
- Support resharding tables with no keyspace_id column
- As long as there is a VSchema that allows Vitess to compute the keyspace_id.
- SplitDiff: support custom sharding column name
Deployment and Management
- Configure SSL and authentication for gRPC
- See Transport Security Model docs.
- VTGate watches for VSchema updates and refreshes automatically
- V3: Allow duplicate table names in vschema
- As long as they're in different keyspaces.
- V3: Simplify VSchema
- Removed deprecated gorpc-based protocols
- All protocols are now based on gRPC.
- Ceph Backup Storage Plugin
- Contributed by Flipkart
Build Dependencies
Analysis
Vitess v2.0.0-beta.1
Changes since v2.0.0-alpha5
Client Libraries
- VTGateV3 Go driver
can now also support certain types of VTGateV2 queries - Publish PHP client to Packagist
- Refactor PHP client for better standards compliance
- PHP client returns associative array rows
- Java client is asynchronous by default
- Java client now returns 0 when converting SQL NULL to primitive types
- Python client now defaults to gRPC
- More sample clients for examples/local
Query Service
- query.proto revamp
- Fix NULL handling in new proto3-based query result format.
- Unify type system for bind variables and query results.
- query_rules improvements
- Improved JSON syntax for bindvar constraints.
- Debug URL for viewing rule sets.
- Support REGEXP and RLIKE in
SQL parser
Build Dependencies
- Default ZooKeeper version upgraded
from 3.3.5 to 3.4.6. - Update to gRPC 0.13
- Support building on OS X
Deployment and Management
- Add vtctld server to vtcombo
- Kubernetes config updates
- Use Kubernetes DNS for service discovery
and etcd bootstrap. - Kubernetes example for MySQL 5.6.
- Use Kubernetes proxy to link from vtctld to vttablet status pages.
- Use Kubernetes DNS for service discovery
- Make MySQL users and privileges configurable
when bootstrapping MySQL data directory.- Uses
mysql_install_db
and init_db.sql
instead of extracting the oldmysql-db-dir.tbz
archive.
- Uses
- Support semi-sync without async fallback
- Remove old vtctld UI files
- Deployments no longer need to include
go/cmd/vtctld/templates
folder or
set-templates
flag on vtctld.
- Deployments no longer need to include
- Add option to bypass sanity check in ApplySchema
- Print human-readable tables for CLI queries
- e.g. for
ExecuteFetchAsDba
- e.g. for
Vitess v2.0.0-alpha5
Changes since v2.0.0-alpha4
- New built-in backup
plugin to store backups in Google Cloud Storage.- See the Vitess on Kubernetes guide for an
example of usage.
- See the Vitess on Kubernetes guide for an
- The Vitess PHP client now
uses gRPC. - Vitess Hadoop connector
now uses the new gRPC-based Java client. - Self-contained demo
for VTGate V3, which is a preview feature as
of Vitess 2.0. - The vtctlclient-to-vtctld protocol now defaults to gRPC.
Vitess v2.0.0-alpha4
Changes since v2.0.0-alpha3
- Fixes for "bad node version" error when using etcd. (#1176, #1184)
- Java client is now feature-complete.
- The last piece was our new canonical error code translation.
Vitess v2.0.0-alpha3
Changes since v2.0.0-alpha2
- Better PEP 0249 compliance in Python client.
- Type-checking result cursor for Java client.
- VTGate automatically adds annotations for filtered replication.
- All RPC protocols are now off by default, and must be explicitly enabled with the -service_map flag.
- Previously the BSON protocols were enabled by default, and had to be explicitly disabled in -service_map if unwanted.
- SQL is now consistently represented as a UTF-8 string.
- Previously it was represented in some places as a byte array.
- Update to gRPC beta.
Vitess v2.0.0-alpha2
Changes since v2.0.0-alpha1
- Fix for breaking API change in grpc-go (#1052).
Vitess v2.0.0-alpha1
This is the first alpha cut for the 2.0.0 release.
Changes since 1.0
- In addition to the manual deployment
option, Vitess can now be scaled dynamically in any cloud platform supported
by Kubernetes, including
Google Container Engine and
AWS. - Docker images available for both manual and cloud deployments:
- Official client libraries for:
- Using new gRPC framework built on HTTP/2.
- For Vitess server-to-server communication.
- For Java and Go client communication.
- Underlying DB nodes can run either:
- MariaDB 10.0, or
- MySQL 5.6
- Consistent datastore used for cluster management can be:
- etcd 2.0
- ZooKeeper
- Pluggable interface available for adding more.
- New responsive admin dashboard (on vtctld).
- Client-side AngularJS app with Material Design.
- Built-in Backup/Restore
for disaster recovery and provisioning.- New replica instances automatically restore from latest backup, and then
catch up to master. - Queries from the app are automatically routed only to healthy, caught-up
replicas. - Restore mechanism is routinely exercised as part of normal provisioning,
so you know it'll work when you really need it. - NOTE: Currently this requires a network mount. We plan to add plugins for
direct access to blob stores like Google Cloud Storage and Amazon S3.
- New replica instances automatically restore from latest backup, and then
- Streaming, filtered data copy for transparent dynamic resharding.
- Resharding now requires no additional disk space on the source machine,
so it works even when existing data fills up more than half of the largest
available node size.
- Resharding now requires no additional disk space on the source machine,
- GTID-based MySQL failovers (also known as reparenting)
allow old masters to be seamlessly reparented back into the replication stream
as replicas.- This makes failover a routine, automated operation, allowing downtime-free
workflows such as:- Reparent to another replica.
- Upgrade the old master by restarting it.
- Reparent to upgraded master.
- Upgrade remaining replicas one at a time.
- This makes failover a routine, automated operation, allowing downtime-free