这里不聊车 >
软件定义存储解决方案 RGW 异步化
回复

查看: 回复:0

软件定义存储解决方案 RGW 异步化

\"收藏此主题\"

mb47908077

 
 
注册:
2019-01-14
  • 0粉丝
  • 0精华
  • 116帖子
 这是Ceph开发每周谈的第一百零六篇文章,记录从18年1月8号到18年1月15号的社区开发情况。
  一句话消息
  Cephalocon2018APAC已经正式在社区宣布,将在3月22日-23日举行。
  RGW异步化
  目前RGW的HTTP框架默认是civetweb,一种基于每连接独占线程的实现方式,软件定义存储解决方案使得在高并发下需要大量的线程进行处理,同时很难增加类似QoS优先级队列的功能。
  目前社区切换为beast框架,该框架使用boost::beast作为http解析,boost::asio作为异步网络实现,使得异步的接受连接并且读取消息头部,允许根据头部进行QoS调度,但是在process_request过程还是需要同步处理,导致大量线程需要。
  因此,社区的下一步目的是要让process_request异步化,使得横向扩展不依赖于线程数量。这个流程也会采用boost::asio,该框架不会暴露线程模型,而是使用reactor的方式从每个线程执行。并且会成为c++std::net标准库,目前草案已经通过。这个异步模型同时提供了一些异步原语,如callback,future,coroutine。
  目前社区首先提交了libradosapi支持boost::asio框架的PR(https://github.com/ceph/ceph/pull/19054),主要是对libradosc++api的一层封装,去兼容扩展异步模型来支持同样的原语。接下来会对Objecter进行改造。这样RGW就可以在客户端层面全部使用异步接口来实现从HTTP到RADOS。
  参考材料:
  [1]“C++TechnicalSpecification–ExtensionsforNetworking”
  http://cplusplus.github.io/networking-ts/draft.pdf
  [2]“LibraryFoundationsforAsynchronousOperations”
  http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n3896.pdf
  [3]Reference:boost::asio::spawn
  http://www.boost.org/doc/libs/1_65_1/doc/html/boost_asio/reference/spawn.html
  [4]“librados:addasyncinterfacesforusewithboost::asio”
  https://github.com/ceph/ceph/pull/19054
  [5]“osdc/Objecter:Boost.Asio(Iobject!)”
  https://github.com/ceph/ceph/pull/16715
  [6]workinprogressbranch:
  https://github.com/cbodley/ceph/commits/wip-rgw-async-process-171120
 
回复本楼

太平洋汽车全新推出“太平洋车友会”;来太平洋车友会,结识志同道合的车友了解详情>>

未登录用户

只可添加一张图片,多张图片请选高级模式

高级模式
温馨提示:回复超10字可获1金币,有独特见解超30字可获3金币,灌水用户将扣除金币并锁号处理。希望广大车友共同维护论坛的友好回复氛围。
常用表情

支付宝扫码询价
领最高888元现金红包

关闭