Building Zone Failure Resilience in Apache Pinot™ at Uber

Si Lao, Christina Li, Xuanyi Li, Yang Yang, Ujwala Tulshigiri
10 min readadvanced
--
View Original

Overview

This article discusses the implementation of zone failure resilience in Apache Pinot at Uber, detailing strategies to ensure uninterrupted service during zone failures. It highlights the integration of instance assignment capabilities and Uber's isolation group concept to enhance resilience and operational efficiency.

What You'll Learn

1

How to implement pool-based instance assignment in Apache Pinot

2

Why integrating isolation groups enhances zone failure resilience

3

How to migrate existing Pinot clusters to a zone failure resilient setup

4

When to apply isolation-group-based policies for faster release cycles

Prerequisites & Requirements

  • Understanding of distributed systems and real-time analytics platforms
  • Familiarity with Apache Pinot and Uber's Odin platform(optional)

Key Questions Answered

How does Apache Pinot achieve zone failure resilience?
Apache Pinot achieves zone failure resilience by leveraging pool-based instance assignment and integrating with Uber's isolation groups. This ensures that data replicas are distributed across different zones, allowing continued service even if one zone fails. The architecture is designed to maintain query and ingestion capabilities during such failures.
What steps are involved in migrating Pinot clusters to a zone failure setup?
Migrating Pinot clusters involves several steps: enabling automatic pool registration, backfilling isolation group values, onboarding new tables with zone failure resilience configurations, and redistributing existing data to honor the new assignment strategies. This process ensures minimal disruption to live workloads.
What impact do isolation-group-based policies have on release cycles?
Isolation-group-based policies allow for parallel operations during node restarts, significantly speeding up release cycles. For instance, rollout time for a 20-node cluster was reduced from 255 minutes to 88 minutes, enhancing operational efficiency and minimizing downtime.

Key Statistics & Figures

Rollout time reduction for a 20-node cluster
From 255 minutes to 88 minutes
This demonstrates the efficiency gained through isolation-group-based policies.
Replication factor for Pinot clusters
At least 2 isolation groups
This configuration ensures that even if one zone goes down, another remains available.

Technologies & Tools

Database
Apache Pinot
Used for real-time analytics and ensuring zone failure resilience.
Orchestration
Uber's Odin
Provides infrastructure for managing Pinot deployments and isolation groups.

Key Actionable Insights

1
Implementing pool-based instance assignment can enhance data distribution across zones.
This strategy ensures that if one zone fails, other zones can continue serving requests, thus maintaining service availability and reliability.
2
Integrating isolation groups into your deployment strategy can improve resilience and operational efficiency.
By abstracting zone selection, applications can maintain performance even during failures, which is crucial for real-time analytics.
3
Migrate existing clusters to a zone failure resilient setup using automated tools.
Utilizing granular migration APIs can facilitate smooth transitions without impacting live workloads, which is essential for Tier-0 systems.

Common Pitfalls

1
Failing to distribute replicas across different zones can lead to service disruption.
If all replicas are in a single zone, a zone failure will cause significant service outages. Implementing pool-based instance assignment can mitigate this risk.

Related Concepts

Distributed Systems
Real-time Analytics
Failure Recovery Strategies