NORADLE鲁棒性设计.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
NORADLE鲁棒性设计.doc

NORADLE鲁棒性设计   摘要:NORADLE实现了nodes和oracle的互连,但是要用在生产环境中,必需能够经受各种异常的影响,能够连续不断的运行、自动的恢复、确保资源得到回收,为了确保基于NORADLE的系统能够7*24小时不间断运行,NORADLE针对各种风险做出了全面而有效的设计。   关键词:Robustness;risk;NORADLE:Oracle;nodejs:driver:dispatcher   中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)18-0068-02   1.NoRACLE的基本网络结构   NORADLE服务的基本过程:OSPs主动连接到dispatcher进行注册,作为请求响应备用通道。clients可以并行的发送多个请求的帧到dispatcher,dispatcher为每个请求分配空闲的OSP用于处理该请求,处理完成后释放OSP供其他新的请求使用。   2.面临的运行风险   1)由于可能遇到未捕获的异常、误杀进程、进程占用资源超限等各种原因造成进程意外退出,和由此带来的节点间socket中断   2)请求一响应数据包闭环由于客户端中断请求、各个节点的异常、各个节点间socket中断、oracle servlet异常、oracle server异常导致不能正常完整完成,导致过程中的client/dispatcher的通道号不能完成回收,导致通道配额泄漏,最终可导致无逻辑通道可用,服务被锁死   3)节点间由于NAT的存在,或由于TCP系统配置的原因,会导致节点间的连接长时间空闲,造成socket被中断,而两端都无法知道。   4)一旦服务进程遇到ORACLE的ora-600/ora-7445内部错误,再次接受请求处理,往往还会遇到相同的异常,而这个应用代码无关。按照NORADLE尽量分配刚处理完请求的oracleserver process连续处理新请求已尽量减少进程切换的策略,这类内部错误很容易连续发生,造成持续的严重问题。   5)ORACLE server process长时间运行,或者处理大量的请求后,可能会有相当的进程私有资源(如各种功能内存区域)不能得到及时释放,最终因为系统资源占用不断增长造成系统运行变慢或者出现不能分配资源的异常   6)任何服务端节点的正常退出过程中,该节点上会存在活动请求,直接退出节点进程,这些活动请求注定发生异常   7)传统的客户端获取数据库连接后,从连接对象上发起请求,但是如果socket异常,客户端程序必须重启才能恢复正常,这样的又会造成应用状态的丢失、处理过程的中断   为了实现基于NORADLE开发的系统的高可用性,高鲁棒性,NORADLE做了如下精巧的设计。   3.自动保持OSP的数量   NORADLE的进程监控后台进程K-PMON会间隔性的检查启动的OSP的数量,从1编号的任何一个slot上的OSP如果不存在,K_PMON会马上启动。这样,系统管理员可以根据数据库硬件配置特别是CPU内核数量,设定保持一定数量的OSP进程。技能防止传统连库模式下大量客户端请求大量的OSP造成进程数量过载性能不升反降的问题,同时又能随时以和硬件能力匹配的服务进程数量来随时接受处理请求,不管因为何种原因某OSP退出,NORADLE都无需认为干预,重新启动对位的OSP。   4.OSP自重启对抗资源(内存)泄露   每个OSP会自己记录进程启动时间和累计处理请求数,当超过设定阀值后,OSP会安全退出,并被K_PMON自动重启,这就完全避免了ORACLE侧的进程内存泄漏,保障系统长期稳定运行。   5.支持OSP安全退出   OSP需要退出重启的时候,socket上可能正好在发送新请求,从而导致请求处理失败。为了防止这种情况发生,OSP在希望退出前,会向dispatcher发送控制帧,通知其要退出。如果dispatcher登记该OSP处于未被占用状态,dispatcher立即发送控制帧给该OSP,告诉其立即退出;如果dispatcher已经征用该OSP用于请求处理,那么当该请求的对应响应完整收到后,dispatcher会立即发送控制帧给OSP,告诉其立即退出。该机制确保了OSP永远不会在可能有请求发送过来的情况下直接退出,而是一定会尽快的安全退出。   6.Dispatcher支持安全退出和重启   由于维护的需要等原因,需要重启dispatcher进程,直接退出进程会导致当前承载的活动请求异常。NORADLE采用安全退出机制,进程会退出捕获退出信号,但先不立即退出,而是向其他所以连接到自己的clients/OSPs进程发送控制帧,告诉对端自己要退出,这样所有客户端就

文档评论(0)

guan_son + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档