PracHub
QuestionsPremiumCoachesLearningGuidesInterview Prep
|Home/System Design/Snapchat

Design a Column-Queryable KV Database

Last updated: Apr 2, 2026

Quick Overview

This question evaluates understanding of distributed storage architectures, secondary indexing and queryability for sparse, column-oriented key-value stores, including competencies in data modeling, sharding, replication, consistency, and schema evolution.

  • Snapchat
  • System Design
  • Software Engineer

Design a Column-Queryable KV Database

Company: Snapchat

Role: Software Engineer

Category: System Design

Interview Round: Onsite

Design a distributed key-value database for sparse records, where each row has a primary key and a flexible set of named columns. The system must support: - `put(rowKey, columnName, value, timestamp)` - `get(rowKey, columnName)` - `getRow(rowKey)` - `queryByColumn(columnName, predicate)` for equality and range filters, such as all rows with `status = active` or `age between 20 and 30` Assume billions of rows, high write throughput, low-latency point reads, and moderate secondary-index queries. Explain the data model, storage engine, indexing strategy for column queries, sharding, replication, consistency model, and how you would handle schema evolution and hot partitions.

Quick Answer: This question evaluates understanding of distributed storage architectures, secondary indexing and queryability for sparse, column-oriented key-value stores, including competencies in data modeling, sharding, replication, consistency, and schema evolution.

Related Interview Questions

  • Design a News Aggregator - Snapchat (hard)
  • Design real-time ad impression and spend tracking - Snapchat (nan)
  • Design a device owner lookup service - Snapchat (nan)
  • Design short URL service with click counting - Snapchat (hard)
  • Design a search-to-ads ranking pipeline - Snapchat (medium)
Snapchat logo
Snapchat
Feb 8, 2026, 12:00 AM
Software Engineer
Onsite
System Design
1
0
Loading...

Design a distributed key-value database for sparse records, where each row has a primary key and a flexible set of named columns. The system must support:

  • put(rowKey, columnName, value, timestamp)
  • get(rowKey, columnName)
  • getRow(rowKey)
  • queryByColumn(columnName, predicate) for equality and range filters, such as all rows with status = active or age between 20 and 30

Assume billions of rows, high write throughput, low-latency point reads, and moderate secondary-index queries. Explain the data model, storage engine, indexing strategy for column queries, sharding, replication, consistency model, and how you would handle schema evolution and hot partitions.

Solution

Show

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...

Browse More Questions

More System Design•More Snapchat•More Software Engineer•Snapchat Software Engineer•Snapchat System Design•Software Engineer System Design
PracHub

Master your tech interviews with 8,000+ real questions from top companies.

Product

  • Questions
  • Learning Tracks
  • Interview Guides
  • Resources
  • Premium
  • For Universities
  • Student Access

Browse

  • By Company
  • By Role
  • By Category
  • Topic Hubs
  • SQL Questions
  • Compare Platforms
  • Discord Community

Support

  • support@prachub.com
  • (916) 541-4762

Legal

  • Privacy Policy
  • Terms of Service
  • About Us

© 2026 PracHub. All rights reserved.