Cássio M. M. Pereira, D. C. Lobato, C. Teixeira, M. G. Pimentel
{"title":"使用DSM在发布/订阅中间件中实现因果排序和总排序","authors":"Cássio M. M. Pereira, D. C. Lobato, C. Teixeira, M. G. Pimentel","doi":"10.1145/1462802.1462813","DOIUrl":null,"url":null,"abstract":"Causal and total event ordering are Quality of Service guarantees needed by many distributed applications, such as collaborative whiteboards, chat systems, online multiplayer games, and has also usage when implementing active replication, replicated databases and other systems. Most state of the art Publish/Subscribe middlewares offer no guarantees regarding event ordering either because of the bandwidth overhead associated with the vector clock approach or the bottleneck of a central sequencer. In this paper we propose an architecture based on distributed shared memory, where publishers of the same group can publish at different brokers, while maintaining event ordering. By synchronizing broker access to one shared logical clock per group, causal and total event ordering is achieved. Our architecture allows events to be delivered out-of-order to subscribers, while giving them a way to correctly reorder events. Results of experiments with a reference implementation of the architecture show that the bandwidth consumption of our ordering mechanism can be three orders of magnitude lower than a vector based solution.","PeriodicalId":376035,"journal":{"name":"Middleware for Service Oriented Computing","volume":"43 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2008-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"8","resultStr":"{\"title\":\"Achieving causal and total ordering in publish/subscribe middleware with DSM\",\"authors\":\"Cássio M. M. Pereira, D. C. Lobato, C. Teixeira, M. G. Pimentel\",\"doi\":\"10.1145/1462802.1462813\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Causal and total event ordering are Quality of Service guarantees needed by many distributed applications, such as collaborative whiteboards, chat systems, online multiplayer games, and has also usage when implementing active replication, replicated databases and other systems. Most state of the art Publish/Subscribe middlewares offer no guarantees regarding event ordering either because of the bandwidth overhead associated with the vector clock approach or the bottleneck of a central sequencer. In this paper we propose an architecture based on distributed shared memory, where publishers of the same group can publish at different brokers, while maintaining event ordering. By synchronizing broker access to one shared logical clock per group, causal and total event ordering is achieved. Our architecture allows events to be delivered out-of-order to subscribers, while giving them a way to correctly reorder events. Results of experiments with a reference implementation of the architecture show that the bandwidth consumption of our ordering mechanism can be three orders of magnitude lower than a vector based solution.\",\"PeriodicalId\":376035,\"journal\":{\"name\":\"Middleware for Service Oriented Computing\",\"volume\":\"43 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2008-12-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"8\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Middleware for Service Oriented Computing\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/1462802.1462813\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Middleware for Service Oriented Computing","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/1462802.1462813","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Achieving causal and total ordering in publish/subscribe middleware with DSM
Causal and total event ordering are Quality of Service guarantees needed by many distributed applications, such as collaborative whiteboards, chat systems, online multiplayer games, and has also usage when implementing active replication, replicated databases and other systems. Most state of the art Publish/Subscribe middlewares offer no guarantees regarding event ordering either because of the bandwidth overhead associated with the vector clock approach or the bottleneck of a central sequencer. In this paper we propose an architecture based on distributed shared memory, where publishers of the same group can publish at different brokers, while maintaining event ordering. By synchronizing broker access to one shared logical clock per group, causal and total event ordering is achieved. Our architecture allows events to be delivered out-of-order to subscribers, while giving them a way to correctly reorder events. Results of experiments with a reference implementation of the architecture show that the bandwidth consumption of our ordering mechanism can be three orders of magnitude lower than a vector based solution.