Yoshifumi Ujibashi, Minoru Nakamura, T. Tabaru, T. Hashida, Motoyuki Kawaba, L. Harada
{"title":"PostgreSQL中高效并行处理的共享内存机制设计","authors":"Yoshifumi Ujibashi, Minoru Nakamura, T. Tabaru, T. Hashida, Motoyuki Kawaba, L. Harada","doi":"10.1109/IISA.2015.7388103","DOIUrl":null,"url":null,"abstract":"PostgreSQL is a reliable and mature OSS RDBMS that has become widely utilized in enterprise systems recently. In order to meet the increasing performance requirements of such systems, PostgreSQL OSS Community enforced PostgreSQL version 9.4 parallel execution framework introducing the Dynamic Shared Memory and the Dynamic Background Workers. However, the Dynamic Shared Memory does not guarantee that shared data are mapped to the same address space in the processes and thus data with pointers cannot be straightly shared without local copies. In this paper we propose a new shared memory framework called Shared MemoryContext that provides a shared memory mapped to the same address to all processes. It enables an efficient parallel processing in PostgreSQL by avoiding unnecessary data copies of inter-process shared data. The Shared MemoryContext interface is compatible with PostgreSQL's MemoryContext interface and thus existing PostgreSQL routines can be used for parallel processing without modification.","PeriodicalId":433872,"journal":{"name":"2015 6th International Conference on Information, Intelligence, Systems and Applications (IISA)","volume":"29 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2015-07-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"2","resultStr":"{\"title\":\"Design of a Shared Memory mechanism for efficient paralell processing in PostgreSQL\",\"authors\":\"Yoshifumi Ujibashi, Minoru Nakamura, T. Tabaru, T. Hashida, Motoyuki Kawaba, L. Harada\",\"doi\":\"10.1109/IISA.2015.7388103\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"PostgreSQL is a reliable and mature OSS RDBMS that has become widely utilized in enterprise systems recently. In order to meet the increasing performance requirements of such systems, PostgreSQL OSS Community enforced PostgreSQL version 9.4 parallel execution framework introducing the Dynamic Shared Memory and the Dynamic Background Workers. However, the Dynamic Shared Memory does not guarantee that shared data are mapped to the same address space in the processes and thus data with pointers cannot be straightly shared without local copies. In this paper we propose a new shared memory framework called Shared MemoryContext that provides a shared memory mapped to the same address to all processes. It enables an efficient parallel processing in PostgreSQL by avoiding unnecessary data copies of inter-process shared data. The Shared MemoryContext interface is compatible with PostgreSQL's MemoryContext interface and thus existing PostgreSQL routines can be used for parallel processing without modification.\",\"PeriodicalId\":433872,\"journal\":{\"name\":\"2015 6th International Conference on Information, Intelligence, Systems and Applications (IISA)\",\"volume\":\"29 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2015-07-06\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"2\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"2015 6th International Conference on Information, Intelligence, Systems and Applications (IISA)\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1109/IISA.2015.7388103\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"2015 6th International Conference on Information, Intelligence, Systems and Applications (IISA)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/IISA.2015.7388103","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Design of a Shared Memory mechanism for efficient paralell processing in PostgreSQL
PostgreSQL is a reliable and mature OSS RDBMS that has become widely utilized in enterprise systems recently. In order to meet the increasing performance requirements of such systems, PostgreSQL OSS Community enforced PostgreSQL version 9.4 parallel execution framework introducing the Dynamic Shared Memory and the Dynamic Background Workers. However, the Dynamic Shared Memory does not guarantee that shared data are mapped to the same address space in the processes and thus data with pointers cannot be straightly shared without local copies. In this paper we propose a new shared memory framework called Shared MemoryContext that provides a shared memory mapped to the same address to all processes. It enables an efficient parallel processing in PostgreSQL by avoiding unnecessary data copies of inter-process shared data. The Shared MemoryContext interface is compatible with PostgreSQL's MemoryContext interface and thus existing PostgreSQL routines can be used for parallel processing without modification.