Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support start KeepWrite bthread urgent #2591

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

chenBright
Copy link
Contributor

What problem does this PR solve?

Issue Number: resolve #2588

Problem Summary:

What is changed and the side effects?

Changed:

Side effects:

  • Performance effects(性能影响):

  • Breaking backward compatibility(向后兼容性):


Check List:

  • Please make sure your changes are compilable(请确保你的更改可以通过编译).
  • When providing us with a new feature, it is best to add related tests(如果你向我们增加一个新的功能, 请添加相关测试).
  • Please follow Contributor Covenant Code of Conduct.(请遵循贡献者准则).

@chenBright
Copy link
Contributor Author

@wasphin 有空帮忙看看protobuf22缺失absl_flag库的问题

@wasphin
Copy link
Member

wasphin commented Apr 7, 2024

absl 4038192a57cb75f7ee671f81a3378ff4c74c4f8e 中删除了 flags 库,当前使用的最新的 absl 20240116.1 没有 flags 库了,我看下怎么识别下依赖

@wasphin
Copy link
Member

wasphin commented Apr 7, 2024

另外最新版的 protobuf(26.1)又改接口了,目前测 protobuf 22+ ci 安装的最新版的 protobuf,应该不久又会有问题🤦

@wwbmmm
Copy link
Contributor

wwbmmm commented Apr 8, 2024

这个优化会有实际效果吗,如果启动了KeepWrite线程,说明之前的write已经写不进去了,这时再立即KeepWrite,是不是也会写不进去,最终还是要等待epollout

@chenBright
Copy link
Contributor Author

不一定是写不进去。大多数情况应该是StartWrite写完队头数据,但是队列里还有还有其他数据,所以启动协程KeepWrite。

不过 #2588 在压力比较大的时候,整体服务能力都下降了。只优化少数连接上的rpc回包延迟,优化应该有限吧。

@chenBright
Copy link
Contributor Author

另外最新版的 protobuf(26.1)又改接口了,目前测 protobuf 22+ ci 安装的最新版的 protobuf,应该不久又会有问题🤦

@wasphin 果然,又有问题了

@wasphin
Copy link
Member

wasphin commented Apr 9, 2024

晚些我再下载个老版本 prootbuf.rb 吧,另外得看看后面 protobuf 怎么支持更新

@yanglimingcn
Copy link
Contributor

不一定是写不进去。大多数情况应该是StartWrite写完队头数据,但是队列里还有还有其他数据,所以启动协程KeepWrite。

不过 #2588 在压力比较大的时候,整体服务能力都下降了。只优化少数连接上的rpc回包延迟,优化应该有限吧。

那如果是只写了一个req,队列里面还有其它数据,这种情况要是优化,可以让StartWrite去再取后边的请求,也不用再专门启动一个bthread吧。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

是否可以直接执行Socket::StartWrite里的KeepWrite?
4 participants