Wu zhi hui
Wu zhi hui
如果当前DataHost没有任何连接,心跳是可以创建一个连接去检查的,这种情况对应主从切换后,某个数据源连接池关闭,没有连接 如果有连接,怎么处理?这个逻辑可能比较复杂,谁有兴趣,可以先整理逻辑,然后去改造 还有一个地方,最好是多个Reactor线程一起完成所有DataHost心跳的检测,而不是每个都完成所有的,然后有失败的,则通知其他Reactor线程?
提交Mycat2功能测试文档与相关测试SQL脚本,存储过程源码,测试过程说明等文件并持续完善 志愿者可以追贴认领任务并记录进展
Mycat2看来拦截特定SQL, 并返回“正确”的伪数据包,也很重要了, ,比如sleep(xxx),比如一个有安全问题的SQL,一个非常慢的SQL等,返回合适的结果,比OK,ERROR,孔结果集,指定内容的结果集等。 设计思路可以跟帖
Reactor的资源是私有的,为了避免多线程问题,提供了异步任务队列,ReactorThread循环处理的间隙会查看有没有要处理的任务,这样就解决问题,需要注意,这些任务必须是非阻塞,很短时间内完成的,并且任务里面最后不要有日志输出这样的语句,更不能IO事件,如果有IO数据,则传到Job里 下面是一个参考用法代码: public void clearAndDestroyCons(String reason) { logger.info("clear and destroy connections of {} ,for reason ", this, reason); ProxyRuntime runtime = ProxyRuntime.INSTANCE; final MySQLMetaBean target = this; MycatReactorThread[] reactorThreads =...
目前考虑这样改进,即NIOHandler就只有两个(Auth+Default),透传的逻辑,含LoadData相关的透传的,都融合到DefaultHandler里,MySQLCmd暂时保留,接口后面调整,目前从实现来看,MySQLCmd应该不涉及到后端连接的NIO事件,属于用户自己产生应答报文,如果需要后端操作,也是MySQLCmd这边自己来负责构造其他对象(主要为BackendIOTask)来协助完成
连接有关的状态(前端连接,后端连接等),分为两种,一种是当前执行的SQL的相关状态,一种是整个Session会话期内的状态,后者可以设计为Session的属性,防止Session会话期状态膨胀。
内存池的问题在2.0模式下需要修正,目前的设计思路: 每个Reactor线程一个(简单)内存池,用于前后端连接的固定大小的内存分配,不存在同步与并发锁的问题。 一个所有线程共享的复杂内存池,用于大内存的分配,如SQL结果集的缓存等功能,此内存池需要考虑高并发问题,堆外内存与文件映射内存共处,内存失效标记,比如人工或定时清理释放了某些内存,导致这些内存失效,当缓存模块尝试加载时,发现内存无效,于是重新加载,即内存池可以分配几种内存:可交换到文件存储的内存、可以手工清理释放的内存、不能清理的内存等。
head -100 /var/log/supervisor/homer-stderr---supervisor-FkDgZO.log :0: UserWarning: You do not have a working installation of the service_identity module: 'No module named service_identity'. Please install it from https://pypi.python.org/pypi/service_identity and make sure all of...
homestead docker conainter running error ,sames can't connect cassandra 17-10-2016 22:39:43.367 UTC Error dnscachedresolver.cpp:607: Failed to retrieve record for cassandra: Could not contact DNS servers 17-10-2016 22:40:51.998 UTC Status cassandra_store.cpp:181:...
chanage supervisord socket file to /tmp/ to void docker overlayfs error see issee https://github.com/Metaswitch/clearwater-docker/issues/36