专栏首页蓝天设计mooon调度器遇到的难题

设计mooon调度器遇到的难题

mooon的设计进入关键时刻,有几个决策点还没有定下来,如下:

1.是否同时支持进程和线程模型

进程模型是指内核为一个独立的进程,而每个业务又为独立的一个进程,业务可以为多线程,同时内核会产生相应个数的内核线程与业务线程一一对应,内核线程和业务进程在创建业务时产生。

线程模型是业务和内核运行在相同的进程中,内核线程即为业务线程,在创建业务时产生。

2.service和线程不绑定(即不建立亲和关系),而session和线程建立绑定关系是否合理?

这么做重要的原因是考虑效率和保持简单,service不绑定,可以保证随机调度,这样就可以在随机的线程中创建session,并由这个线程调度和管理session(创建和销毁);同时由于session只会被一个线程调度,会使得真对单个session的编程不需要考虑线程安全;另外,不同session运行在不同线程中,又可保证一定的并发性,但线程和session是一对多的关系,因为session数量允许超过10万个。

3.一个session是否要支持可以有子session,子session下是否还要有子session

这个主要是考虑多方会话和群组类需求。

4.如果父session和线程是绑定关系,那子session是否和父session绑定到相同的session?

这个主要影响到复杂度,最好是可以相同,但是否会影响实用性了?

目前的计划:同时支持线程和进程模型,并且对于同一节点的进程模型业务,会使用pipe通讯绕过网络,影响最大的是第4点。

孤独,希望可以看到更多的讨论,计划端午三天完成设计图。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • LinuxThread VS NPTL

    《原文出自http://blog.csdn.net/guosha, 转载请注明出处》

    一见
  • MOOON-scheduler核心设计图(初稿)

    在进程模型,CKernelThread和CServiceThread个数是相等的,而且线程是一对一的。CServieProcess会fork出一个进程,这个进程...

    一见
  • madvise、fadvise、posix_madvise和posix_fadvise函数的使用

    m表示memory,f表示file,因此madvise是针对内存,而fadvise是针对文件。

    一见
  • 揭开进程、线程、绿色线程的神秘面纱

    打开电脑后,就可以同时使用多个应用程序。可以一边上网,一边听音乐,一边微信聊天,一边用vscode写代码。

    用户1260737
  • 颜学伟:实时音视频与PSTN结合的解决办法

    6月29日,音视频及融合通信技术技术沙龙圆满落幕。本期沙龙特邀请腾讯云技术专家分享关于最新的低延迟技术、全新的商业直播方案等话题,针对腾讯云音视频及融合通信产品...

    云加社区技术沙龙
  • python 列表(List)

    Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

    py3study
  • python连接redis3.x集群并做

    py3study
  • Django-REST:002-API接口序列化

    在这样的处理风格下,目前更加适合项目开发并且成本较低的一种比较流行的开发模式:项目的前后端分离结构模型的优势更加突出,通过RESTful风格指定的格式定义不同的...

    大牧莫邪
  • 【高并发】面试官:讲讲高并发场景下如何优化加锁方式?

    作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了...

    冰河
  • 【高并发】高并发场景下如何优化加锁方式?看完这篇我确实明白了!!

    作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了...

    冰河

扫码关注云+社区

领取腾讯云代金券