pingcap / pingcap/community

incubating program:ServerlessDB for HTAP

Open
#483 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
267
Forks
154
PR merge metrics
No merged PRs in 30d

Description

Describe the feature or project you want to incubate:
Summary

we want to provide serverless db services based on TIDB on
the cloud, focusing on how to dynamically scale up and down the compute storage nodes
based on business load changes to achieve zero user perception. To ensure that the
database service process, always maintain the best match between business load and
background resources, thus helping users to maximize cost saving

Motivation

While TIDB offers cloud services, there are a number of issues.

  1. When users order, they need to select the compute node and storage node
    specifications, and it is difficult for them to choose the right specifications, either by
    choosing smaller or larger ones, or the business load simply cannot be evaluated,
    resulting in users never being able to choose the right specifications.
  2. After the business load rises, you need to manually determine when to expand capacity,
    what resources to expand, and how much to expand. In practice, it is difficult to
    respond to the scenario of extremely rapid load changes in a timely manner, thus
    causing business performance fluctuations.
  3. After the business load drops, you need to manually judge when to shrink the capacity,
    what resources to shrink, and how much to shrink. If the user makes a wrong judgment,
    it will cause business performance fluctuations.
  4. If the business load changes very frequently, the manual implementation of expansion
    and shrinkage work is very burdensome. If the system is not expanded, the business
    performance will be degraded, and if the system is not scaled down, the resources will
    be wasted.
  5. It is difficult to achieve zero user awareness when scaling up or down. In case of
    connection pooling or long connections, it is even more impossible to do both of the
    following:
    When scaling, if the client is using connection pools or long connections, it is not
    possible to break up the load to the additional compute nodes.
    When scaling down, if the client is using a connection pool or a long connection,
    there is no guarantee of zero user awareness because you kill the compute node
    and if there is a connection on it, the client reports an exception.

Estimated Time
180 days

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by reviewing the proposed ServerlessDB scope and the repository’s incubation process; the scaling design, implementation boundaries, and criteria for considering the project complete still need to be defined.

Written by the indexing model from the issue text.

Assessment

Domain
backend, cloud, databases
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.