<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Publishing DTD v1.3 20210610//EN" "JATS-journalpublishing1-3.dtd">
<article article-type="research-article" dtd-version="1.3" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xml:lang="ru"><front><journal-meta><journal-id journal-id-type="publisher-id">sibsutis</journal-id><journal-title-group><journal-title xml:lang="ru">Вестник СибГУТИ</journal-title><trans-title-group xml:lang="en"><trans-title>The Herald of the Siberian State University of Telecommunications and Information Science</trans-title></trans-title-group></journal-title-group><issn pub-type="ppub">1998-6920</issn><publisher><publisher-name>СибГУТИ</publisher-name></publisher></journal-meta><article-meta><article-id pub-id-type="doi">10.55648/1998-6920-2022-16-1-77-88</article-id><article-id custom-type="elpub" pub-id-type="custom">sibsutis-122</article-id><article-categories><subj-group subj-group-type="heading"><subject>Research Article</subject></subj-group><subj-group subj-group-type="section-heading" xml:lang="ru"><subject>Статьи</subject></subj-group></article-categories><title-group><article-title>Анализ эффективности потоково-локальной сборки мусора в распределённых системах хранения и обработки данных</article-title><trans-title-group xml:lang="en"><trans-title>Application of Thread-Local Garbage Collection to Distributed Systems for Large-Scale Data Processing</trans-title></trans-title-group></title-group><contrib-group><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Филатов</surname><given-names>А. Ю.</given-names></name><name name-style="western" xml:lang="en"><surname>Filatov</surname><given-names>A. Yu.</given-names></name></name-alternatives><bio xml:lang="ru"><p>Филатов Александр Юрьевич, ассистент кафедры программирования ММФ НГУ; ведущий инженер Новосибирского исследовательского центра Huawei</p><p>Новосибирск</p></bio><bio xml:lang="en"><p>Alexander Yu. Filatov, Assistant, Novosibirsk State University; Leading engineer, Huawei Research Center</p><p>Novosibirsk</p></bio><email xlink:type="simple">a.filatov@g.nsu.ru</email><xref ref-type="aff" rid="aff-1"/></contrib><contrib contrib-type="author" corresp="yes"><name-alternatives><name name-style="eastern" xml:lang="ru"><surname>Михеев</surname><given-names>В. В.</given-names></name><name name-style="western" xml:lang="en"><surname>Mikheev</surname><given-names>V. V.</given-names></name></name-alternatives><bio xml:lang="ru"><p>Михеев Виталий Витальевич, старший преподаватель кафедры программирования ММФ НГУ; старший эксперт Новосибирского исследовательского центра Huawei</p><p>Новосибирск</p></bio><bio xml:lang="en"><p>Vitaly V. Mikheev, Lecturer, Novosibirsk State University; Senior expert, Huawei Research Center</p><p>Novosibirsk</p></bio><email xlink:type="simple">mikheev.vitaly@huawei.com</email><xref ref-type="aff" rid="aff-1"/></contrib></contrib-group><aff-alternatives id="aff-1"><aff xml:lang="ru"><institution>НГУ; Новосибирский исследовательский центр Huawei</institution><country>Россия</country></aff><aff xml:lang="en"><institution>Novosibirsk State University; Huawei Research Center</institution><country>Russian Federation</country></aff></aff-alternatives><pub-date pub-type="collection"><year>2022</year></pub-date><pub-date pub-type="epub"><day>13</day><month>05</month><year>2022</year></pub-date><volume>0</volume><issue>1</issue><fpage>77</fpage><lpage>88</lpage><permissions><copyright-statement>Copyright &amp;#x00A9; Филатов А.Ю., Михеев В.В., 2022</copyright-statement><copyright-year>2022</copyright-year><copyright-holder xml:lang="ru">Филатов А.Ю., Михеев В.В.</copyright-holder><copyright-holder xml:lang="en">Filatov A.Y., Mikheev V.V.</copyright-holder><license xml:lang="ru" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>Данная работа распространяется под лицензией Creative Commons Attribution 4.0.</license-p></license><license xml:lang="en" license-type="creative-commons-attribution" xlink:href="https://creativecommons.org/licenses/by/4.0/" xlink:type="simple"><license-p>This work is licensed under a Creative Commons Attribution 4.0 License.</license-p></license></permissions><self-uri xlink:href="https://vestnik.sibsutis.ru/jour/article/view/122">https://vestnik.sibsutis.ru/jour/article/view/122</self-uri><abstract><p>В данной работе рассматривается потоково-локальная сборка мусора – техника автоматического управления памятью, которая использует свойство объекта быть доступным только одному потоку исполнения. Возможность выделять и переиспользовать динамическую память независимо в каждом потоке, т.е. без дорогостоящих операций синхронизации, улучшает производительность и масштабируемость прикладных программ. В работе анализируется применимость данной техники к распределённым системам хранения и обработки данных, используемым в промышленности. Результаты свидетельствуют о том, что потоковолокальное управление памятью позволяет в полной мере задействовать ресурсы вычислительной системы и является многообещающим подходом к сборке мусора в высоконагруженных средах исполнения.</p></abstract><trans-abstract xml:lang="en"><p>Thread-local garbage collection (TLGC) is a technique of automatic memory management that associates memory locations with a specific application thread. These memory areas (thread-local heaps) support independent processing allowing other mutator threads to be concurrently executed. Improved scalability and throughput make thread-local memory manager an attractive alternative to conventional GC algorithms. This paper discusses effectiveness of thread-local GC applied to distributed systems for large-scale data processing. Experimental results show that the proposed approach increases overall system throughput and proves that TLGC is a suitable choice for memory-intensive fault-tolerant distributed systems.</p></trans-abstract><kwd-group xml:lang="ru"><kwd>сборка мусора</kwd><kwd>виртуальная машина</kwd><kwd>потоково-локальные кучи</kwd><kwd>NUMA</kwd><kwd>JVM</kwd></kwd-group><kwd-group xml:lang="en"><kwd>garbage collection</kwd><kwd>JVM</kwd><kwd>thread local heaps</kwd><kwd>NUMA</kwd></kwd-group></article-meta></front><back><ref-list><title>References</title><ref id="cit1"><label>1</label><citation-alternatives><mixed-citation xml:lang="ru">Doligez D., Leroy X. A concurrent, generational garbage collector for a multithreaded implementation of ml // Proc. 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 1993. P. 113–123.</mixed-citation><mixed-citation xml:lang="en">Doligez D., Leroy X. A concurrent, generational garbage collector for a multithreaded implementation of ml. Proc. 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, 1993, pp. 113–123.</mixed-citation></citation-alternatives></ref><ref id="cit2"><label>2</label><citation-alternatives><mixed-citation xml:lang="ru">Domani T., Goldshtein G., Kolodner E., Lewis E., Petrank E, Sheinwald D. Thread-local heaps for java. // In SIGPLAN Not, 2002. P. 76–87.</mixed-citation><mixed-citation xml:lang="en">Domani T., Goldshtein G., Kolodner E., Lewis E., Petrank E, Sheinwald D. Thread-local heaps for java. In SIGPLAN Not, 2002, pp. 76–87.</mixed-citation></citation-alternatives></ref><ref id="cit3"><label>3</label><citation-alternatives><mixed-citation xml:lang="ru">Apache Hadoop® official website [Электронный ресурс] // Apache Hadoop: [сайт]. URL: https://hadoop.apache.org/ (дата обращения: 01.01.2022).</mixed-citation><mixed-citation xml:lang="en">Apache Hadoop® official website [Electronic resource]. Apache Hadoop: [website]. URL: https://hadoop.apache.org/ (access date: 01.01.2022).</mixed-citation></citation-alternatives></ref><ref id="cit4"><label>4</label><citation-alternatives><mixed-citation xml:lang="ru">Apache Spark official website [Электронный ресурс] // Apache Spark: [сайт]. URL: https://spark.apache.org/ (дата обращения: 01.01.2022).</mixed-citation><mixed-citation xml:lang="en">Apache Spark official website [Electronic resource]. Apache Spark: [website]. URL: https://spark.apache.org/ (access date: 01.01.2022).</mixed-citation></citation-alternatives></ref><ref id="cit5"><label>5</label><citation-alternatives><mixed-citation xml:lang="ru">Filatov A., Mikheev V. Evaluation of thread-local garbage collection // Proc. 2020 Ivannikov Memorial Workshop (IVMEM), 2020. P. 15–21.</mixed-citation><mixed-citation xml:lang="en">Filatov A., Mikheev V. Evaluation of thread-local garbage collection. Proc. 2020 Ivannikov Memorial Workshop (IVMEM), 2020, pp. 15–21.</mixed-citation></citation-alternatives></ref><ref id="cit6"><label>6</label><citation-alternatives><mixed-citation xml:lang="ru">Purdom P., Stigler S., Cheam T. Statistical investigation of three storage allocation algorithms // BIT Numerical Mathematics. 1971. P. 187–195.</mixed-citation><mixed-citation xml:lang="en">Purdom P., Stigler S., Cheam T. Statistical investigation of three storage allocation algorithms. BIT Numerical Mathematics. 1971, pp. 187–195.</mixed-citation></citation-alternatives></ref><ref id="cit7"><label>7</label><citation-alternatives><mixed-citation xml:lang="ru">Sleator D., Tarjan R. Self-adjusting binary search trees // J. ACM. 1985. P. 682–686.</mixed-citation><mixed-citation xml:lang="en">Sleator D., Tarjan R. Self-adjusting binary search trees. J. ACM. 1985, pp. 682–686.</mixed-citation></citation-alternatives></ref><ref id="cit8"><label>8</label><citation-alternatives><mixed-citation xml:lang="ru">Agesen O. Gc points in a threaded environment // Technical report, SMLI TR-98-70. 1998.</mixed-citation><mixed-citation xml:lang="en">Agesen O. Gc points in a threaded environment. Technical report, SMLI TR-98-70. 1998.</mixed-citation></citation-alternatives></ref><ref id="cit9"><label>9</label><citation-alternatives><mixed-citation xml:lang="ru">Dean J., Ghemawat S. Mapreduce: Simplified data processing on large clusters // Commun. ACM, 2008. P. 107–113.</mixed-citation><mixed-citation xml:lang="en">Dean J., Ghemawat S. Mapreduce: Simplified data processing on large clusters.</mixed-citation></citation-alternatives></ref><ref id="cit10"><label>10</label><citation-alternatives><mixed-citation xml:lang="ru">Zaharia M., Chowdhury M., Franklin M., Shenker S., Stoica I. Spark: Cluster computing with working sets // Proc. 2nd USENIX Conference on Hot Topics in Cloud Computing, 2010. P. 10.</mixed-citation><mixed-citation xml:lang="en">Commun. ACM. 2008, pp. 107–113.</mixed-citation></citation-alternatives></ref><ref id="cit11"><label>11</label><citation-alternatives><mixed-citation xml:lang="ru">White T. Hadoop: The Definitive Guide // O’Reilly Media, Inc., 4th ed., 2015.</mixed-citation><mixed-citation xml:lang="en">Zaharia M., Chowdhury M., Franklin M., Shenker S., Stoica I. Spark: Cluster computing with working sets. Proc. 2nd USENIX Conference on Hot Topics in Cloud Computing, 2010, p. 10.</mixed-citation></citation-alternatives></ref><ref id="cit12"><label>12</label><citation-alternatives><mixed-citation xml:lang="ru">HiBench source repository [Электронный ресурс] // GitHub: [сайт]. URL: https://github.com/Intel-bigdata/HiBench (дата обращения: 01.01.2022).</mixed-citation><mixed-citation xml:lang="en">White T. Hadoop: The Definitive Guide. O’Reilly Media, Inc., 4th ed., 2015.</mixed-citation></citation-alternatives></ref><ref id="cit13"><label>13</label><citation-alternatives><mixed-citation xml:lang="ru">MacQueen J. Some methods for classification and analysis of multivariate observations // Berkeley Symposium on Mathematical Statistics and Probability, 1967. P. 281–297.</mixed-citation><mixed-citation xml:lang="en">HiBench source repository [Electronic resource]. GitHub: website URL https://github.com/Intel-bigdata/HiBench (access date: 01.01.2022).</mixed-citation></citation-alternatives></ref><ref id="cit14"><label>14</label><citation-alternatives><mixed-citation xml:lang="ru">Jones S., Launchbury J., Peyton Jones S. Unboxed values as first class citizens // Proc. ACM Conference on Functional Programming and Computer Architecture, 1991. P. 636–666.</mixed-citation><mixed-citation xml:lang="en">MacQueen J. Some methods for classification and analysis of multivariate observations. Berkeley Symposium on Mathematical Statistics and Probability, 1967, pp. 281–297.</mixed-citation></citation-alternatives></ref><ref id="cit15"><label>15</label><citation-alternatives><mixed-citation xml:lang="ru">O’Malley O. TeraByte Sort on Apache Hadoop [Электронный ресурс] // TeraByte Sort: [сайт]. URL: http://sortbenchmark.org/YahooHadoop.pdf (дата обращения: 01.01.2022).</mixed-citation><mixed-citation xml:lang="en">Jones S., Launchbury J., Peyton Jones S. Unboxed values as first class citizens. Proc. ACM Conference on Functional Programming and Computer Architecture, 1991, pp. 636–666.</mixed-citation></citation-alternatives></ref><ref id="cit16"><label>16</label><citation-alternatives><mixed-citation xml:lang="ru">Berger E., McKinley K., Blumofe R., Wilson P. Hoard: A scalable memory allocator for multithreaded applications // SIGARCH Comput. Archit. News. 2000. P. 117–128.</mixed-citation><mixed-citation xml:lang="en">O’Malley O. TeraByte Sort on Apache Hadoop [Electronic resource]. TeraByte Sort: [website]. URL: http://sortbenchmark.org/YahooHadoop.pdf (access date: 01.01.2022).</mixed-citation></citation-alternatives></ref><ref id="cit17"><label>17</label><citation-alternatives><mixed-citation xml:lang="ru">Vee V.-Y., Hsu W.-J. A scalable and efficient storage allocator on shared memory multiprocessors // Proc. 1999 International Symposium on Parallel Architectures, Algorithms and Networks, 1999. P. 230.</mixed-citation><mixed-citation xml:lang="en">Berger E., McKinley K., Blumofe R., Wilson P. Hoard: A scalable memory allocator for multithreaded applications. SIGARCH Comput. Archit. News. 2000, pp. 117–128.</mixed-citation></citation-alternatives></ref><ref id="cit18"><label>18</label><citation-alternatives><mixed-citation xml:lang="ru">Kirsch C., Payer H., Röck H. Hierarchical plabs, clabs, tlabs in hotspot // Proc. International Conference on Systems (ICONS), 2012.</mixed-citation><mixed-citation xml:lang="en">Vee V.-Y., Hsu W.-J. A scalable and efficient storage allocator on shared memory multiprocessors. Proc. 1999 International Symposium on Parallel Architectures, Algorithms and Networks, 1999, p. 230.</mixed-citation></citation-alternatives></ref><ref id="cit19"><label>19</label><citation-alternatives><mixed-citation xml:lang="ru">Anderson A. Optimizations in a private nursery-based garbage collector // Proc. 2010 International Symposium on Memory Management, 2010. P. 21–30.</mixed-citation><mixed-citation xml:lang="en">Kirsch C., Payer H., Röck H. Hierarchical plabs, clabs, tlabs in hotspot. Proc. International Conference on Systems (ICONS), 2012.</mixed-citation></citation-alternatives></ref><ref id="cit20"><label>20</label><citation-alternatives><mixed-citation xml:lang="ru">Mole M., Jones R., Kalibera T. A study of sharing definitions in thread-local heaps // ICOOOLPS, 2012.</mixed-citation><mixed-citation xml:lang="en">Anderson A. Optimizations in a private nursery-based garbage collector. Proc. 2010 International Symposium on Memory Management, 2010, pp. 21–30.</mixed-citation></citation-alternatives></ref><ref id="cit21"><label>21</label><citation-alternatives><mixed-citation xml:lang="ru">Mole M. A study of thread-local garbage collection for multi-core systems // PhD thesis, University of Kent, 2015.</mixed-citation><mixed-citation xml:lang="en">Mole M., Jones R., Kalibera T. A study of sharing definitions in thread-local heaps. ICOOOLPS, 2012, 21.</mixed-citation></citation-alternatives></ref><ref id="cit22"><label>22</label><citation-alternatives><mixed-citation xml:lang="ru">Mole M. A study of thread-local garbage collection for multi-core systems. PhD thesis, University of Kent, 2015.</mixed-citation><mixed-citation xml:lang="en">Mole M. A study of thread-local garbage collection for multi-core systems. PhD thesis, University of Kent, 2015.</mixed-citation></citation-alternatives></ref></ref-list><fn-group><fn fn-type="conflict"><p>The authors declare that there are no conflicts of interest present.</p></fn></fn-group></back></article>
