设计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 条评论
登录 后参与评论

相关文章

来自专栏星流全栈

想使用 MongoDB ,你应该了解这8个方面!

12050
来自专栏Python自动化测试

Jmeter接口测试之参数化(十)

在接口测试中,某些时候一些场景会使用到参数化的场景,参数化简单的说就是同一个请求需要不同的数据,比如在性能测试中需要并发多个用户的场景,这样的目...

24930
来自专栏北京马哥教育

一个cheat命令 == Linux命令小抄大全

当你要执行一个linux命令,在这个命令参数选项众多时,你一般怎么做?对,我们大多数人都会去求助man命令。此外,linux上帮助相关的命令还有”help””w...

29650
来自专栏c#开发者

在 BizTalk Server 2004 SP2 中存档和清除 BizTalk 跟踪数据库

在 Biztalk Server 2004 SP2 中存档和清除 Biztalk 跟踪数据库 发布日期: 2006年09月19日 小结:本白皮书介绍如何配置 B...

36330
来自专栏逸鹏说道

pplive 查看任意用户详细信息

简要描述: 由敏感信息泄漏导致可以查询MEMCache中用户的详细信息 详细说明: 此前@nold已报告过此问题,现在还没有删除.svn目录 http://p...

359120
来自专栏杨建荣的学习笔记

一个清理脚本的改进思路(r5笔记第51天)

前几天同事问我一个问题,说在unix环境下有个目录下的文件/文件夹太多了,已经报了开始报系统错误了,客户希望能够定时进行这些目录的清理。 我连到那个环境去查看,...

33080
来自专栏性能与架构

什么是反向代理服务器

我们常会看到‘反向代理服务器’这个名词,例如常看到文章上说 nginx 是一个反向代理服务器、varnish 是一个反向代理服务器 …… 下面就了解下这个概念 ...

45080
来自专栏小樱的经验随笔

BugkuCTF 域名解析

27370
来自专栏顶级程序员

利用 Python 优雅地将 PDF 转换成图片

之前收集了很多优秀的 PDF文档,但是需要看的时候不是很方便,需要去找到这个文件,如果是在手机上的话往往还需要下载 PDF相关的插件才行,而且最大的问题是不便于...

11040
来自专栏子勰随笔

SDK热更系列之SDKHotfix待优化点

236100

扫码关注云+社区

领取腾讯云代金券