apple / apple/foundationdb

Per subspace replication and storage engine

Open
#1,037 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
16.7k
Forks
1.6k
Avg merge
1d 20h
Merged PRs (30d)
126

Description

This project would allow users to specify a replication policy and storage engine for individual key ranges. There are variety of uses for this feature. One example is to keep a section of the database using the memory storage engine which contains keys that are changing rapidly. Another example would be to replicate a range of keys that is read very heavily to many more storage servers to help balance the read traffic.

Proposed design:
* keep a map in \xff\x02 that tracks subspace replication desires
* data distribution will attempt to keep shard boundaries and replicas that match the desired state, and once the system matches completely a key will be written to the database which can be watched

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the proposed subspace replication map in \xff\x02 and the data-distribution behavior described in the issue. Identify the existing code for shard boundaries, replica placement, storage engines, and database watches; done means users can configure per-range policies and the system reaches and signals the desired state.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
databases, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.