Seastar教程第三部分如何深入理解?

更新于
2026-08-02 09:21:24
20阅读来源:SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计8180个文字,预计阅读时间需要33分钟。

Seastar教程第三部分如何深入理解?

Seastar是一个用于在现代多核机器上编写高效复杂服务器的C++库,其核心基于高性能宽列存储Scylla。这是Seastar教程的第三部分,共四部分。教程内容翻译自Seastar官方文档:https://github.com/scylla/scylla

seastar是用于在现代多核机器上编写高效的复杂服务器的C++库,是高性能宽列存储scylla核心所在。这是seastar教程第三部分,共四部分。

教程翻译自Seastar官方文档:github.com/scylladb/seastar/blob/master/doc/tutorial.md
转载请注明出处:www.cnblogs.com/morningli/p/15961636.html

Fiber

Seastar 延续通常很短,但经常相互链接,因此一个延续会做一些工作,然后安排另一个延续以供以后使用。这样的链可能很长,甚至经常涉及循环 —— 请参阅下一节“循环”。我们将这种链称为执行的“fiber”。

这些fiber不是线程——每一个都只是一串延续——但它们与传统线程有一些共同的要求。例如,我们希望避免一根fiber被饿死,而另一根fiber连续不断地运行它的continuation。作为另一个例子,fiber可能想要进行通信——例如,一个fiber产生第二个fiber消耗的数据,并且我们希望确保两个fiber都有机会运行,并且如果一个fiber过早停止,另一个fiber不会永远挂起。

循环

大多数耗时的计算都涉及使用循环。Seastar 提供了几个原语来表达它们,与未来/承诺模型很好地组合在一起。Seastar 循环原语的一个非常重要的方面是每次迭代之后都有一个抢占点,从而允许其他任务在迭代之间运行。

阅读全文

本文共计8180个文字,预计阅读时间需要33分钟。

Seastar教程第三部分如何深入理解?

Seastar是一个用于在现代多核机器上编写高效复杂服务器的C++库,其核心基于高性能宽列存储Scylla。这是Seastar教程的第三部分,共四部分。教程内容翻译自Seastar官方文档:https://github.com/scylla/scylla

seastar是用于在现代多核机器上编写高效的复杂服务器的C++库,是高性能宽列存储scylla核心所在。这是seastar教程第三部分,共四部分。

教程翻译自Seastar官方文档:github.com/scylladb/seastar/blob/master/doc/tutorial.md
转载请注明出处:www.cnblogs.com/morningli/p/15961636.html

Fiber

Seastar 延续通常很短,但经常相互链接,因此一个延续会做一些工作,然后安排另一个延续以供以后使用。这样的链可能很长,甚至经常涉及循环 —— 请参阅下一节“循环”。我们将这种链称为执行的“fiber”。

这些fiber不是线程——每一个都只是一串延续——但它们与传统线程有一些共同的要求。例如,我们希望避免一根fiber被饿死,而另一根fiber连续不断地运行它的continuation。作为另一个例子,fiber可能想要进行通信——例如,一个fiber产生第二个fiber消耗的数据,并且我们希望确保两个fiber都有机会运行,并且如果一个fiber过早停止,另一个fiber不会永远挂起。

循环

大多数耗时的计算都涉及使用循环。Seastar 提供了几个原语来表达它们,与未来/承诺模型很好地组合在一起。Seastar 循环原语的一个非常重要的方面是每次迭代之后都有一个抢占点,从而允许其他任务在迭代之间运行。

阅读全文