It’s been a long time since I wanted to share more about things I’ve been reading here. In 2025, my personal life was very busy, so I couldn’t find the time to read as much as I wanted. Still, these are the good readings I would like to share. This is a quick rewind of the books I’ve read in 2025. Tech books Writing for Computer Science - Justin Zobel This book was my companion throughout the…
When you build a product, sooner or later, you will have to put it in front of people. Some will like it, some won’t. That’s expected and normal. The same happens with text. You write a book, a paper, or a thesis for several weeks, maybe years, and then you have to show your work. Most people think this is the end, but here I am writing this post for my future self to remember that it’s just the…
Projeto e Análise de Algoritmos, também conhecida como PAA, é a única disciplina obrigatória do programa de Mestrado em Ciência da Computação na UFMG. Isto significa que qualquer aluno que deseja obter o título de Mestre em Ciência da Computação, independente da sua área de pesquisa (IA, Redes, Sistemas Distribuídos, Engenharia de Software, etc.) precisa cursar esta disciplina. A disciplina tem…
Original paper published by Omid Alipourfard, Masoud Moshref and Minlan Y from University of Southern California: https://dl.acm.org/doi/10.1145/2834050.2834064 With more and more network functions being implemented as software, measurement has become critical to enable operators understanding network usage, detect anomalies and produce feedback to perform load balancing, control decisions, and…
Original paper published in PT-BR by Elerson R. S. Santos, Eduardo P. M. Câmara Júnior, Marcos A. M. Vieira, Luiz F. M. Vieira: https://sol.sbc.org.br/index.php/sbrc/article/view/7376 Network traffic monitoring has increasingly become a critical aspect of software solutions nowadays. Traffic engineering, anomaly detection, and quality of service are examples of things that are only provided at a…
Original paper by Rakesh Kumar, Monowar Hasan, Smruti Padhy, Konstantin Evchenko, Lavanya Piramanayagamk, Sibin Mohan and Rakesh B. Bobban: https://arxiv.org/pdf/1703.01641.pdf Safety-critical systems that have to rely on a network mostly require an exclusively dedicated network, designed for supporting a deterministic and very specific RTS use case. AFDX and CAN are examples of proprietary,…
eBPF is an amazing technology that allows us to extend the capabilities of the Linux kernel without requiring to change kernel source code or load kernel modules. It gives us the power to experiment how kernel function works without kernel development experience, and without having to spend dozens of hours setting things up for kernel development. Unfortunately, getting started with BPF can still…
Writing a proper paper summary is something I have learned in the past year. After writing more than 50 summaries , in this post, I’ll share a base structure I have been using so you can try applying it in your future article summaries. The purpose of a scientific paper summary is to give the reader a clear and objective picture of the original text, hiding its non-important details. You can use…
Original paper by Chenggang Wu, Vikram Sreekanti and Joseph M. Hellerstein: https://dsf.berkeley.edu/jmh/papers/anna_vldb_19.pdf Distributed key-value storage (KVS) systems usually respond to a usage profile that bears some challenges. The major ones are the stored volume variation, skewed workloads, that is, writing and reading operations happening in intense frequency over a small set of keys,…
Original paper by Frank McSherry, Michael Isard, and Derek G. Murray: https://www.usenix.org/system/files/conference/hotos15/hotos15-paper-mcsherry.pdf This bold paper presents the COST metric, used to measure the efficiency of a system when executing processing models in a single-threaded environment. The authors’ motivation for presenting this new metric relies upon the fact that many of the…
Original paper by Joseph E. Gonzalez, Reynold S. Xin, Ankur Dave, Daniel Crankshaw, Michael J. Franklin and Ion Stoica: https://www.usenix.org/conference/osdi14/technical-sessions/presentation/gonzalez With the growing focus of the scientific community on proposing specialized solutions for large-scale graph processing systems, processing models that use different data structures (graphs, tables,…
Original paper by Yucheng Low, Joseph Gonzalez, Aapo Kyrola, Danny Bickson, Carlos Guestrin and Joseph M. Hellerstein: http://vldb.org/pvldb/vol5/p716_yuchenglow_vldb2012.pdf The paper presents GraphLab, a system proposed to process large-scale graph structures in an asynchronous, dynamic, and parallel way. Many of the algorithms used in data mining and machine learning processes have distributed…
Original paper by Grzegorz Malewicz, Matthew H. Austern, Aart J. C. Bik, James C. Dehnert, Ilan Horn, Naty Leiser, and Grzegorz Czajkowski: https://kowshik.github.io/JPregel/pregel_paper.pdf Many real-world structures can be represented by a set of vertices and edges in graphs: groups in social networks, internet computer clusters, etc. This article presents Pregel, a system created to provide a…
Original paper by Haoyuan Li, Ali Ghodsi, Matei Zaharia, Scott Shenker and Ion Stoica: https://people.csail.mit.edu/matei/papers/2014/socc_tachyon.pdf The article presents Tachyon, a reliable distributed file system that provides high throughput and low latency for read and write operations. Unlike previous proposals, Tachyon allows files to be stored in memory instead of on disk, having also a…
Original paper by Matei Zaharia, Mosharaf Chowdhury, Tathagata Das, Ankur Dave, Justin Ma, Murphy McCauley, Michael J. Franklin, Scott Shenker and Ion Stoica: https://www.usenix.org/system/files/conference/nsdi12/nsdi12-final138.pdf This paper presents RDD, a fault-tolerant abstraction for distributed memory that allows programmers to process large datasets in memory on big clusters. The model…
Original article by Konstantin V. Shvachko: https://www.usenix.org/legacy/publications/login/2010-04/openpdfs/shvachko.pdf The article briefly introduces how Apache Hadoop, the open-source implementation of the MapReduce model heavily inspired by two articles published by Google engineers in 2003 (GFS) and 2004 (MapReduce). The focus of this work however, is on the performance and storage capacity…
Original paper Jeffrey Dean and Sanjay Ghemawat: https://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf When processing large datasets, the computation is ideally distributed among hundreds or thousands of machines to finish in a reasonable amount of time. This approach however brings new challenges such as: how to parallelize the computation, how to…
Original paper by Sean Kandel, Andreas Paepcke, Joseph M. Hellerstein, and Jeffrey Heer: http://vis.stanford.edu/files/2012-EnterpriseAnalysisInterviews-VAST.pdf To provide a better understanding of the enterprise analyst’s ecosystem, this paper presents the results of several interviews done with data analysts from different business areas (healthcare, retail, marketing, and finance). To…
Original paper by Costin Raiciu, Sebastien Barre, Christopher Pluntke, Adam Greenhalgh†, Damon Wischik and Mark Handley: http://vincen.tl/cis700sp17/mptcp-sigcomm11.pdf Single path transport can be ill-suited for networks containing multiple paths in their core. This paper presents Multipath TCP, a TCP replacement that improves throughput and better fairness on different datacenter topologies.…
Original paper by Jitendra Padhye, Victor Firoiu, Don Towsley and Jim Kurose: https://dl.acm.org/doi/10.1145/285243.285291 The paper presents TCP Reno, the TCP implementation that considers the effect of the TCP timeouts mechanism on throughput predictions. The proposed model is accurate to predict TCP throughput over loss rates by adjusting the window size (w), which is incremented at each ACK…
Original RFC: https://datatracker.ietf.org/doc/html/rfc2001 The RFC 2001 presents the solutions for TCP implementations across the Internet to handle package transmissions. The first is the Slow Start, the algorithm that runs observing that the rate at which new packets should be injected into the network is the rate at which the ACKs are returned by the other network end. The Slow Start algorithm…
Original article by Van Jacobson and Michael J. Karels: https://dl.acm.org/doi/10.1145/52324.52356 This paper presents an efficient algorithm to control network congestion during packet transmission. It describes its solution for avoiding congestions collapses by taking leverage of the slow start principle from the TCP protocol. The authors propose an algorithm simple enough to require only a few…
Original article by Dah-Ming Chiu and Raj Jain: https://www.cse.wustl.edu/~jain/papers/ftp/cong_av.pdf This paper provides a rich discussion on congestion avoidance algorithms in computer networks. With the high increase in network heterogeneities back in the ‘80s, a mismatch of arrival and service rates was causing constant congestion and package losses. The main idea behind the proposed control…
Original article by Heitor Moraes, Marcos A. M. Vieira, Italo Cunha and Dorgival Guedes: https://homepages.dcc.ufmg.br/~cunha/papers/moraes16networking-lanes.pdf Cloud and infrastructure vendors are constantly striving to provide efficient traffic isolation between multiple tenants in a datacenter environment. Many of the currently offered solutions suffer from limited scalability, encapsulation…
Original article by Pat Bosshart, Dan Daly, Glen Gibb, Martin Izzard, Nick McKeown, Jennifer Rexford, Cole Schlesinger, Dan Talayco, Amin Vahdat, George Varghese, David Walker: https://www.cs.princeton.edu/~dpw/papers/P4-CCR.pdf The de facto SDN protocol OpenFlow is constantly evolving. Its set of protocol headers has grown from 12 to 41 fields in a few years carrying a significant complexity…
Original article by Sushant Jain, Alok Kumar, Subhasree Mandal, Joon Ong, Leon Poutievski, Arjun Singh, Subbaiah Venkata, Jim Wanderer, Junlan Zhou, Min Zhu, Jonathan Zolla, Urs Hölzle, Stephen Stuart and Amin Vahdat: https://cseweb.ucsd.edu/~vahdat/papers/b4-sigcomm13.pdf This paper presents the design and implementation of B4, Google’s software-defined network for connecting its data centers.…
Original article by Minlan Yu, Lavanya Jose and Rui Miao: http://stanford.edu/~lavanyaj/papers/opensketch12.pdf Current SDN research has been typically focusing on the control plane. To further explore measurement APIs in software-defined network contexts, the authors propose a software-defined architecture that separates the measurement data plane from the control plane: OpenSketch. For…
Original article by Henrique Moura, Gabriel V. C. Bessa, Marcos A. M. Vieira and Daniel F. Macedo from UFMG: https://homepages.dcc.ufmg.br/~mmvieira/cc/papers/Etanol.pdf Dense ubiquitous wireless networks currently support management architectures that employ proprietary network controllers to perform network-wide optimizations. These controllers only manage compatible devices and remain closed…
Original article by Aditya Gudipati, Daniel Perry, Li Erran Li and Sachin Katti: https://web.stanford.edu/~skatti/pubs/hotsdn13-softran.pdf Radio resource management decisions that happen today on radio infrastructure do not take into account the impact made at one base station causes on neighboring base stations. Dense deployments, how are called networks with a reuse factor of one, had a…
Original article by Simon Jouet and Dimitrios P. Pezaros: https://ieeexplore.ieee.org/document/7966898 This paper presents BPFabric, a platform, protocol, and language-independent architecture to programming the control place in the context of a software-defined network. Being OpenFlow the most popular SDN implementation, the authors argue that it has significant limitations, meaning that it does…
Original article by Dorgival Guedes, Luiz Filipe Menezes Vieira, Marcos Menezes Vieira, Henrique Rodrigues e Rogério Vinhal Nunes: https://homepages.dcc.ufmg.br/~mmvieira/cc/papers/minicurso-sdn.pdf This mini-course presents concepts, motivations, challenges, and the many opportunities on software-defined networks (SDN). The SDN concept is explained in a very refined way, where the SDN components…
Original paper by J.H. Saltzer, D.P. Reed and D.D. Clark: https://web.mit.edu/Saltzer/www/publications/endtoend/endtoend.pdf In this paper is presented an interesting system design argument, which basically, stands that functions could easily be placed in the end/border of a system instead of being provided at a low level. This argument is heavily used in networking, and the paper follows…
Original paper by David D. Clark: http://web.stanford.edu/class/cs244/papers/DesignPhilosophyDARPA.pdf This historical paper demonstrates the motivations behind the internet architecture and its protocol suite TCP/IP. Presenting the fundamental internet’s first goal of being an effective technique for multiplexed utilization of existing interconnected networks, David Clark also demonstrates its…
Original paper and OSDI presentation by Amy Ousterhout, Joshua Fried, Jonathan Behrens, Adam Belay, and Hari Balakrishnan: https://www.usenix.org/conference/nsdi19/presentation/ousterhout This work focuses on presenting a new system for allocating new cores in a microseconds time scale while efficiently using CPU between applications that require low latency processing. Shenango achieves…
Original paper and OSDI presentation by Adam Belay, George Prekas, Ana Klimovic, Samuel Grossman, Christos Kozyrakis and Edouard Bugnion: https://www.usenix.org/conference/osdi14/technical-sessions/presentation/belay Providing high I/O performance while maintaining the strong protection advantages offered by existing kernels is an open challenge. This paper presents IX, an operating system that…
Original paper by Adam Belay, Andrea Bittau, Ali Mashtizadeh, David Terei, David Maziéres and Christos Kozyrakis: https://www.usenix.org/system/files/conference/osdi12/osdi12-final-117.pdf This paper presents Dune, a system that provides direct and secure hardware access to applications. Consisting of a kernel module that interacts with Intel VT-x, a virtualization hardware, Dune allows…
Original paper by Austin T. Clements, M. Frans Kaashoek, Nickolai Zeldovich, Robert T. Morris, and Eddie Kohler: https://www.read.seas.harvard.edu/~kohler/pubs/clements13scalable.pdf Identifying opportunities for improving a system’s scalability before any implementation exists would create high benefits for both developers and the system itself. This paper introduce the commutativity rule,…
Original paper by Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung: https://static.googleusercontent.com/media/research.google.com/pt-BR//archive/gfs-sosp2003.pdf When building a distributed file system there are many concerns to take into consideration: components failures (disk, memory, networking, power supply, and so on), concurrent file operations, bandwidth, latency, and many others. This…
Original paper by Stephen Tweedie: https://pages.cs.wisc.edu/~remzi/OSTEP/file-journaling.pdf This paper presents the design and implementation of Journaling, a file system mechanism that allows operating systems to recover quickly from crashes and power losses. The file system can become inconsistent if some crash occurs in the middle of updating on-disk structures, this happens mainly due to the…
Original paper by Mendel Rosenblum and John K. Ousterhout, developed at the University of California Berkeley: https://people.eecs.berkeley.edu/~brewer/cs262/LFS.pdf Disk access times have not improved as much as the CPU over the years, causing applications to become disk-bound. The Log-Structured File System is the technique presented in this paper that aims to increase disk write performance by…
Original paper from 2014, by Austin T. Clements, M. Frans Kaashoek, and Nickolai Zeldovich: https://pdos.csail.mit.edu/papers/radixvm%3Aeurosys13-2014-08-05.pdf This paper aims to address the problem of multithreaded applications on many-core processors being bottlenecked by contended locks inside the operating system’s virtual memory system. It presents a new virtual memory design and…
Original paper by Juan Navarro, Sitaram Iyer, Peter Druscheland Alan Cox: https://www.usenix.org/legacy/events/osdi02/tech/full_papers/navarro/navarro.pdf This paper develops a general superpage management system, balancing many tradeoffs while allocating superpages to achieve high and sustained performance for real workloads and a small degradation in pathological situations. Memory pages of…
Original paper by Silas Boyd-Wickizer, M. Frans Kaashoek, Robert Morris, and Nickolai Zeldovich: https://pdos.csail.mit.edu/6.828/2014/readings/linux-lock.pdf The authors demonstrated in this paper that non-scalable locks can cause dramatic collapse in the performance of multi-core environments when running with real workloads. The paper presents a model of non-scalable locks performance that…
Original paper from 1997, by Stefan Savage, Michael Burrows, Michael Burrows, Greg Nelson, Patrick Sobalvarro and Thomas Anderson: https://dl.acm.org/doi/10.1145/265924.265927 Multithreaded programming is a practice full of challenges. This paper presents Eraser, a tool for dynamically detecting racing conditions (data race) in lock-based multithreaded programs. As described initially in the…
Original paper from 2016, by Scott Hendrickson, Stephen Sturdevant, and Tyler Harter: https://www.usenix.org/conference/hotcloud16/workshop-program/presentation/hendrickson The paper presents OpenLambda, an open-source platform for building applications using the serverless computation model. This burgeoning model is explained as a mentality changing: instead of thinking of applications as…
Original paper from 2010, by James Larus, Galen C. Hunt: https://dl.acm.org/doi/10.1145/1787234.1787253 The paper presents The Singularity project from Microsoft Research, the operating system built on top of the high-level programming language Sing#. The main motivation presented in the paper for building this project lies in the fact that operating systems have evolved much more slowly than the…
Original paper from 2003, by Paul Barham, Boris Dragovic, Keir Fraser, Steven Hand, Tim Harris, Alex Ho, Rolf Neugebauer, Ian Pratt and Andrew Warfield: https://dl.acm.org/doi/10.1145/1165389.945462 Among the numerous systems that have been designed using virtualization to subdivide the resources of computers, this paper presents Xen, a virtual machine monitor that allows multiple operating…
Original paper by Dawson R. Engler, M. Frans Kaashoek and James O’Tootle Jr.: https://dl.acm.org/doi/10.1145/224057.224076 In this paper, the authors present an alternative to traditional Operating Systems, presenting the results of their experiments on creating a new architecture for Operating Systems called Exokernel: a small kernel that is capable of securely exporting all hardware resources…
Original paper by Dennis M. Ritchie: http://www.read.seas.harvard.edu/~kohler/class/aosref/ritchie84evolution.pdf Dennis M. Ritchie presents in this paper the evolution of the UNIX operating system, from its initial implementation running in the PDP-7 until its later days in PDP-11. The paper approaches not only the technical aspects of the evolution of the system but also the social events that…
Original paper by Dennis M. Ritchie and Ken Thompson: https://dl.acm.org/doi/10.1145/361011.361061 The paper “The UNIX Time-Sharing System” written by Dennis M. Ritchie and Ken Thompson, presents the main aspects of the UNIX Operating System, exposing the details on how its file system works and how it was implemented, highlighting the folder’s structure, permissions, special files and, the shell,…