YugaByte DB Engineering Update – May 2019
A lot is happening at YugaByte DB since we announced 1.2, so we thought we’d provide the community with a quick recap of engineering highlights, announcements and shout outs to catch everyone up. Let’s dive in!
Progress on YugaByte DB 2.0
Check out our “Roadmap for YugaByte DB 2.0” to get more details on the exciting features shipping in the next big release this Summer! Below are some highlights:
- Distributed SQL: Our PostgreSQL wire compatible API will be GA and will include support for all datatypes, most built-in functions and expressions, plus JSONB, foregin key and auto-increment functionality. The distributed SQL API will also be Jepsen tested for correctness. Finally, we will also be announcing integrations with popular ORMs, plus Hasura GraphQL engine.
- Core Database Features: Serializable isolation, change data capture, multi-master global deployments, plus enhancements to secondary indexes and documents.
- Database Security: Encryption at rest plus support for popular Key Management Systems (KMS)
- Improved User Experience: Streamlined installs and deployments of clusters, more ecosystem integrations
- Benchmarks: Look for updated performance benchmarks for YugaByte DB and how it fares against the latest versions of other distributed SQL databases.
A number of the above useful features are currently underway, you can check out our current projects on GitHub for more details. Below are some of the most requested features:
- Expect support for FOREIGN KEY constraints in YSQL to be released shortly.
- We are also working on supporting multi-region Kubernetes deployments, where one YugaByte DB cluster can now span multiple k8s clusters.
- The effort to verify that various ORMs are able to run against YSQL is underway, along with sample applications to get you started.
The current YugaByte DB release is v1.2.8. You can read the release notes of previous versions here. In this release, there are over 40 new features, enhancements and bug fixes. Here’s a few highlights:
YSQL API Updates
- [#1022] Support for the UNIQUE constraint. When using UNIQUE, every time you insert a new row, YugaByte DB will check to see if the value is already in the table. If it finds that the new value is already there, it rejects the change and issues an error. The same process is carried out for updating existing data.
- [#1109] Support for the INSERT INTO…ON CONFLICT clause which is often referred to as an “upsert” or “merge.” With this clause, when you insert a new row into a table, YugaByte DB will update the row if it already exists, otherwise, it’ll insert the new row. This is why the action is called an upsert (update or insert).
- Support for IDENTITY column which allows you to automatically assign a unique value to a column.
YCQL API Updates
- [#861] EXPLAIN plan functionality added to SELECT, INSERT, UPDATE and DELETE statements
- [#668] Support for the JSON operator on INSERT
System, Usability and Deployment Improvements
- [#1320] The single node experience of YugaByte DB is getting simpler. The yb-master and yb-tserver processes will soon be unified under a single manager process, yugabyte-db.
- [#994] PostgreSQL users need to run an initdb process explicitly before using the database. To make YugaByte DB simpler to use, we made sure initdb now automatically as a part of every cluster creation.
- [#911] One issue that was getting in the way of a good experience is the time to create a table in YSQL. This especially hurts because initdb tends to create over a 100 tables and relations. This effort has speeded up CREATE TABLE execution by an order of magnitude – and we’re just getting started!
Also thanks to Oracle ACE @FrankPachot from CERN for spreading the good word about YugaByte DB via his laptop!
New Documentation, Blogs, Tutorials, and Videos
New blog posts
- YugaByte DB 2.0 Roadmap
- 6 Technical Challenges Developing a Distributed SQL Database
- Distributed SQL on Google Kubernetes Engine (GKE) with YugaByte DB’s Helm Chart
- How to Achieve High Availability, Low Latency & GDPR Compliance in a Distributed SQL Database
- Distributed PostgreSQL on a Google Spanner Architecture – Query Layer
- Distributed PostgreSQL on a Google Spanner Architecture – Storage Layer
- NoSQL Featured Article: NoCOUG Journal
New technical videos and webinar playbacks
- Reviewing Jepsen Test Results for Correctness in YugaByte 1.2 with Kyle Kingsbury
- Distributed PostgreSQL on a Google Spanner Like Architecture – Storage Layer
- Distributed PostgreSQL on a Google Spanner Like Architecture – Query Layer
- Introduction to YugaByte DB High Availability and Transactions for PostgreSQL & MongoDB Developers
- YugaByte DB vs CockroachDB: Architecture, Features and Performance Benchmarks
Upcoming Meetups and Conferences
We will be at a number of conferences and meetups over the next few months. Below is the current the schedule with more cities and dates to be added soon!
- June 4-5: San Francisco
- June 13-14: Atlanta
- July 9-10: Chicago
- July 15-16: Philadelphia
- July 25-26: Burlington
- Oct 7-10: Austin
- Oct 7-10: Las Vegas
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:
- Software Engineer – Cloud Infrastructure – Sunnyvale, CA
- Software Engineer – Core Database – Sunnyvale, CA
- Software Engineer – Full Stack – Sunnyvale, CA
- Developer Advocate – Sunnyvale, CA
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!
- Using YugaByte DB at your company? Tell us about it and we’ll send you a hoodie!
- Compare YugaByte DB in depth to databases like CockroachDB, Google Cloud Spanner and MongoDB.
- Get started with YugaByte DB on macOS, Linux, Docker, and Kubernetes.
- Contact us to learn more about licensing, pricing or to schedule a technical overview.