{'fraction_non_alphanumeric': 0.018953752843062926, 'fraction_numerical': 0.003032600454890068, 'mean_word_length': 5.3768115942028984, '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}}
Efficient XML Path Filtering Using GPUs

Publish-subscribe (pub-sub) systems present the state of the art in information dissemination to multiple users.Current XML-based pub-sub systems provide users with considerable flexibility allowing the formulation of complex queries on the content as well as the structure of the streaming messages. Messages that contain one or more matches for a given user profile (query) are forwarded to the user. Recently various approaches focused on accelerating XML path query filtering using dedicated hardware architectures, like FPGAs. Despite their very high throughput, FPGAs require extensive update time while their physical resource availability is also limited. In this paper we exploit the parallelism found in XPath filtering systems using GPUs instead, which are favorable platforms due to the massive parallelism found in their hardware architecture, alongside the flexibility and programmability of software. By utilizing properties of the GPU memory hierarchy we can match thousands of user profiles at high throughput, requiring minimal update time. Ecient common prefix optimizations are also applied to the query set. An extensive experimental evaluation shows an average speedup of 10x (up to 2.5 orders of magnitude) versus the state of the art software approaches.