{'fraction_non_alphanumeric': 0.012232415902140673, 'fraction_numerical': 0.0, 'mean_word_length': 5.545, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
AdaptCache: Adaptive Data Partitioning and Replication for Distributed Object Caches

This paper presents the AdaptCache project. AdaptCache is an adaptive caching middleware for application servers that monitors the current workload and generates policies to distribute and/or replicate objects and requests among the local caches of application servers so that most requests can be executed on locally cached objects and, at the same time, the load will be evenly distributed among servers. The project is divided into two main phases. The first one, which is described in detail in this paper, tackles the problem of dynamically distributing objects and requests for volatile and fluctuating e-commerce applications. Several data distribution approaches based on graph partitioning are proposed. The approaches are compared using the YCSB and RUBiS benchmarks showing that AdaptCache is able to dynamically capture various workload changes and react quickly to these changes. The second phase of the AdaptCache project explores data replication for distributed object caches. It discusses the advantages of object replication such as increased locality but also possible overheads due to consistency requirements and space limitations. Any dynamic replication solution must take these issues into account.