{'fraction_non_alphanumeric': 0.014820592823712949, 'fraction_numerical': 0.0, 'mean_word_length': 5.080568720379147, '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}}
HelperCore_DB: Exploiting Multicore Technology for Databases

The current trend in microprocessor design is to keep the design simple while packing more processors on the same die in order to increase the performance. These chips are called chip multiprocessors (CMP) or multicores. While currently the parallelism provided by the multiple cores is used to achieve higher throughput, it is possible to split a single application into multiple tasks and execute them in parallel. In this work we propose to exploit the cores of a multi-core architecture in an alternative way. Instead of executing application code on all cores, some cores execute code that will indirectly result in a performance benefit for the application. We call these the helper cores and for this work we focus on the implementation of HelperCoreDB, a helper core for improving the performance of database workloads. The proposed implementation focuses on solving one of the most serious problems in memory-resident database applications, the memory latency penalty, by performing efficient data prefetching. As the prefetching is done by the helper core and the data is used in a different core, the only hardware requirement is that the helper and application cores share some level of the memory hierarchy.