2017/04/11 by Duarte Patrício, Patrício, Duarte, José Simão +3
Computer Science · #Advanced Data Storage Technologies #Caching and Content Delivery #Cloud Computing and Resource Management #Distributed #Distributed systems and fault tolerance #FOS: Computer and information sciences #IoT and Edge/Fog Computing #Parallel #Programming Languages (cs.PL) #and Cluster Computing (cs.DC)
paper · pdf · doi:10.48550/arxiv.1704.03324
openalex publication_date 2017/04/11 · openalex created_date 2022/10/02 · openalex updated_date 2026/07/28
Many cloud applications rely on fast and non-relational storage to aid in the\nprocessing of large amounts of data. Managed runtimes are now widely used to\nsupport the execution of several storage solutions of the NoSQL movement,\nparticularly when dealing with big data key-value store-driven applications.\nThe benefits of these runtimes can however be limited by modern parallel\nthroughput-oriented GC algorithms, where related objects have the potential to\nbe dispersed in memory, either in the same or different generations. In the\nlong run this causes more page faults and degradation of locality on\nsystem-level memory caches.\n We propose, Gang-CG, an extension to modern heap layouts and to a parallel GC\nalgorithm to promote locality between groups of related objects. This is done\nwithout extensive profiling of the applications and in a way that is\ntransparent to the programmer, without the need to use specialized data\nstructures. The heap layout and algorithmic extensions were implemented over\nthe Parallel Scavenge garbage collector of the HotSpot JVM @.\n Using microbenchmarks that capture the architecture of several key-value\nstores databases, we show negligible overhead in frequent operations such as\nthe allocation of new objects and improvements to the access speed of data,\nsupported by lower misses in system-level memory caches. Overall, we show a 6 %\nimprovement in the average time of read and update operations and an average\ndecrease of 12.4 % in page faults.\n