Featured Blog Texture

Blog

View all

multi-region-how-by-rebekka-dunlap-1

Engineering

Tutorial: How to build a low-latency Flask app that runs across multiple regions

If your company has a global customer base, you’ll likely be building an application for users in different areas across the world. Deploying the application in just a single region can make high latencies a serious problem for users located far from the application’s deployment region. Latency can dramatically affect user experience, and it can also lead to more serious problems with data integrity, like transaction contention. As a result, limiting latency is among the top priorities for global application developers. In this blog, we walk you through a low-latency multi-region application that we built and deployed for MovR, a fictional vehicle-sharing company with a growing user base. The MovR application is a Flask web application, connected to a CockroachDB cluster with SQLAlchemy. We deployed the application in multiple regions across the US and Europe, using Google Kubernetes Engine, with some additional Google Cloud Services for load balancing, ingress, and domain hosting. For the database, we used a multi-region CockroachDB Dedicated deployment on GCP. The application source code is available on GitHub, and an end-to-end tutorial for developing and deploying the application is available on our documentation website.

Eric Harmeling

April 2, 2020

GORM 1200x400

Product

Build a Go app with GORM for CockroachDB

Back in 2015 the early Cockroach Labs engineers made a decision to write this massive, complex application in Go. Since then we have, on many occassions, discussed our use of Go in blogs and on stage.

1536574967915

Dan Kelly

March 18, 2020

multirow by lea heinrich final-1

Product

What are hash sharded indexes and why do they matter?

I ended an amazing internship this past fall on the KV (Key-Value) team at Cockroach Labs (responsible for the transaction, distribution and replication layers of CockroachDB). This blog post delves into my work on adding native support for creating hash sharded indexes in CockroachDB, as a way to significantly improve performance on sequential workloads. CockroachDB uses range partitioning by default, as opposed to hash partitioning. As explained in our CTO Peter Mattis’s blog post, a key-value store with range partitioning resembles a distributed balanced tree whereas one with hash partitioning is closer to a distributed hash map. In particular, range partitioning outperforms hash partitioning for the most common SQL workloads like range scans. However, load under range partitioning can become imbalanced for access patterns that focus on a specific range of data, since all traffic is served by a small subset of all the ranges. Sequential insert traffic is a common example of such an access pattern and is much better suited to hash partitioning.

Aayush Shah

March 13, 2020

2020 Cloud Report Blog-header (1)

Performance

AWS, Azure, and GCP respond to the 2020 Cloud Report

In December 2019, we published the 2020 Cloud Report and an accompanying blog post, which summarized original research we conducted benchmarking the performance of Amazon Web Services (AWS), Microsoft Azure (Azure), and the Google Cloud Platform (GCP).

Paul Bardea

March 12, 2020

virtualbadgescan

Company

In the wake of COVID-19: Virtual badge scans for Women Who Code

This past year, the Cockroach Labs marketing team introduced a novel way of collecting leads at large events. Instead of giving away swag (socks, tshirts, pens, etc.) to every person we met, we donated money to a non-profit. Our “contacts for charity” program was wildly successful, and at AWS Reinvent and KubeCon North America last year, we more than tripled our lead capture goals and donated over $14,500 to Women Who Code, the largest and most active community for technical women in the world.

jim

Jim Walker

March 12, 2020

crdb-blog-1 (1)

Tutorials

Tutorial: Build an app with Spring, Java, Hibernate, Gradle, and CockroachDB

Application development frameworks like SpringBoot have done a good job a giving developers a quick start to developing applications with Java. Layering object-relational mapping to SQL to remove proprietary syntax has further simplified the development of database applications. CockroachDB allows developers to take advantage in the evolution of globally distributed data with a simple SQL interface. But each database can bring it’s own specific syntax and cause developers to hesitate when getting started with a new database.

Glenn Fawcett

March 4, 2020

jOOQ-1

Product

Build a Java app with CockroachDB and jOOQ

As of jOOQ's 3.13.0 release, jOOQ fully supports CockroachDB. The CockroachDB SQL dialect is now fully supported for future jOOQ and CockroachDB versions.

Charlotte Dillon

February 19, 2020

SQLSmith Header IMG 2

Improving data imports in CockroachDB with `nodelocal`

This past fall, I had the opportunity to intern on the relatively new Bulk I/O team at Cockroach Labs. Our team’s focus is to improve bulk data operations on CockroachDB. My work involved creating a better experience when importing or backing up data without using an external storage service like Amazon’s S3 or Azure’s Blob Service. CockroachDB supports interacting with files in a node’s local storage system, through a feature called nodelocal. However, this has caused confusion and misuse due to its implementation, and the project I took on involved refining the user experience around nodelocal.

Georgia Hong

February 13, 2020

Django-how-to-1

Product

How to use CockroachDB with your Django application on Ubuntu

Django is a high-level flexible framework for building Python applications quickly. Applications run on Django store data, by default, into a SQLite database file, but lots of Django users find themselves needing to switch to a more performant database in production, one with better availability or scalability.

Artem Ervits

February 10, 2020

Page 51 of 74

Get started for Free

bg callout one