{'fraction_non_alphanumeric': 0.019128586609989374, 'fraction_numerical': 0.0, 'mean_word_length': 5.948339483394834, '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}}
Garbage Collection in Single-Site and Distributed Systems via Hybridisation of The Beltway and Train Algorithms

An increasingly prevalent developmental paradigm in garbagecollection research is hybridisation; i.e. developing new approaches from synthesis of two existing algorithms. The aim is to combine complementary techniques in a cooperative manner so that desirable qualities from each progenitorare retained,while detractionsfoundin oneare ameliorated by the other. This paper describes a previously unexplored hybridisation between two particular algorithms; viz. the Beltway and Train algorithms. Beltway specifies an incremental copying solution for single-site, main-memory systems. It generalises a wide range of prior techniques; under particular configurations the collector can emulate semi-space collectors, traditional generational collectors, or older-first generational collectors. Additionally a Beltway collector reclusters objects based on temporal locality. However Beltway collectors cannot exhibit completeness without sacrificing their incrementality. In contrast the Train Algorithm can adopt a copying-based approach that is “aggressively incremental” yet complete. Objects will be reclustered according to spatial locality, and the algorithm offers flexible policy choices in this regard. Further, the Train algorithm is readily adaptable for use in distributed and persistent object systems. The Beltway and Train algorithms exhibit complementary properties. Their hybridisation offers a new approach that has the potential to exhibit these desirable features in combination. This paper reviews the Beltway and Train algorithms, and describes a variety of hybrid forms that can be obtained through their combination. The potential advantages or disadvantages of each is speculated upon, and their potential for use in distributed systems is discussed.