YugabyteDB Community Fundamentals Training and Certification Recap
We recently held our first ever free “YugabyteDB Fundamentals” community training and certification class. A special thanks to Karen Tamrazyan and all 6000+ the members of the Cloud Study Network for hosting us! If you weren’t able to make it, here’s what you missed…
Over the span of 90 minutes we covered the following topics in depth:
- Distributed SQL terms, definitions, and comparisons
- YugabyteDB architecture and design principles
- YSQL API development
- Course review and exam prep
We also worked through a variety of hands-on exercises including:
- Single and multi-node cluster installs on Mac, Linux, and Kubernetes
- JDBC connectivity
- User management and basic security
- Working with databases and schemas
- Creating objects and loading data from external files
- Creating and exploring a sample database
- Creating functions and triggers
- Setting up admin tools like pgAdmin, TablePlus, and DBeaver
- Using a Java load generator
- Testing fault tolerance (remove node, add node, rebalancing)
- TPC-C benchmarking
Since the conclusion of the training we’ve had over 200 participants pass the “YugabyteDB Fundamentals” certification exam. Congratulations go to Jesus Bastidas from Colombia for being the first person to pass the exam!
On a scale of 1 to 6, 1 being easy and 6 being very difficult, the average response rated the exam a 4.5. This tells us it was a relatively challenging exam for many folks, so some careful studying is required in order to pass. We did however, provide all attendees with a study guide to make the preparation for the exam a lot less stressful.
Distribute the Love
In lieu of swag we encouraged attendees to vote for their favorite charity and based on the counts we would donate $5 on their behalf. After all the votes had been tabulated, we are humbled to announce that we have donated a total of $1000 across the g4g (greenlight for girls), ONEArmenia, and Global Diversity Foundation charities. Thank you to everyone who voted and helped guide our giving!
Missed last week’s training and would like to attend a future one? Make sure to sign up for the YugabyteDB Community Slack and join the #training channel. This is where we will be making announcements about upcoming training events, new courses, and certifications. We are still putting together our final schedule for 2021, but already have the following events scheduled that you can register for:
Feb 25, 2021: “YugabyteDB YSQL Development” training and certification (co-presented with Cloud Study Network Meetup based in Germany.)
Additional courses and certifications for 2021 will include:
- YugabyteDB YCQL Development
- YugabyteDB DBA Fundamentals
- Jamstack Development with YugabyteDB
- YugabyteDB Advanced Security
- YugabyteDB Schema Design Fundamentals
Again, the #training channel on YugabyteDB Community Slack is the best place to be among the first to find out about upcoming training and certifications.
Questions and Answers
We had quite a few questions during and after the training. I wasn’t able to get to all the questions in real time, so I wanted to recap a few of them in this blog post.
How does Yugabyte guarantee the correct sequence of operations in a distributed transaction?
A transaction in a YugabyteDB cluster may need to update multiple rows that span across nodes in a cluster. In order to be ACID compliant, the various updates made by this transaction should be visible instantaneously as of a fixed time, irrespective of the node in the cluster that reads the update. In order to achieve this, it becomes essential for the nodes of the cluster to agree on a global notion of time.
Getting the different nodes of a cluster to agree on time requires all nodes to have access to a highly available and globally synchronized clock. TrueTime, used by Google Cloud Spanner, is an example of a highly available, globally synchronized clock with tight error bounds. However, such clocks are not available in all deployment environments. Physical time clocks (or wall clocks) cannot be perfectly synchronized across nodes. Hence they cannot order events (to establish a causal relationship) across nodes. So, instead YugabyteDB uses Hybrid Logical Clocks (HLCs). which combine physical time clocks that are coarsely synchronized using NTP with Lamport clocks that track causal relationships.
Further reading: Transactions Overview
What forms of replication does YugabyteDB support?
YugabyteDB supports synchronous replication between nodes in a cluster and asynchronous replication between clusters.
Further reading: DocDB Replication Layer
How does sharding and data distribution work in YugabyteDB?
A few key things to understand about how YugabyteDB shards and distributed data:
- Tables are split into tablets (think shards)
- Database sharding is the horizontal partitioning of rows distributed across nodes
- Database sharding increases both the read and write scalability of the database
- Rows are automatically sharded by primary key
- YugabyteDB supports the partitioning of data by either HASH or RANGE
- Replicated tablets (tablets that contain identical data) form a Raft group with a leader and followers
- Replicated tablets always contain identical data because the data is synchronously replicated
Further reading: DocDB Sharding Layer
Is there a “cloud” version of YugabyteDB that is available “as a service?”
Yes. Sign up for a free trial of our Yugabyte Cloud currently in beta.
Are there any databases that claim to solve for both Availability and Consistency in regards to the CAP Theorem?
None that I am aware of.
And that’s a wrap! We hope to see you at an upcoming YugabyteDB community training and certification session!