oceanbase / oceanbase/miniob

线程模型支持协程

Open
#375 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

feature help wanted
Dominant language
C++
Stars
4.4k
Forks
1.6k
PR merge metrics
No merged PRs in 30d

Description

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

当前线程模型支持一个连接一个线程和线程池模式,我们可以扩展更多的线程模型。协程可以让程序运行的更加高效,已经有比较多的开源库支持了协程开发,并且较新的C++标准也对协程做了支持。

Describe the solution you'd like
A clear and concise description of what you want to happen.

引入第三方协程库或者依赖新的C++标准实现自己的协程库。

第三方库比如 boost、libco、libgo等。

Additional context
Add any other context or screenshots about the feature request here.

协程对应用层程序开发和库本身都有较高的要求,一些耗时的系统调用,比如 connect、read、write 等都可以在协程库实现hook,但是像mutex等,如果实现不好或者使用不当,会导致系统很不稳定。

Contributor guide

Open the contributing guide

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 locating the existing one-connection-per-thread and thread-pool implementations, then review the project's C++ standard and dependency configuration. Define the coroutine library or C++ standard approach and the behavior of blocking calls such as connect, read, and write before implementation can be considered complete.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.