<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>SoR'24 | UCSC OSPO</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/category/sor24/</link><atom:link href="https://deploy-preview-1007--ucsc-ospo.netlify.app/category/sor24/index.xml" rel="self" type="application/rss+xml"/><description>SoR'24</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Mon, 02 Sep 2024 00:00:00 +0000</lastBuildDate><image><url>https://deploy-preview-1007--ucsc-ospo.netlify.app/media/logo_hub6795c39d7c5d58c9535d13299c9651f_74810_300x300_fit_lanczos_3.png</url><title>SoR'24</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/category/sor24/</link></image><item><title>Reflecting on the ScaleRep Project: Achievements and Insights</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/osu/scalerep/20240902-shuangliang/</link><pubDate>Mon, 02 Sep 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/osu/scalerep/20240902-shuangliang/</guid><description>&lt;p>Hello everyone,&lt;/p>
&lt;p>As we reach the conclusion of our ScaleRep project, I want to take a moment to reflect on the journey we’ve undertaken and the significant milestones we’ve achieved. Throughout this project, our primary focus was on identifying, reproducing, and analyzing scalability bugs in cloud systems such as Cassandra, HDFS, and Hadoop. Under the mentorship of Professor Yang Wang and Bogdan “Bo” Stoica, we have gained valuable insights into the complexities of scalability issues and their impact on large-scale distributed systems.&lt;/p>
&lt;h1 id="key-accomplishments">Key Accomplishments&lt;/h1>
&lt;p>Over the course of the project, we delved into various aspects of scalability bugs, reproducing some of the most challenging issues faced by cloud systems. One of our notable accomplishments was the successful reproduction and validation of developer fixes for several critical bugs in HDFS. These included:&lt;/p>
&lt;h2 id="1-throttling-bugs-in-hdfs">1. Throttling Bugs in HDFS:&lt;/h2>
&lt;p>We investigated HDFS-17087, where the absence of a throttler in led to unregulated data reads, causing potential performance degradation. By reproducing the bug and applying the developer’s patch, we were able to observe significant improvements in system stability.DataXceiver#readBlock&lt;/p>
&lt;h2 id="2-reducing-datanode-load">2. Reducing DataNode Load:&lt;/h2>
&lt;p>HDFS-16386 was another crucial bug we worked on, which involved reducing the load on DataNodes when was working. By analyzing the effects of high CPU and memory usage, we proposed and validated a solution that reduced the number of concurrent threads, ultimately improving the DataNode’s performance.FsDatasetAsyncDiskService&lt;/p>
&lt;h2 id="3-improving-log-throttling">3. Improving Log Throttling:&lt;/h2>
&lt;p>In HDFS-16872, we addressed excessive logging caused by unshared instances of . By making a static member, we were able to share throttling across instances, reducing unnecessary log entries and improving system efficiency.LogThrottlingHelperLogThrottlingHelper&lt;/p>
&lt;h1 id="insights-and-learnings">Insights and Learnings&lt;/h1>
&lt;h2 id="1-systematic-bug-reproduction">1. Systematic Bug Reproduction:&lt;/h2>
&lt;p>One of the most critical aspects of our work was developing a systematic approach to bug reproduction. This involved carefully setting up the environment, applying patches, and validating results through detailed monitoring and analysis. Our reproducible artifacts and investigation scripts will serve as a resource for future researchers and developers.&lt;/p>
&lt;h2 id="2-impact-of-throttling-mechanisms">2. Impact of Throttling Mechanisms:&lt;/h2>
&lt;p>Our exploration of throttling bugs highlighted the importance of accurate throttling mechanisms in maintaining system performance and stability. Small issues, such as incorrect data rate calculations, can have significant ripple effects on system behavior, emphasizing the need for precise and effective solutions.&lt;/p>
&lt;h2 id="3-collaboration-and-open-source-contribution">3. Collaboration and Open Source Contribution:&lt;/h2>
&lt;p>Working on an open-source project like ScaleRep underscored the importance of collaboration within the community. The bugs we analyzed and fixed not only improved the systems we worked on but also contributed to the broader effort of enhancing the reliability of cloud systems.&lt;/p>
&lt;h1 id="conclusion">Conclusion&lt;/h1>
&lt;p>As we wrap up the ScaleRep project, I am proud of the progress we have made and the contributions we have delivered to the open-source community. The knowledge and experience gained from this project will undoubtedly shape our future endeavors in the field of distributed systems and cloud computing. I am grateful for the guidance and support provided by Professor Yang Wang and Bogdan “Bo” Stoica throughout this journey.&lt;/p>
&lt;p>Thank you for following along, and I look forward to continuing to explore the future of scalable and reliable cloud systems!&lt;/p></description></item><item><title>Static and Interactive Visualization Capture</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/niu/repro-vis/20250301-aryas/</link><pubDate>Fri, 30 Aug 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/niu/repro-vis/20250301-aryas/</guid><description>&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>Hello! My name is &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/arya-sarkar/">Arya Sarkar&lt;/a> a machine learning engineer and researcher based out of Kolkata, a city in Eastern India dubbed the City of Joy.
During summer of 2024, I worked closely with Professor &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/david-koop/">David Koop&lt;/a> on the project titled &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/niu/repro-vis/">Reproducibility in Data Visualization&lt;/a>.
We explored multiple existing solutions and tested different stratergies and made great progress in the capture of visualiations using a relatively less used method of embedding visualization meta-information into the final resultant visualizations jpg as a json object.&lt;/p>
&lt;h2 id="progress-and-challenges">Progress and Challenges&lt;/h2>
&lt;p>Static Visualization Capture&lt;/p>
&lt;p>We successfully developed a method to capture static visualizations as .png files along with embedded metadata in a JSON format.
This approach enables seamless reproducibility of the visualization by storing all necessary metadata within the image file itself.
Our method supports both Matplotlib and Bokeh libraries and demonstrated near-perfect reproducibility, with only a minimal 1-2% pixel difference in cases where jitter (randomness) was involved.&lt;/p>
&lt;p>Interactive Visualization Capture&lt;/p>
&lt;p>For interactive visualizations, our focus shifted to capturing state changes in Plotly visualizations on the web.
We developed a script that tracks user interactions (e.g., zoom, box, lasso, slider) using event listeners and automatically captures the visualization state as both image and metadata files.
This script also maintains a history of interactions to ensure reproducibility of all interaction states.&lt;/p>
&lt;p>The challenge of capturing web-based visualizations from platforms like ObservableHq remains, as iframe restrictions prevent direct access to SVG elements.
Further exploration is needed to create a more robust capture method for these environments.&lt;/p>
&lt;p align="center">
&lt;img src="./bokeh_interactive.png" alt="bokeh interactive capture" style="width: 80%; height: auto;">
&lt;/p>
&lt;h1 id="future-work">Future Work&lt;/h1>
&lt;p>We aim to package our interactive capture script into a Google Chrome extension.&lt;/p>
&lt;p>Temporarily store interaction session files in the browser’s local storage.&lt;/p>
&lt;p>Enable users to download captured files as a zip archive, using base64 encoding for images.&lt;/p>
&lt;h1 id="conclusion">Conclusion&lt;/h1>
&lt;p>The last summer, we made significant strides in enhancing data visualization reproducibility.
Our innovative approach to embedding metadata directly into visualization files offers a streamlined method for recreating static visualizations.
The progress in capturing interactive visualization states opens new possibilities for tackling a long-standing challenge in the field of reproducibility.&lt;/p></description></item><item><title>Exploring Throttling Bugs in HDFS: Reproducing Developer Fixes</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/osu/scalerep/20240722-shuangliang/</link><pubDate>Mon, 22 Jul 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/osu/scalerep/20240722-shuangliang/</guid><description>&lt;p>Scalability is a critical concern for large-scale distributed systems like the Hadoop Distributed File System (HDFS). Throttling bugs, which affect the system&amp;rsquo;s ability to manage data transfer rates effectively, can lead to performance issues and system instability. In my recent work, I focused on reproducing the effects of two specific throttling bugs in HDFS, which were fixed by developers. This blog provides an overview of these bugs and the process of reproducing their effects to validate the fixes.&lt;/p>
&lt;h1 id="hdfs-17087-missing-throttler-in-dataxceiverreadblock">HDFS-17087: Missing Throttler in DataXceiver#readBlock&lt;/h1>
&lt;p>One of the throttling bugs I explored was HDFS-17087. The DataXceiver#readBlock function in HDFS lacked a throttler, resulting in unregulated data reads. This absence could lead to potential performance degradation under heavy loads. The developer fixed this issue by adding a throttler to regulate the data transfer rate. In my work, I reproduced the bug and observed the system&amp;rsquo;s behavior both before and after applying the developer&amp;rsquo;s patch. The results showed a significant improvement in stability and performance post-fix.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="./Figure1.png" alt="Figure 1" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h1 id="hdfs-17216-incorrect-data-rate-calculation">HDFS-17216: Incorrect Data Rate Calculation&lt;/h1>
&lt;p>Another crucial bug was HDFS-17216. The issue stemmed from the use of integer division in the getBytesPerSec function, which caused incorrect speed calculations and failed to trigger the throttle, resulting in overspeed. The developer addressed this by switching from integer to float for calculating the elapsed time, ensuring accurate speed measurements. I reproduced the conditions that highlighted the bug&amp;rsquo;s effects and compared the system&amp;rsquo;s performance with and without the fix. The post-fix results confirmed that the throttling mechanism worked correctly, effectively preventing overspeed.&lt;/p>
&lt;p>
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img src="./Figure2.png" alt="Figure 2" loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h1 id="conclusion">Conclusion&lt;/h1>
&lt;p>Reproducing these throttling bugs and validating the developer fixes was a vital step in understanding their impact on HDFS&amp;rsquo;s scalability. The improvements observed in system stability and performance underscore the importance of accurate throttling mechanisms. This work contributes to the broader effort of maintaining robust and scalable distributed systems, ensuring they can handle increasing loads efficiently.&lt;/p></description></item><item><title> Reproducibility in Data Visualization</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/niu/repro-vis/20240718-aryas/</link><pubDate>Thu, 18 Jul 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/niu/repro-vis/20240718-aryas/</guid><description>&lt;h2 id="introduction">Introduction&lt;/h2>
&lt;p>Hello! My name is &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/arya-sarkar/">Arya Sarkar&lt;/a> a machine learning engineer and researcher based out of Kolkata, a city in Eastern India dubbed the City of Joy.
For the last month and a half I have been working closely with Professor &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/david-koop/">David Koop&lt;/a> on the project titled &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/niu/repro-vis/">Reproducibility in Data Visualization&lt;/a>. I’m thrilled to be able to make my own little mark on this amazing project and aid in exploring solutions to capture visualizations in hopes of making reproducibility easier in this domain.&lt;/p>
&lt;h2 id="progress-and-challenges">Progress and Challenges&lt;/h2>
&lt;p>The last month and a half have mostly been spent trying to explore best possible solutions to facilitate the reproducibility of STATIC visualizations from local sources and/or the web.
We have taken inspiration from existing work in the domain and successfully captured meta-information required to ensure reproducibility in the regenerated visualizations from the said metadata. The metadata extracted is saved into the generated .png figure of the visualization therefore allowing reproducibility as long as you have (a) The original dataset (b) The generated .png of the visualization. Every other information is stored inside the .png file as a json object and can be used to regenerate the original image with a very high accuracy.&lt;/p>
&lt;p>The problem however remains with visualizations where randomness such as jitter is involved. Capturing the randomness has not been 100% successful as of now, and we are looking into options to ensure the capture of certain plots that contains randomness.&lt;/p>
&lt;p>The following images can be used to highlight some results from our reproducibility experiments:
Original Histogram using Matplotlib on the iris dataset:
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="original_figure4" srcset="
/report/osre24/niu/repro-vis/20240718-aryas/original_histogram_hua04132746cb0ed26b86c32673b823c8f_29642_4d5ccda2a3e4409f5fb5bfccad4abae9.webp 400w,
/report/osre24/niu/repro-vis/20240718-aryas/original_histogram_hua04132746cb0ed26b86c32673b823c8f_29642_3d4477374e3469fd72bbb32675129816.webp 760w,
/report/osre24/niu/repro-vis/20240718-aryas/original_histogram_hua04132746cb0ed26b86c32673b823c8f_29642_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/niu/repro-vis/20240718-aryas/original_histogram_hua04132746cb0ed26b86c32673b823c8f_29642_4d5ccda2a3e4409f5fb5bfccad4abae9.webp"
width="760"
height="468"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
Reproduced Histogram using metainformation from the original:
&lt;figure >
&lt;div class="d-flex justify-content-center">
&lt;div class="w-100" >&lt;img alt="reproduced_figure4" srcset="
/report/osre24/niu/repro-vis/20240718-aryas/Reproduced_histogram_hub205e2d6c877abb784c35befc8616823_26597_9ca3975509f66dbedf2746a253660ec4.webp 400w,
/report/osre24/niu/repro-vis/20240718-aryas/Reproduced_histogram_hub205e2d6c877abb784c35befc8616823_26597_ca77d573979d523935009285864d087b.webp 760w,
/report/osre24/niu/repro-vis/20240718-aryas/Reproduced_histogram_hub205e2d6c877abb784c35befc8616823_26597_1200x1200_fit_q75_h2_lanczos_3.webp 1200w"
src="https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/niu/repro-vis/20240718-aryas/Reproduced_histogram_hub205e2d6c877abb784c35befc8616823_26597_9ca3975509f66dbedf2746a253660ec4.webp"
width="760"
height="490"
loading="lazy" data-zoomable />&lt;/div>
&lt;/div>&lt;/figure>
&lt;/p>
&lt;h2 id="the-next-steps">The next steps&lt;/h2>
&lt;p>We have already started looking into solutions and ways to capture visualizations from the web i.e. from platforms such as ObservableHq and use these experiments to transition into capturing interactive visualizations from the web.&lt;/p>
&lt;p>Capturing user interactions and all states in an interactive visualization can prove to be very useful as it is a very known pain-point in the reproducibility community and has been a challenge that needs to be solved. My next steps involve working on finding a solution to capture these interactive visualizations especially those living on the web and ensuring their reproducibility.&lt;/p></description></item><item><title>Reproducing and benchmarking scalability bugs hiding in cloud systems</title><link>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/osu/scalerep/20240610-shuangliang/</link><pubDate>Mon, 10 Jun 2024 00:00:00 +0000</pubDate><guid>https://deploy-preview-1007--ucsc-ospo.netlify.app/report/osre24/osu/scalerep/20240610-shuangliang/</guid><description>&lt;p>Hello there!&lt;/p>
&lt;p>I am Shuang Liang, a third-year student studying Computer and Information Science at The Ohio State University. My passion lies in cloud computing and high-performance computing, areas I have explored extensively during my academic journey. I have participated in various projects and competitions, which have honed my technical skills and deepened my interest in distributed systems.&lt;/p>
&lt;p>As part of the &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/project/osre24/osu/scalerep">ScaleRep: Reproducing and benchmarking scalability bugs hiding in cloud systems&lt;/a>, my &lt;a href="https://threadeater.github.io/files/Understanding_and_Addressing_Scalability_Bugs_in_Large_Scale_Distributed_Systems%20%281%29.pdf" target="_blank" rel="noopener">proposal&lt;/a> under the mentorship of Professor &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/yang-wang/">Yang Wang&lt;/a> and &lt;a href="https://deploy-preview-1007--ucsc-ospo.netlify.app/author/bogdan-bo-stoica/">Bogdan &amp;quot;Bo&amp;quot; Stoica&lt;/a> aims to tackle the critical challenges posed by scalability bugs in systems like Cassandra, HDFS, and Hadoop. These bugs can lead to severe operational issues such as system downtime and data loss, particularly as systems scale up.&lt;/p>
&lt;p>The project goals include systematically analyzing and documenting scalability bugs, developing protocols to effectively trigger and quantify the impact of these bugs, and creating reproducible artifacts and detailed investigation scripts to aid in bug analysis.&lt;/p>
&lt;p>Our project will involve rigorous bug report analysis, reproduction of scalability bugs, and a comparative study of system behaviors before and after bug fixes. We aim to develop methodologies that enhance the reliability and performance of large-scale distributed systems, providing valuable insights and resources to the open-source community.&lt;/p>
&lt;p>Stay tuned to explore the future of reliable and scalable distributed systems!&lt;/p></description></item></channel></rss>