David Zhao, Pavle Subotic, Mukund Raghothaman, Bernhard Scholz
{"title":"迈向数据的弹性增量化","authors":"David Zhao, Pavle Subotic, Mukund Raghothaman, Bernhard Scholz","doi":"10.1145/3479394.3479415","DOIUrl":null,"url":null,"abstract":"Various incremental evaluation strategies for Datalog have been developed that reuse computations for small input changes. These methods assume that incrementalization is always a better strategy than recomputation. However, in real-world applications such as static program analysis, recomputation can be cheaper than incrementalization for large updates. This work introduces an elastic incremental approach with two strategies that can be selected based on the impact of the input change. The first strategy is a Bootstrap strategy that recomputes the entire result for high-impact changes. The second is an Update strategy that performs an incremental update for low-impact changes. Our approach allows for a lightweight Bootstrap strategy suitable for high-impact changes, with the trade-off that Update may require more work for small changes. We demonstrate our approach using real-world applications and compare our elastic incremental approach to existing methods.","PeriodicalId":242361,"journal":{"name":"23rd International Symposium on Principles and Practice of Declarative Programming","volume":"134 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2021-09-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"4","resultStr":"{\"title\":\"Towards Elastic Incrementalization for Datalog\",\"authors\":\"David Zhao, Pavle Subotic, Mukund Raghothaman, Bernhard Scholz\",\"doi\":\"10.1145/3479394.3479415\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"Various incremental evaluation strategies for Datalog have been developed that reuse computations for small input changes. These methods assume that incrementalization is always a better strategy than recomputation. However, in real-world applications such as static program analysis, recomputation can be cheaper than incrementalization for large updates. This work introduces an elastic incremental approach with two strategies that can be selected based on the impact of the input change. The first strategy is a Bootstrap strategy that recomputes the entire result for high-impact changes. The second is an Update strategy that performs an incremental update for low-impact changes. Our approach allows for a lightweight Bootstrap strategy suitable for high-impact changes, with the trade-off that Update may require more work for small changes. We demonstrate our approach using real-world applications and compare our elastic incremental approach to existing methods.\",\"PeriodicalId\":242361,\"journal\":{\"name\":\"23rd International Symposium on Principles and Practice of Declarative Programming\",\"volume\":\"134 1\",\"pages\":\"0\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2021-09-06\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"4\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"23rd International Symposium on Principles and Practice of Declarative Programming\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/3479394.3479415\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"23rd International Symposium on Principles and Practice of Declarative Programming","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3479394.3479415","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
Various incremental evaluation strategies for Datalog have been developed that reuse computations for small input changes. These methods assume that incrementalization is always a better strategy than recomputation. However, in real-world applications such as static program analysis, recomputation can be cheaper than incrementalization for large updates. This work introduces an elastic incremental approach with two strategies that can be selected based on the impact of the input change. The first strategy is a Bootstrap strategy that recomputes the entire result for high-impact changes. The second is an Update strategy that performs an incremental update for low-impact changes. Our approach allows for a lightweight Bootstrap strategy suitable for high-impact changes, with the trade-off that Update may require more work for small changes. We demonstrate our approach using real-world applications and compare our elastic incremental approach to existing methods.