Server Replication in Interactive, Push-Based Data Delivery Networks
- 格式:pdf
- 大小:122.02 KB
- 文档页数:10
sql server replication 类别-概述说明以及解释1.引言1.1 概述SQL Server Replication 是微软SQL Server 数据库管理系统提供的一项功能强大且灵活的数据复制技术。
通过SQL Server Replication,用户可以将数据从一个SQL Server 实例复制到另一个SQL Server 实例,实现数据库之间的数据同步和复制。
这项技术可以用于数据分发、备份、负载均衡和数据集成等多种场景,极大地提高了数据库系统的可用性和性能。
在本文中,我们将深入探讨SQL Server Replication 的工作原理、应用场景以及优缺点,希望能为读者提供全面的了解,并为其在实际应用中取得更好的效果提供帮助。
json{"1.2 文章结构":{"本文主要分为三个部分。
首先,在引言部分对SQL Server Replication进行概述,并介绍本文的目的和结构。
接着,在正文部分详细介绍了SQL Server Replication的简介、工作原理和应用场景。
最后,在结论部分进行总结,分析SQL Server Replication的优缺点,并展望未来的发展趋势。
通过本文的阐述,读者将对SQL Server Replication有更加全面的了解。
"}}1.3 目的SQL Server Replication 是一种用于在不同SQL Server 数据库之间同步数据的技术。
本文旨在深入探讨SQL Server Replication 的概念、工作原理和应用场景,旨在帮助读者更好地理解和应用这一技术。
通过本文的阐述,读者可以了解到SQL Server Replication 的优缺点,以及其在实际生产环境中的应用方法和可能遇到的问题,从而更好地利用这一技术提升数据库同步和数据管理的效率。
希望本文能够为读者提供有益的参考和指导,使其能够更加灵活、高效地利用SQL Server Replication 解决数据库同步和数据一致性的问题。
replication 命令详解replication命令是用于在数据库系统中进行数据复制的命令。
数据复制是指将一个数据库中的数据复制到另一个位置,通常用于数据备份、灾难恢复、负载均衡等目的。
在不同的数据库系统中,replication命令的具体用法和实现方式可能会有所不同,下面我将从多个角度详细解释replication命令的用法和相关知识。
首先,replication命令通常用于设置数据库的主从复制。
在主从复制中,一个数据库服务器充当主服务器,负责处理客户端的读写请求,而其他服务器充当从服务器,从主服务器复制数据。
replication命令通常包括设置主服务器、添加从服务器、启动复制等操作。
具体的命令和参数可能会因数据库系统而异,比如在MySQL中,可以使用CHANGE MASTER TO命令来设置从服务器的连接参数,使用START SLAVE命令来启动从服务器的复制进程。
其次,replication命令还可以用于监控和管理数据复制的状态。
通过replication命令,可以查看主从服务器的复制状态、延迟情况、错误日志等信息,以便及时发现和解决复制过程中的问题。
在MySQL中,可以使用SHOW SLAVE STATUS命令来查看从服务器的复制状态信息,包括复制是否正常、延迟多少秒等。
另外,replication命令还可以用于切换主从服务器、重新同步数据等操作。
当主服务器发生故障或需要维护时,可以通过replication命令将从服务器切换为主服务器,以确保系统的可用性。
在MySQL中,可以使用CHANGE MASTER TO命令来切换主从服务器,使用RESET SLAVE命令来重新同步数据。
总的来说,replication命令是数据库系统中非常重要的命令,它可以帮助我们实现数据的备份、灾难恢复、负载均衡等功能。
通过合理使用replication命令,可以提高数据库系统的可用性和性能,保障数据的安全和完整性。
sybase replication使用技巧sybasereplication使用技巧sybasereplicationserver高级使用指南复制服务器技巧汇总__常用配置1.激活分区partition越大越不好,大小必须为数据流量的6倍,通常可以降为2g.2.最小线程数必须大于连接数(数据库和激活服务器)除以2提3。
3.激活内存内存加强。
注意事项1.ase要建立专门用于复制的sa用户,而且账号密码要和复制服务器的一模一样。
2._rssd_prim账号缺少sa权限,导致rsm不能访问复制服务器的配置。
3.rsm客户端置需要配置id_server及它的数据库地址。
sybase激活服务器技巧汇总__常用操作方式1.搬迁激活服务器a)将相关数据库(rssd数据库及复制数据库)的复制代理断开sp_stop_rep_agentdb_name(ase)或是suspendlogtransferfrom{data_server.database|all}b)quiesce队列adminquiesce_force_rsi;使用adminquiesce_check检查c)删除正在使用的复制分区droppartitionpartition_name;d)喊停有关的激活服务器(或是摆起至路由)suspendroutetoreplication_server;e)搬迁激活数据库以及rssd数据库,服务器名称必须和以前的一致,再次创建激活服务器的ase用户,修正相连接配置文件。
f)对rssd数据库以及复制数据库的第二截断点归零use db_namegosp_stop_rep_agentdb_namegodbccsettrunc(‘ltm’,’ignore’)gouserssd_db_namegors_zeroltmdata_server,database;gousedb_namegodbccsettrunc(‘l tm’,’valid’)gog)增加复制分区addpartitionpartition_nameon‘device_name’withsizesize;h)扩建队列rebuildqueuesgoigorelossfromdata_server.database[todata_server.database|replic ation_server];i)恢复复制代理sp_start_rep_agentdb_name;(ase)2.建立默认错误处理类。
replication client和replication slave权限1. 引言1.1 概述引言部分旨在介绍本文的主题和背景,为读者提供对replication client和replication slave权限的基本了解。
本文将探讨这两种权限的定义、作用以及权限控制方式,并通过示例与应用场景展示其实际运用。
1.2 文章结构本文共分为五个部分,每个部分都涵盖了特定内容。
首先是引言部分,主要介绍文章的主题和目的,以及文章所包含的章节结构。
其后是replication client权限部分,我们将详细解释replication client权限的定义、作用和控制方式,并给出一些相关示例和应用场景。
然后是replication slave权限部分,我们会介绍replication slave权限的定义、作用和控制方式,并提供相应示例和实际应用场景。
接下来是区别与联系部分,我们将比较并说明replication client和replication slave在功能、权限方面的差异,并阐述它们之间的关系。
最后是结论部分,总结讨论结果并给出对客户端和从库权限区别及作用的实际应用建议。
1.3 目的本文旨在帮助读者深入了解并弄清楚replication client和replication slave这两种权限在数据库中扮演的角色和作用。
通过详细介绍其定义、功能和权限控制方式,读者将更好地理解这两种权限的区别并能根据实际需求合理运用。
同时,本文还将通过实例和应用场景的展示,帮助读者更好地了解其具体应用,并提供相应的建议以指导实际操作中的权限管理。
2. replication client权限:2.1 定义与作用:Replication client是指可以访问数据库复制功能的客户端程序或用户。
客户端通过使用replication client权限来控制对数据库复制功能的访问和操作权限。
该权限的作用在于允许客户端执行与数据库复制相关的操作,例如启动、停止或监视复制进程,设置和修改复制参数,以及查看复制状态等。
istio熔断配置参数
在Istio中,熔断是一种用于保护应用程序免受服务间故障的机制。
您可以通过配置以下参数来进行Istio的熔断配置:
1.maxConnections(最大连接数):定义允许的最大并发连接数。
超过此数量的连接将被拒绝。
2.httpConsecutiveErrors(连续错误阈值):定义在触发熔断之前连续出现的HTTP 错误次数。
达到此阈值后,将触发熔断。
3.httpDetectionInterval(HTTP 探测间隔):定义用于检测失败请求的时间间隔。
在此间隔内,如果出现连续错误次数超过阈值的情况,则会触发熔断。
4.sleepWindow(休眠窗口):定义触发熔断后的休眠时间,即熔断器打开后暂停对服务的请求的时间段。
5.requestV olumeThreshold(请求数量阈值):定义在进行熔断判断之前,必须满足的最小请求数量。
6.errorRatioThreshold(错误比例阈值):定义触发熔断的错误比例阈值。
当请求错误率超过此阈值时,将触发熔断。
这些参数可以在Istio 的DestinationRule 资源中进行配置,以指定适当的熔断策略。
请注意,这些参数可能会根据Istio 版本和配置方式有所不同,建议查阅Istio 官方文档以获取最新的详细信息。
1。
--cluster-replicas详解下载温馨提示:该文档是我店铺精心编制而成,希望大家下载以后,能够帮助大家解决实际的问题。
文档下载后可定制随意修改,请根据实际需要进行相应的调整和使用,谢谢!并且,本店铺为大家提供各种各样类型的实用资料,如教育随笔、日记赏析、句子摘抄、古诗大全、经典美文、话题作文、工作总结、词语解析、文案摘录、其他资料等等,如想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by the editor. I hope that after you download them, they can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!In addition, our shop provides you with various types of practical materials, such as educational essays, diary appreciation, sentence excerpts, ancient poems, classic articles, topic composition, work summary, word parsing, copy excerpts, other materials and so on, want to know different data formats and writing methods, please pay attention!--cluster-replicas详解:优化Redis集群性能的利器Redis作为一款高性能的内存数据库,在大规模应用中扮演着关键角色。
vSphereReplication5.5操作⼿册vSphere Replication 操作⼿册北京先进数通信息技术股份公司主机与虚拟化业务中⼼2015年4⽉1vSphere Replication的安装1.1安装准备1.1.1⽹络准备根据源虚拟机所在主机集群的⽹络配置,在⽬标主机上配置相同的⽹络配置。
1.1.2把源虚拟机所在主机添加到vSphere Replication所在的vCenter Server中1.1.2.1 添加主机,按要求输⼊源主机的IP地址及⽤户名、密码;1.1.2.2 在安全警⽰提⽰窗中,选择“是”,信任主机;1.1.2.3 在重复管理提⽰框中,选择“是”,我们将接管该主机,该主机将中断与原VC的连接;1.1.2.4 在下图中,将看到该主机所有的虚拟机清单;1.1.2.5 在分配许可证页⾯,为该主机添加新的许可证密钥;1.1.2.6 在锁定模式选择中,建议不启⽤锁定模式;1.1.2.7 检查改主机的基本信息,确认完成;1.2安装vSphere Replication1.2.1 登录vSphere Web Client在主机选项,点击右键“部署OVF模板”;1.2.2 选择本地⽂件,选中VR OVF模板,点击下⼀步;1.2.3 查看vSphere信息是否正确;1.2.4 接收协议;1.2.5 输⼊名称,选择⽂件夹路径,点击下⼀步;1.2.6 选择存放虚拟机的存储路径,点击下⼀步;1.2.7 选择⽹络,点击下⼀步;1.2.8 输⼊管理⽤户的密码,输⼊VR设备的IP地址,点击下⼀步;1.2.9 点击下⼀步;1.2.10 检查VR的配置信息,完成部署。
1.3配置vSphere Replication1.3.1 部署完成后打开vSphere Replication电源;1.3.2在浏览器中输⼊IP地址访问,⽤户名root;1.3.3 在配置界⾯中,验证⽹络配置及与VC是否关联;2虚拟机复制过程1.1登陆vCenter web client,右击虚拟机,选择“配置复制”;1.2 选择备份的⽬标站点1.3 选择备份服务器,因为在本项⽬中只涉及到⼀个备份服务器(VR),所以选择默认选项即可;1.4 选择备份位置;1.5 备份虚拟机的磁盘选项,本次操作安装要求选择精简模式;1.6 复制选项,选择默认即可;1.7 在备份配置页⾯,可以选择同步周期(RPO)及保留备份个数;1.8 操作完成;1.9 在vSphere Replication的监控界⾯,观察备份进度3恢复虚拟机过程2.1 登陆vCenter Web Client-vSphere Replication2.2 在导航栏点击“监控”按钮2.3 在“⼊站”复制的清单列表中,选择要恢复的虚拟机,选择“恢复”;2.4 在恢复操作中,按照如下截图完成,由于源虚拟机是开机状态,所以选择“使⽤最新的可⽤数据进⾏恢复”;。
云服务器英语术语以下搜集了一些在云服务器中会比较常遇到的一些术语,提供中英对照信息:1. 自由计算free computing2. 弹性可伸缩elastic and scalable3. 主机host / instance4. 硬盘hard disk/ volume5. 密钥key6. 公开密钥public key7. 映像image / mapping8. 负载均衡load balancing9. 对象存储object storage10. 弹性计算elastic computing11. 按秒计费charged by seconds12. 多重实时副本multiple real-time copy13. 安全隔离security isolation14. 异地副本long-distance copy15. 后端系统back-end system16. 前端系统front-end system17. 写时拷贝技术copy-on-write technique18. 控制台console19. 监控台dashboard20. 远程终端remote terminal21. 服务端口service port22. 模拟主机显示器simulation host display23. 路由器router24. 多路万兆光纤multiple 10000MB optical fiber25. 密码验证登录password authentication login26. 静态IP static IP27. 动态IP dynamic IP28. 混合云hybrid cloud29. SLA服务级别协议Service Level Agreement30. 分布式存储distributed storage31. 存储柜locker32. 云计算加速器cloud computing accelerator33. 美国国家标准技术研究所NIST(National Institute of Standards andTechnology )34. 智能电网 smart gird35. 智慧城市 smart city36. 物联网 Internet of Things (IOT)37. 集成电路 Integrated Circuit38. 嵌套虚拟化 nested virtualization39. 内存 memory40. 千兆 Gigabyte41. 网卡 network card42. 单线程测试 single thread test43. 最大素数测试 largest prime test44. 单核CPU single-core CPU45. 双核CPU dual-core CPU46. 磁盘吞吐量 disk throughput47. 边界网关协议 BGP(Border Gateway Protocol)48. 语音控制 voice control49. 湿度 humidity50. 智能分析 intelligent analysis51. 面向服务的架构SOA(Service Oriented Architecture)52. 开源操作系统 Open Source Operating System53. 虚拟机 virtual machine54. 源代码 source code55. 文档 document56. 全媒体 omni-media57. API接口 API interface58. 快照 snapshot59. 工单系统 ticket system60. 堡垒机 fortress machine61. 单点登录 SSO single sign on62. 脚本管理 script management63. 拓扑管理 topology management64. 数据提取、转换和加载ETL(Extraction-Transformation-Loading )65. 网络流量network traffic66. 域名绑定domain banding67. 文件外链external document linking68. 防篡改tamper-proofing69. 防抵赖non-repudiation70. 端到端end-to-end71. 全景透视panoramic perspective72. 多维度特征识别multidimensional characteristic identification73. 检索retrieval74. 存储矩阵storage matrix75. 示例代码sample code76. 可执行代码executable code77. 远程擦除remote wipe78. 底层固件bottom firmware79. 存储分级storage tiering80. 回写式高速缓存Write-back Cache81. 软件定义存储software defined storage82. 横向可扩展存储 transverse extensible storage83. 模块化数据中心Modular Data Center84. DNS域名系统Domain Name System85. 封顶capping86. 芯片chip87. 第三方软件开发商ISV ( Independent Software Vendor)88. 特征向量Feature Vector89. 远程异地备份remote backup90. 虚拟显示技术visual vision91. 虚拟现实Virtual Reality (VR)92. 数据记录器Data Recorder93. 业务连续性管理Business Continuity Management (BCM)94. 钢筋砼框架reinforced concrete frame95. 防爆墙blast wall96. 入侵检测探测器intrusion detector97. 弱电间low voltage room98. 门禁系统access control system99.网络接入商web portal provider100. 审计日志audit logs101.不间断电源 UPS(Uninterrupted Power Supply)102. 柴油发电机 diesel generator103. 地下储油罐 underground petrol tank104. 多节点集群 multi-node cluster105. 预案 emergency response plan106. 高速复制链路 high-speed copying link107. 容错级 fault tolerance108. 里程表 milestone109. 制冷密度 cooling density110. 千瓦 kilowatt111. 灭火方式 fire extinguishing method112. 防渗漏等级 anti-leakage level113. 机房均布荷载 computer room even load114. 全冗余 full redundancy115. 两路市电 two-way electricity116. 一路自卑应急 one-way self-prepared emergency power117. 9度烈度 9 degree seismic intensity118. 密文 ciphertext119. 专属机柜 exclusive rack120. 设备上下电支持upper and lower electricitysupport121. 网络布线 network cabling122. 实时热备份 real time thermal backup123. 桌面演练 desktop practice124. 模拟切换演练 simulated switch practice125. 园区占地面积 floor area of the park126. 规划建设面积 planning construction area127. 高速链路复制 high-speed copying link128. 7※24hours 7 multiply 24 hours129. 安全和访问控制 security and visiting control (物理环境)。
replication manager切换原理replication manager切换原理是指在数据库系统中,如何实现高可用性的数据复制以及在主节点发生故障时如何无缝地切换到备用节点。
在分布式环境中,使用复制集群可以提高系统的可用性和性能。
replication manager切换原理的关键在于以下几个步骤:1. 主节点监测:replication manager会定期检查主节点的健康状态。
如果主节点发生故障,replication manager会立即察觉到并开始切换过程。
2. 从节点选择:在主节点故障后,replication manager会从备用节点中选择一个合适的节点作为新的主节点。
通常选择的主节点是最优的备用节点,具备足够的处理能力和存储能力来接管主节点的工作负载。
3. 数据同步:一旦新的主节点被选定,replication manager会确保所有的备用节点都与新的主节点进行数据同步。
这包括将主节点上的所有更新操作同步到备用节点,以保持数据的一致性。
4. 客户端重定向:在主节点切换完成后,replication manager会通知所有的客户端切换到新的主节点。
这需要对客户端进行重定向,使其连接到新的主节点,并继续正常的操作。
5. 故障修复:一旦主节点恢复正常,replication manager会检测到并将其重新配置为主节点的一部分。
这将重新启动数据复制过程,以确保所有的节点都保持一致。
总结而言,replication manager切换原理通过监测主节点的状态,选择合适的备用节点,进行数据同步,并重定向客户端的连接来实现主节点切换。
这种切换方法确保了数据库系统在主节点故障的情况下仍能提供高可用性和可靠的数据访问。
Server Replication in Interactive,Push-Based Data Delivery NetworksNikhil IyerComputer Science and Engineering Department Arizona State University,Tempe,AZ85281,USA Email:nikhil.iyer@K.Selc¸uk CandanComputer Science and Engineering Department Arizona State University,Tempe,AZ85281,USAEmail:candan@Abstract—In a push-based system,updates that are made to objects are sent to clients,without them explicitly re-questing these updates.The focus of this research is to develop a server replication protocol for such interactive, push-based networks.When a server gets overwhelmed and is serving more clients than it can handle,a replica is created.After the replication,a portion of the clients connected to the overwhelmed server are redirected to the new replica.The decisions(a)“at which particular server the replica is created”and(b)“which clients are redirected”can greatly influence the performance observed by the clients,the level of the service provided by the server, and the overall level of satisfaction with the functioning of the servers.In this paper,we identify a number of parameters that influence the selection of a new server and we develop an efficient and effective protocol,based on these parameters.The performance of the protocol is investigated through simulation.The protocol performs close to an ideal placement of objects and clients.On average a savings of 25%in was observed when compared with an uninformed strategy.I.I NTRODUCTIONWeb sites can serve static or dynamic data;but con-ventional web servers(such as the popular Apache Web server)do not allow users to interact with each other;i.e,a user/client who enters a web site is unaware of the presence of other clients visiting the same site.There is no interaction between these clients.Recently a number of companies,such as Adobe Atmosphere[17],made available web servers capable of serving3D virtual worlds where users can interact with each other as well as the objects in the world(Figure1).Therefore the content provided by these servers are not only dynamic and visually rich,but also interactive[7],[8],[11].In an interactive distributed client-server system,each client views,updates,and/or tracks changes made to a set of objects.In such a system,any update to any object has to be sent to all other clients interested in this particular object(Figure2).Therefore,deployment of Internet-scale3D worlds poses many technical challenges. First of all,the network can cause variable access latency and this may introduce consistency challenges.The data consistency challenge in such distributed systems has been dealt by[5],[6].In addition,rapidly changing3D content requires large bandwidth and puts heavy loads on the3D servers.From time to time,as the number of clients interested in a particular object increases,it is possible that the server serving this object might get overwhelmed.When this happens and when the quality of service falls below a level that is acceptable,steps need to be taken to remedy the situation.One widely used approach dealing with server overload is the creation of replicas of the existing object and the server.The focus of this research is on identifying a replica server from a selection of servers in such a way that the benefit to the client is maximized and the network cost associated with maintaining the system is kept as low as possible.Although considerable work has been done in thefield of server replication[9],[10],[4],[15],[14] a vast majority of this work is in thefield of pull-based systems.Our goal,on the other hand,is to develop a protocol/algorithm that addresses the unique challenges introduced by interactive,push-based systems. Conventional data management systems are pull-based: queries or transactions are executed only when they are explicitly requested by a user or an application program;i.e.,transfer of data from servers to clients is initiated by an explicit client pull(Figure2).However in a push-based (or a publish/subscribe)system,updates are sent to clients not when they request it,but as needed(for instance, depending on the rate of updates to a particular object). In an environment where multiple users are interacting within a virtual world,an update to the spatial location of an object(say,avatar)has to be transmitted to all the clients that are in its vicinity.When a server is overwhelmed,an available network node needs to be selected to replicate the objects present on the overwhelmed server.To reduce the load,a portion of the clients currently connected to the server being overwhelmed need to be redirected to the new server.In this paper,we propose a server replication scheme that maximizes the benefit to the end-users while minimizingFig.1.An interactive Atmosphere environment(picture taken fromFig. 2.Pull-based content delivery versus interactive,push-based deliverythe network cost of the system.We study the factors that contribute to the quality observed by end-users and the network cost.We use these factors as parameters while making decisions regarding the replication of the server and selection of clients to be redirected.The goal of our work is to achieve these tasks with as much local information as possible.The protocol proposed in this research is designed to be used as part of a push-based content delivery network with the ability to easily and transparently spawn new copies of the servers as and when the requirement arises.A.Related WorkIn the Internet,it is often advantageous to place content as close to users as possible in order to remove sources of network delay[21],[22],[23],[24],[25].Server farms,provided by various companies including Digital Island[26],MirrorImage[28],are possible external scal-ability solutions.Several high-technology companies are competing feverishly with each other to establish network infrastructures refereed to as a content delivery networks (CDNs)[27].The key technology underlying all CDNs is the deployment of network-wide caches which replicate the content held by the origin server in different parts of the network:front-end caches,proxy caches,edge caches, and so on.Traditionally,CDN replication has been treated as a facility placement problem[21],[24].Liu,et al.describe some of the salient features that distinguish push and pull based systems[3].PASTRY [1]provides efficient and fault-tolerant routing,object location and load balancing within a self-organizing over-lay network.SCRIBE[2],built on top of PASTRY[1]is a publish/subscribe system.Rendezvous point forwards the data along the multicast tree formed by the reverse paths from the rendezvous point to all subscribers.Fei et al.propose a scheme to allocate servers to clients in a way that minimizes clients’response times in multicast systems[13].Crovella et al.study techniques tofind good service providers without prior knowledge about the server location and network topology.They consider the use of two distance metrics in the Internet:hops and round-trip latency[4].Xu et al.propose a data replica placement strategy and the concept of transparent replica proxy replication[14].They define a cost value which is a function of read rate,write rate and distance between the clients and servers.[18]introduces the Constrained Mirror Placement(CMP)problem to reduce round trip time between clients and mirrors and the load on the servers. Sivasumramanian et al.propose dynamic selection of replication and caching strategies.The choice of the best strategy for a particular situation is made by simulating the recent past and observing the performances of differ-ent strategies[19].Pang,et al.propose object placement strategies[20]for distributed multiplayer games. Streaming data(such as live video)services on the Internet is another example of a push-based system.Once a client has subscribed to a streaming service,streaming data(such as a live video)is sent to the client without the client making an explicit request.The problem with providing commercial quality streaming services on the Internet are scalability(the possibility of a large user population being physically wide spread makes scalability an issue),QoS concerns(clients have QoS expectations), reliability,and Intelligent server replication is also used to overcome the QoS concerns and reliability[15]for streaming data systems.Recently there has been con-siderable interest in using proxies and application level overlays for streaming data delivery[29],[30],[31], [32],[33].In addition to these mentioned research ac-tivities,many CDN vendors provide various solutions for streaming media delivery on the Internet.In the solutions provided by Akamai[27],streaming media is distributed close to the users.It also reduces bandwidth requirement at the origin media server site because media is served from the edge cache servers.RealProxy by RealNetworks[34]is software installed on a network or ISP gateway that aggregates and handles client requests for media streamed.Replication improves reliability and availability[35],[36],[37].The main difference between server replication schemes for video delivery and the schemes we propose in this paper is that,in most existing systems,data originated in content providers’data servers.Fig.3.Two virtual worlds,and the objects within,served by the same server.A client is viewing one of these virtual worlds;i.e.,the objects in this world is in the hotset of the client.The objects are assigned priorities based on how important they are for proper visualization of the world:closer objects are given higher priorities.In the architecture we investigate in this paper,however, updates to the objects are initated by the end-users of the system themselves and have to be propogated to the other end-users interested in seeing the updates.B.Contributions of this PaperOur focus in this paper investigating server replication schemes for distributed systems with the following prop-erties:•push-based:each end-user has a set of objects of interest(and this set can change over time)and changes to objects in this set needs to be propogated to the end-user continuously.•interactive:updates to the objects are very frequent and(instead of being driven by the content-provider) they are initated by the end-users of the system and have to be propogated to the other end-users interested in seeing the updates),In this paper,we identify a number of parameters that influence the selection of replica servers and we develop an efficient and effective protocol,based on these param-eters.The rest of this paper is organized as follows.Section II presents a formal specification of the problem domain. Various relevant parameters are introduced,the properties of the system and are highlighted,and an update prop-agation cost function is developed.Section III explains the design and implementation of the proposed protocol. Section IV presents experimental results for evaluation and analysis of the protocol.The experimental setup for the above mentioned experiments is also described. Section V concludes this paper.II.I NTERACTIVE P USH-B ASED C ONTENT D ELIVERY:P ROBLEM O VERVIEWWe model the network as a connected graph G(V,E), where V represents the set of clients(C)and servers(S), and E represents the network connections between clients and servers.G’(V,E’),the reachability graph of G is a clique,where E’represents the edges in the reachabilitygraph G’and each edge corresponds to the set of shortest paths between nodes in V.Note that each server may not have a full,up-to-date copy of this reachability graph. An object represents any kind of interactive data re-source.It could be an application,afile,or an avatar in avirtual world.Each object has a source/home,source(o k) where o k∈O.The source of an object is the server node that has the original copy of the object.This canbe compared to a rendezvous peer[1]in a multicast tree or a origin source in CDNs.Each client node subscribes to one server node for asingle object.A client has a number of objects that it may want to view.This set of objects is called the clients’hotset,hotset(c i),where c i∈C.Each client associates a priority with each object.The priority represents how important the object is to the client(Figure3). Updates to objects are initiated by clients.A client may update the state of any of the objects in its hotset and has to see any changes to its state made by other clients.These updates are transmitted in a push-based manner to all the other clients viewing/interacting with this object.Each server hosts at least one object and often more.Each server has a capacity associated with it.The value of capacity collectively represents constraints imposed on the server,in terms of memory,local bandwidth,and processing capabilities.If the load on the server exceeds the server’s capacity,then it has to offload some of the services to an other server.The following steps ensure consistency among the replicated servers:1)A client c i updates(changes the state)an objecto k present on one of the replicated servers s j(theserver the client is connected to).2)The update is transmitted from server s j to theserver which is the source of the object o k.3)The update is then transmitted from the source ofthe object to all the servers that have a copy of theobject o k.4)Each server then transmits the update to all clientthat are currently connected to it and are interestedin viewing updates made to the object o k.A.Content Replication and Client RedirectionWhen a server is overwhelmed,a new server nodeneeds to be selected to replicate the objects present on the overwhelmed server.Clients currently connected to this server need to be redirected to the new server.The entire process of server replication consists of the following steps1)An overwhelmed server makes the decision to repli-cate.2)A replica of the server is created at a suitablenetwork node.3)A portion of the clients connected to the replicatedserver are redirected to the newly created server. In this paper our focus is to determine which net-work node to use for replication when a server gets overwhelmed and which clients to redirect to the new server.The main criterion we use for making these decisions is the maximization of end-user satisfaction and minimization of the update propagation cost.In this research,we focus on creating a single copy of a server,when it gets overwhelmed.Obviously,there are advantages of creating multiple replicas simultane-ously when the network receives a surge of new clients. Spawning multiple replicas can help tackle such surge conditions.The proposed protocol can be easily extended to create more than one replica simultaneously.If the decision to replicate is triggered after a server gets overwhelmed,there is the danger of the server not being able to provide service to the existing clients until a new server is created and some clients are redirected to the new server.In order to avoid such a situation, some kind of forecasting technique is required to predict future client demand and create new servers even before a server get overwhelmed,ensuring continuous service. In this paper,we do not tackle the issue of deciding when to trigger server redistribution and assume that a separate process handles the decision of when to trigger replications.In the next subsection,we introduce the various param-eters used in the rest of the paper.B.The Constraints that the System has to ObeyIn this subsection,we model the salient characteris-tics of the push-based content delivery system.Table I presents the list of parameters that are used in this section. Clients subscribe to objects in their hotsets:•a client c i subscribes to a server s j for an object o k only if o k is in the clients hotset,•if the object o k is in the clients c i hotset,then c i subscribes to only one server for o k. Therefore,∀i∀kjY i,k,j=Z i,k(1)The system ensures objects availability:each object o k is placed on at least one server s j:∀kjX k,j≥1(2)A client c i can subscribe to a server s j for an object o k, only if s j has the object o k:∀i∀k∀j(Y i,k,j≤X k,j)(3)Symbol MeaningC the set of clients.c i∈C denotes a client.S the set of servers.s j∈S denotes a server.O the set of objects.o k∈O denotes an object.pri i,k the priority client c i associates with object o k.freq i,k the expected frequency with which client c i updates object o k.source(o k)the source/home of object o k.This is similar to the rendezvous peer in[1].An update made to o k istransmitted to source(o k),and from there to all serversthat have a copy of o k.size(o k)the size of object o k.Size abstracts to the amount of resources required to maintain the object on the server.cap(s j)the capacity of server s j.This denotes the total amount of resources available on the server for objects.D i,j the delay between network node i and network node j.R i,j the resources needed to push an update from network node i to network node j.T j the maximum number of clients a server s j can provide service to.X k,j whether object o k is present on server s j.Y i,k,j whether client c i subscribes to server s j to view object o k.Z i,k whether object o k is in client c i’s hotset(hotset:a object is in a client’s hotset if the client is interested in viewingand/or making changes to the object).A i,j whether client c i is attached to(subscribed to at leastone object on)server s j.TABLE IS YSTEM PARAMETERSThe sum of the sizes of the objects on a server s j does not exceed the maximum capacity of the server:∀jk(size(o k)×X k,j)≤cap(s j)(4)The number of clients that a server s j can service is less than or equal to the threshold:∀jiA i,j≤T j(5)Given these constraints,(explained next)the update propagation cost needs to be minimized and user satis-faction is maximized.C.Objective:Maximization of end-user Satisfaction and Minimization of Update Propagation CostThe goal of proposed replication protocol is to deter-mine where to create a replica of an overwhelmed server and which clients to redirect to the new replica.There is a certain cost associated with maintaining a replicated system:updates have to be propagated to the clients interested in these updates.1)Network Cost:The effect of updates made by a client c i on an object o k can be computed as follows (Figure4):Client c i is subscribed to server s j and source(o k)is the source of the object updated by c i.Each update is sent from c i to s j and from s j to source(o k).Fig.5.Update to object o k being pushed to all interested clients Therefore,the update cost of this user for all updates in a unit time can be computed asfreq i,k×(R i,j+R j,source(ok)),(6) where freq i,k is the frequency with which c i updates object o k.Each update to o k is,then,sent from source(o k) to all servers that have a copy of o k and from those servers to all clients interested in viewing o k(Figure5).The cost of pushing updates to an object is the product of the total frequency with which the object is updated and the cost associated with pushing a single update to the object.Therefore,the network cost of pushing updates to interested clients isi freq total(k)×j(R source(ok),j+R j,i)(7)The system should minimize the overall network cost:net cost=i,k,j freq i,k×(R i,j+R j,source(ok))×Y i,k,j+i,k,j freq total(k)×(R source(ok),j+R j,i)×Y i,k,j2)User Dissatisfaction due to Delays:Each updateto object o k travels from the updating client,c u,to anobserving client,c i,through server source(o k).The end-to-end delay can therefore be computed as(D u,j+D j,source(ok))+(D source(ok),l+D l,i)(8)If an object is updated more often then the others,thenthis delay is will be more visible and bothersome to theend-users:ufreq u,k×(D u,j+D j,source(ok))+(D source(ok),l+D l,i)(9)Furthermore,the priority each client assigns to objectsalso affect the degree of dissatisfaction caused by delays:pri i,k×ufreq u,k×(D u,j+D j,source(ok))+(D source(ok),l+D l,i)(10)Therefore,the effects of updates to an object on theclient satisfaction is the product of the client’s priority,thefrequency with which the that particular object is updated,and the delays associated with the updates.The proposed system aims to minimize the worst-caseuser dissatisfaction with the system:user dis=max ikpri i,k×ufreq u,k×((D u,j+D j,source(ok))×Y u,k,j+(D source(ok),l+D l,i)×Y i,k,l)Our goal is to minimize the negative effects of theupdates on the end users while also keeping the networkoverhead low.III.A CHIEVING THE O BJECTIVESThe parameters that can affect the user satisfaction andthe network cost are both user and system dependent.Before we propose a solution,wefirst discuss the reasonswhy one may prefer to choose a particular server(s x)for replication over the others when a server(s j)isoverwhelmed.•Observation I:If a large number of client nodes aresubscribed to s j from the same geographical locationclose to s x and far from s j,then placing a replicaof the object at s x may reduce the overall updatepropagation cost.•Observation II:If clients that are subscribed to s jand that are close to s x are viewing objects that areupdated more frequently than other objects,then thismay also reduce the overall update propagation cost.If a replica of the frequently updated object is placedat s x,then the total number of update messages willbe reduced(instead of sending an update to every client,just one is sent from the source of the object to s x and then from s x to the clients).•Observation III:If clients that have high priorities for a particular object located at s j are close to s x,then the delay associated with the viewing/making changes to the object need to be kept at a minimum.If a replica of the object is located closer to suchclients,then the overall client satisfaction is maxi-mized.•Observation IV:If s x has large amount of residual capacity(space,processing power,bandwidth),then it may be a good candidate for replication.This means that s x is currently not overburdened and placing a replica there is not likely to overwhelm s x.The goal of this research is to develop a distributed pro-tocol/algorithm that achieves the objectives stated in II-C.The protocol proposed in this research aims replacing a single large server by a push-based content delivery network,with the ability to easily and transparently spawn new copies of the servers as and when the requirement arises(growing phase)and shrink the overall delivery network when the load drops(shrinking phase).We use the parameters described in Table I to determine where and when to create server replicas.All these parameters influence the performance of the system and,therefore, should be used when selecting a new replica server. In the following sections,we present the growing and shrinking protocol used for managing the push-based content delivery network.A.Overview of the Growing ProtocolIn this section,we present the overview of the protocolused for determining which server to use for replication when a server is overwhelmed.Our primary goal is to ensure that the protocol can be implemented in a distributed way:each server should be able to choose how to grow based on the information available to itself, without having to retort to the use of a central authority. Let num clients be the number of clients subscribed (viewing one or many objects)to the current,over-whelmed server.The server that becomes overwhelmed uses the following high-level steps to choose which server will contain a new replica of the objects it contains: 1)The overwhelmed server should choose one(ormore)servers,among the ones it knows about,forreplication.In this paper,we do not address theissue of deciding when to trigger server redistribu-tion.We assume that there is a separate process atthe server which identifies when to trigger redistri-bution based on the local resources as well as basedon the growth rate.2)The overwhelmed server should choose a portion ofthe clients it is serving for redirection to the newserver(s).The following subsections provides details of the pro-posed protocol.1)Selecting Candidate Servers:Let s j be the over-whelmed server.Among the servers that s j knows about, those that have enough capacity for replication and serv-ing new clients are chosen as candidates:•The server must have residual capacity greater than the size of the server being replicated.•The server must have the ability to host num clientsnum of new replicasmore clients.In this research, we focus on creating a single copy of a server and do not tackle simultaneous creation of multiple replicas when a server gets overwhelmed.2)Choosing the Right Candidate Server:The overall objective is to minimize the update and push costs for all clients,objects,and replicas as the demand grows. In Section II,we have seen that this involves a number of parameters including(a)objects locations,sizes,and update rates(b)server locations and capacities,(c)net-work topology and the delays between servers,and(d) clients needs,hotsets,and object priorities.Therefore,an optimal decision as to where to replicate would require global information,such as the total update rate to objects being replicated and the maximum priorities clients attach to these objects.In order to accommodate both priority and update frequency of the objects,without having to collect global information,we introduce the concept of criticality,which is defined as the product of the priority a given client has for a particular object and the frequency of this client’s update rate for this particular object.Criticality of an object o k for a client c i is defined as follows:CT i,k=freq i,k∗pri i,k(11) Intuitively,this represents how important a particular object is to a client.Criticality can be computed for an object/client pair without any global information.As discussed in Section II,for each object o k viewed by a client c i on the server s x,there is an associated update propagation cost:dist cost i,k,x=D i,x+D x,source(ok)(12) Therefore,for each candidate server,s j can calculate a server score that captures(a)the needs(criticality)of the local clients and(b)the update propagation cost for thelocal objects(dist cost): server score(s x)=ikCT i,k∗dist cost i,k,x∗Y i,k,j(13)The server s j will select the candidate server s x withthe lowest server score for replication.Note that s jcalculate the value of server score(s x)without knowing which clients will be the redirected to the selected replicaserver.Therefore,the next task of s j is to choose theclients to redirect.3)Selecting Clients to Redirect:As we stated in theprevious section,in this paper we do not consider simul-taneous creation of multiple replicas when a server gets overwhelmed.Once the appropriate server for replication has been determined,a portion of the clients connected to the original server need to be redirected to the newly created replica.For each client c i connected to itself,the overwhelmed server s j calculates the added cost associated with redi-rection.Let client c i be viewing object o k through server s j and let s x be the newly created replica of s j.Then,s j can compute a penalty value associated with redirection of this client:addedcost i=k CT i,k∗(dist cost i,k,x−dist cost i,k,j)(14)Clearly,s j would like to select the clients with the lowest penalty for redirection.Redirecting the lowest-penaltynum clients2clients to the new server ensures that clientsare redirected to the new server in such a way that the total increase in cost of maintaining(clients updating objects and those updates being transmitted to interested clients) the system is minimum.4)Overhead Analysis:The server may need to ex-change information collection messages with the clients connected to it.These are all local information collection messages and can regularly be refreshed so that they do not need to be collected after the server faces overload. In either case,these steps are performed once for each replication and are amortized over time through savings in update propagation.B.Overview of the Shrinkage ProtocolIf a situation arises in which a server is being consis-tently underutilized,then steps need to be taken to avoid a prolonged waste in resources.This can be achieved by directing the clients connected to the underutilized server to another existing server.This phase of the protocol is called the shrinkage phase.The shrinkage protocol should achieve the following goals.•Eliminate unnecessary replication.•Avoid repeated growth followed by shrinkage of the resources.•The clients are redirected to a new server in sucha way that it does not cause the new server to getoverwhelmed.When a server s j is consistently underutilized,we use a protocol similar to the growth protocol.For all candidate servers,s j computes server scores.Then,all clients connected to s j are redirected to the server s x, with the lowest server score.If s j is the source of any object,s x is declared to be the new source of the object. Note that the shrinkage phase does not create a new server,but uses an existing server.the growth algorithm, however,did not assign an added advantage to a server that already has a copy of the objects present on the replica that is being eliminated.If a server has a copy of the object already,then there is no need to replicate that object at the new server.Let s j be the server that is to be shrunk.When deciding on which server,s x,to shrink to both server score(s x)and the number of objects that are present on both s j and s x are considered.IV.E XPERIMENTAL E VALUATIONIn this section,we present simulation-based exper-iments that have been conducted for various network configurations and various other system parameters.A.Experiment SetupIn this section,we compare the results obtained by the (a)proposed protocol have been compared with the results obtained by(b)random placement,where•client goes to the server closest to it to access the object and•if a server gets overwhelmed,a new server is ran-domly chosen for replication;(c)user ideal placement,where•the client placement and replication strategy are de-termined by solving non-linear mixed integer prob-lems specified based on the constraints stated in Section II subject to the least possible user dis-satisfaction objective function.We used LINGO to generate ideal solutions.(d)network ideal placement,where•the client placement and replication strategy are de-termined by solving non-linear mixed integer prob-lems specified based on the constraints stated in Section II subject to the least network cost objective function.We,again,used LINGO to generate ideal solutions.(e)no priority protocol based placement,where•the objects are replicated using the proposed proto-col,except that user priorities are ignored.The no priority protocol based placement is essentially a heuristic to the network ideal placement.。