All blogs / Distributed systems / cloud
the morning paper
a random walk through Computer Science research, by Adrian Colyer
- Posts
- 1,086 from 29 May 2011 to 8 Feb 2021
- Posting
- quiet since 2021
- Kind
- personal blog
- Feed
- https://blog.acolyer.org/feed/
2021 1
2020 50
- An overview of end-to-end entity resolution for big data
- Bias in word embeddings
- Seeing is believing: a client-centric specification of database isolation
- Elle: inferring isolation anomalies from experimental observations
- Achieving 100Gbps intrusion prevention on a single server
- Virtual consensus in Delos
- Helios: hyperscale indexing for the cloud & edge (part II)
- Helios: hyperscale indexing for the cloud & edge – part 1
- The case for a learned sorting algorithm
- Orbital edge computing: nano satellite constellations as a new class of computer system
- Understanding operational 5G: a first measurement study on its coverage, performance and energy consumption
- Toward an API for the real numbers
- Spying on the floating point behavior of existing, unmodified scientific applications
- Static Analysis of Java Enterprise Applications: Frameworks and Caches, the Elephants in the Room
- Watchman: monitoring dependency conflicts for Python library ecosystem
- Aligning superhuman AI with human behaviour: chess as a model systems
- What’s happening with The Morning Paper?
- An early end of term
- Serverless in the wild: characterizing and optimising the serverless workload at a large cloud provider
- An empirical guide to the behavior and use of scalable persistent memory
- Understanding, detecting and localizing partial failures in large system software
- When correlation (or lack of it) can be causation
- Characterizing, modeling, and benchmarking RocksDB key-value workloads at Facebook
- Building an elastic query engine on disaggregated storage
- Millions of tiny databases
- Firecracker: lightweight virtualization for serverless applications
- Gandalf: an intelligent, end-to-end analytics service for safe deployment in cloud-scale infrastructure
- Meaningful availability
- AnyLog: a grand unification of the Internet of things
- Extending relational query processing with ML inference
- Cloudy with a high chance of DBMS: a 10-year prediction for enterprise-grade ML
- Migrating a privacy-safe information extraction system to a Software 2.0 design
- Programs, life cycles, and laws of software evolution
- Let’s Encrypt: an automated certificate authority to encrypt the entire web
- Watching you watch: the tracking system of over-the-top TV streaming devices
- Cloudburst: stateful functions-as-a-service
- POTS: protective optimization technologies
- The measure and mismeasure of fairness: a critical review of fair machine learning
- Seamless offloading of web app computations from mobile device to edge clouds via HTML5 Web Worker migration
- Narrowing the gap between serverless and its state with storage functions
- Reverb: speculative debugging for web applications
- Trade-offs under pressure: heuristics and observations of teams resolving internet service outages (Part II)
- Trade-offs under pressure: heuristics and observations of teams resolving internet service outages (Part 1)
- STELLA: report from the SNAFU-catchers workshop on coping with complexity
- Synthesizing data structure transformations from input-output examples
- Programmatically interpretable reinforcement learning
- Challenges of real-world reinforcement learning
- Ten challenges for making automation a ‘team player’ in joint human-agent activity
- Ironies of automation
- The Year Ahead
2019 132
- End of term
- How do committees invent?
- A tale of two abstractions: the case for object space
- A persistent problem: managing pointers in NVM
- Benchmarking spreadsheet systems
- Declarative assembly of web applications from pre-defined concepts
- Efficient lock-free durable sets
- TLA+ model checking made symbolic
- Mergeable replicated data types – Part II
- Mergeable replicated data types – Part I
- PlanAlyzer: assessing threats to the validity of online experiments
- Local-first software: you own your data, in spite of the cloud
- Formal foundations of serverless computing
- Taiji: managing global user traffic for large-scale Internet services at the edge
- Scaling symbolic evaluation for automated verification of systems code with Serval
- Snap: a microkernel approach to host networking
- The inflection point hypothesis: a principled approach to finding the root cause of a failure
- File systems unfit as distributed storage backends: lessons from ten years of Ceph evolution
- An analysis of performance evolution of Linux’s core operations
- Optimized risk scores
- Learning certifiably optimal rule lists for categorical data
- Stop explaining black box machine learning models for high stakes decisions and use interpretable models instead
- Task-based effectiveness of basic visualizations
- Futzing and moseying: interviews with professional data analysts on exploration practices
- Vega-Lite: a grammar of interactive graphics
- HackPPL: a universal probabilistic programming language
- “I was told to buy a software or lose my computer: I ignored it.” A study of ransomware
- Invisible mask: practical attacks on face recognition with infrared
- Learning a unified embedding for visual search at Pinterest
- Applying deep learning to Airbnb search
- 150 successful machine learning models: 6 lessons learned at Booking.com
- Detecting and characterizing lateral phishing at scale
- In-toto: providing farm-to-table guarantees for bits and bytes
- Small world with high risks: a study of security threats in the npm ecosystem
- Wireless attacks on aircraft instrument landing systems
- 50 ways to leak your data: an exploration of apps’ circumvention of the Android permissions system
- The secret-sharer: evaluating and testing unintended memorization in neural networks
- Even more amazing papers at VLDB 2019 (that I didn’t have space to cover yet)
- Updating graph databases with Cypher
- Fine-grained, secure and efficient data provenance on blockchain systems
- Declarative recursive computation on an RDBMS
- Procella: unifying serving and analytical data at YouTube
- Experiences with approximating queries in Microsoft’s production big-data clusters
- DDSketch: a fast and fully-mergeable quantile sketch with relative-error guarantees
- SLOG: serializable, low-latency, geo-replicated transactions
- IPA: invariant-preserving applications for weakly consistent replicated databases
- Choosing a cloud DBMS: architectures and tradeoffs
- Interactive checks for coordination avoidance
- Snuba: automating weak supervision to label training data
- Learning to prove theorems via interacting with proof assistants
- Statistical foundations of virtual democracy
- Robust learning from untrusted sources
- End of term
- Meta-learning neural Bloom filters
- Challenging common assumptions in the unsupervised learning of disentangled representations
- Data Shapley: equitable valuation of data for machine learning
- View-centric performance optimization for database-backed web applications
- Three key checklists and remedies for trustworthy analysis of online controlled experiments at scale
- Software engineering for machine learning: a case study
- Automating chaos experiments in production
- One SQL to rule them all: an efficient and syntactically idiomatic approach to management of streams and tables
- The convoy phenomenon
- Machine learning systems are stuck in a rut
- Designing far memory data structures: think outside the box
- Fast key-value stores: an idea whose time has come and gone
- What bugs cause cloud production incidents?
- Nines are not enough: meaningful metrics for clouds
- Towards multiverse databases
- A case for managed and model-less inference serving
- Beyond data and model parallelism for deep neural networks
- PyTorch-BigGraph: a large-scale graph embedding system
- Towards federated learning at scale: system design
- Data validation for machine learning
- Continuous integration of machine learning models with ease.ml/ci
- A case for lease-based, utilitarian resource management on mobile devices
- Boosted race trees for low energy classification
- CheriABI: enforcing valid pointer provenance and minimizing pointer privilege in the POSIX C run-time environment
- Compress objects, not cache lines: an object-based compressed memory hierarchy
- Software-defined far memory in warehouse scale computers
- RPCValet: NI-driven tail-aware balancing of µs-scale RPCs
- Understanding real-world concurrency bugs in Go
- Seer: leveraging big data to navigate the complexity of performance debugging in cloud microservices
- An open-source benchmark suite for microservices and their hardware-software implications for cloud & edge systems
- Distributed consensus revised – Part III
- Distributed consensus revised – Part II
- Distributed consensus revised – Part I
- End of term
- Keeping master green at scale
- Teaching rigorous distributed systems with efficient model checking
- Time protection: the missing OS abstraction
- Master of web puppets: abusing web browsers for persistent and stealthy computation
- Don’t trust the locals: investigating the prevalence of persistent client-side cross-site scripting in the wild
- How bad can it git? Characterizing secret leakage in public GitHub repositories
- Ginseng: keeping secrets in registers when you distrust the operating system
- Establishing software root of trust unconditionally
- The crux of voice (in)security: a brain study of speaker legitimacy detection
- Calvin: fast distributed transactions for partitioned database systems
- Amazon Aurora: on avoiding distributed consensus for I/Os, commits, and membership changes
- Amazon Aurora: design considerations for high throughput cloud-native relational databases
- Slim: OS kernel support for a low-overhead container overlay network
- Understanding lifecycle management complexity of datacenter topologies
- Datacenter RPCs can be general and fast
- Exploiting commutativity for practical fast replication
- Cloud computing simplified: a Berkeley view on serverless computing
- Efficient synchronisation of state-based CRDTs
- A generalised solution to distributed consensus
- Keeping CALM: when distributed consistency is easy
- Efficient large-scale fleet management via multi-agent deep reinforcement learning
- Large scale GAN training for high fidelity natural image synthesis
- GAN dissection: visualizing and understanding generative adversarial networks
- Understanding hidden memories of recurrent neural networks
- CORALS: who are my potential new customers? Tapping into the wisdom of customers’ decisions
- Protecting user privacy: an approach for untraceable web browsing history and unambiguous user profiles
- The why and how of nonnegative matrix factorization
- A survey on dynamic and stochastic vehicle routing problems
- Beyond news contents: the role of social context for fake news detection
- ExFaKT: a framework for explaining facts over knowledge graphs and text
- Graph neural networks: a review of methods and applications
- A comprehensive survey on graph neural networks
- TensorFlow.js: machine learning for the web and beyond
- Fixed it for you: protocol repair using lineage graphs
- Veritas: shared verifiable databases and tables in the cloud
- The case for network-accelerated query processing
- Programming paradigms for dummies: what every programmer should know
- The data calculator: data structure design and cost synthesis from first principles and learned cost models
- Design continuums and the path toward self-designing key-value stores that know and learn
- Towards a hands-free query optimizer through deep learning
- SageDB: a learned database system
- Serverless computing: one step forward, two steps back
- Unsupervised learning of artistic styles with archetypal style analysis
- Neural Ordinary Differential Equations
- The tradeoffs of large scale learning
2018 183
- Towards a theory of software development expertise
- Identifying impactful service system problems via log analysis
- Applied machine learning at Facebook: a datacenter infrastructure perspective
- Darwinian data structure selection
- GraphIt: A high-performance graph DSL
- MadMax: surviving out-of-gas conditions in Ethereum smart contracts
- RapidChain: scaling blockchain via full sharding
- FairSwap: how to fairly exchange digital goods
- Securify: practical security analysis of smart contracts
- LEMNA: explaining deep learning based security applications
- Towards usable checksums: automating the integrity verification of web downloads for the masses
- BEAT: asynchronous BFT made practical
- Uncertainty propagation in data processing systems
- Continuum: a platform for cost-aware low-latency continual learning
- ScootR: scaling R dataframes on dataflow systems
- Overload control for scaling WeChat microservices
- Unikernels as processes
- Debugging distributed systems with why-across-time provenance
- ApproxJoin: approximate distributed joins
- ASAP: fast, approximate graph pattern mining at scale
- Sharding the shards: managing datastore locality at scale with Akkio
- The FuzzyLog: a partially ordered shared log
- Moment-based quantile sketches for efficient high cardinality aggregation queries
- Noria: dynamic, partially-stateful data-flow for high-performance web applications
- RobinHood: tail latency aware caching – dynamic reallocation from cache-rich to cache-poor
- Maelstrom: mitigating datacenter-level disasters by draining interdependent traffic safely and efficiently
- LegoOS: a disseminated, distributed OS for hardware resource disaggregation
- Orca: differential bug localization in large-scale services
- REPT: reverse debugging of failures in deployed software
- Capturing and enhancing in situ system observability for failure detection
- Automatic discovery of tactics in spatio-temporal soccer match data
- Detecting spacecraft anomalies using LSTMs and nonparametric dynamic thresholding
- Online parameter selection for web-based ranking problems
- I know you’ll be back: interpretable new user clustering and churn prediction on a mobile social application
- Customized regression model for Airbnb dynamic pricing
- Rosetta: large scale system for text detection and recognition in images
- Columnstore and B+ tree – are hybrid physical designs important?
- The design and implementation of modern column-oriented database systems
- Smoke: fine-grained lineage at interactive speed
- Same-different problems strain convolutional neural networks
- Relational inductive biases, deep learning, and graph networks
- The seven tools of causal inference with reflections on machine learning
- An empirical analysis of anonymity in Zcash
- QSYM: a practical concolic execution engine tailored for hybrid fuzzing
- NAVEX: Precise and scalable exploit generation for dynamic web applications
- Unveiling and quantifying Facebook exploitation of sensitive personal data for advertising purposes
- Who left open the cookie jar? A comprehensive evaluation of third-party cookie policies
- Fear the reaper: characterization and fast detection of card skimmers
- STTR: A system for tracking all vehicles all the time at the edge of the network
- Learning the structure of generative models without labeled data
- Training classifiers with natural language explanations
- Snorkel: rapid training data creation with weak supervision
- Filter before you parse: faster analytics on raw data with Sparser
- Fairness without demographics in repeated loss minimization
- Obfuscated gradients give a false sense of security: circumventing defenses to adversarial examples
- Delayed impact of fair machine learning
- Bounding data races in space and time – part II
- Bounding data races in space and time – part I
- HHVM JIT: A profile-guided, region-based compiler for PHP and Hack
- BLeak: automatically debugging memory leaks in web applications
- Here we go again!
- End of term
- Oblix: an efficient oblivious search index
- EnclaveDB: a secure database using SGX
- Grand Pwning Unit: Accelerating microarchitectural attacks with the GPU
- Privacy risks with Facebook’s PII-based targeting: auditing a data broker’s advertising interface
- The rise of the citizen developer: assessing the security impact of online app generators
- Debugging data flows in reactive programs
- How not to structure your database-backed web applications: a study of performance bugs in the wild
- Secure coding practices in Java: challenges and vulnerabilities
- Deep code search
- To distribute or not to distribute? Why licensing bugs matter
- Automated localization for unreproducible builds
- Generalized data structure synthesis
- ConflictJS: finding and understanding conflicts between JavaScript libraries
- Debugging with intelligence via probabilistic inference
- DeepTest: automated testing of deep-neural-network-driven autonomous cars
- Popular is cheaper: curtailing memory costs in interactive analytics engines
- Analytics with smart arrays: adaptive and efficient language-independent data
- Medea: scheduling of long running applications in shared production clusters
- Optimus: an efficient dynamic resource scheduler for deep learning clusters
- Improving the expressiveness of deep learning frameworks with recursion
- BDS: A centralized near-optimal overlay network for inter-datacenter data replication
- Dynamic control flow in large-scale machine learning
- Reducing DRAM footprint with NVM in Facebook
- ServiceFabric: a distributed platform for building microservices in the cloud
- Hyperledger fabric: a distributed operating system for permissioned blockchains
- ForkBase: an efficient storage engine for blockchain and forkable applications
- zkLedger: privacy-preserving auditing for distributed ledgers
- Towards a design philosophy for interoperable blockchain systems
- Measuring the tendency of CNNs to learn surface statistical regularities
- Large-scale analysis of style injection by relative path overwrite
- Unsupervised anomaly detection via variational auto-encoder for seasonal KPIs in web applications
- Algorithmic glass ceiling in social networks: the effects of social recommendations on network diversity
- Pixie: a system for recommending 3+ billion items to 200+ million users in real-time
- SafeKeeper: protecting web passwords using trusted execution environments
- Semantics and complexity of GraphQL
- Re-coding Black Mirror, Part V
- Re-coding Black Mirror Part IV
- Re-coding Black Mirror Part III
- Re-coding Black Mirror, Part II
- Re-coding Black Mirror, Part I
- Inaudible voice commands: the long-range attack and defense
- Progressive growing of GANs for improved quality, stability, and variation
- Photo-realistic single image super-resolution using a generative adversarial network
- Image-to-image translation with conditional adversarial networks
- Equality of opportunity in supervised learning
- Performance analysis of cloud applications
- Stateless datacenter load-balancing with Beamer
- Andromeda: performance, isolation, and velocity at scale in cloud network virtualization
- Azure accelerated networking: SmartNICs in the public cloud
- NetChain: Scale-free sub-RTT coordination
- SmoothOperator: reducing power fragmentation and improving power utilization in large-scale datacenters
- Skyway: connecting managed heaps in distributed big data systems
- Espresso: brewing Java for more non-volatility with non-volatile memory
- Watching for software inefficiencies with Witch
- WSMeter: A performance evaluation methodology for Google’s production warehouse-scale computers
- The architectural implications of autonomous driving: constraints and acceleration
- Darwin: a genomics co-processor provides up to 15,000x acceleration on long read assembly
- Google workloads for consumer devices: mitigating data movement bottlenecks
- Securing wireless neurostimulators
- PrivacyGuide: towards an implementation of the EU GDPR on Internet privacy policy evaluation
- End of Term
- The surprising creativity of digital evolution
- Adversarial patch
- Deep learning scaling is predictable, empirically
- Anna: A KVS for any scale
- Information flow reveals prediction limits in online social activity
- Tracking ransomware end-to-end
- Three years of the Right To Be Forgotten
- On purpose and by necessity: compliance under the GDPR
- Designing secure Ethereum smart contracts: a finite state machine approach
- A quantitive analysis of the impact of arbitrary blockchain content on Bitcoin
- When coding style survives compilation: de-anonymizing programmers from executable binaries
- Exposing congestion attack on emerging connected vehicle based traffic signal control
- Game of missuggestions: semantic analysis of search autocomplete manipulation
- JavaScript Zero: real JavaScript, and zero side-channel attacks
- Synode: understanding and automatically preventing injection attacks on Node.js
- Settling payments fast and private: efficient decentralized routing for path-based transactions
- Zeus: Analyzing safety of smart contracts
- Investigating ad transparency mechanisms in social media: a case study of Facebook’s explanations
- Bug fixes, improvements, … and privacy leaks
- Apps, trackers, privacy, and regulators: a global study of the mobile tracking ecosystem
- Towards web-based delta synchronization for cloud storage systems
- Clay codes: moulding MDS codes to yield an MSR code
- Barrier-enabled IO stack for Flash storage
- Protocol aware recovery for consensus-based storage
- Fail-slow at scale: evidence of hardware performance faults in large production systems
- As we may think
- Dynamic word embeddings for evolving semantic discovery
- Can you trust the trend? Discovering Simpson’s paradoxes in social data
- Putting data in the driver’s seat: optimising earnings for on-demand ride hailing
- Tracing fake news footprints: characterizing social media messages by how they propagate
- Decentralisation in Bitcoin and Ethereum networks
- A survey on security and privacy issues of Bitcoin
- SoK: Research perspectives and challenges for Bitcoin and cryptocurrency – Part II
- SoK: Research perspective and challenges for Bitcoin and cryptocurrency – Part I
- SoK: Consensus in the age of blockchains
- OmniLedger: a secure, scale-out decentralized ledger via sharding
- Chainspace: a sharded smart contracts platform
- Blockstack: a global naming and storage system secured by blockchain
- Quantum algorithms: an overview
- Quantum computing in the NISQ era and beyond
- Polynomial-time algorithms for prime factorization and discrete logarithms on a quantum computer
- Learning representations by back-propagating errors
- A theory of the learnable
- A sample of brilliance
- The paradigms of programming
- A practitioner’s guide to reading programming languages papers
- A static verification framework for message passing in Go using behavioural types
- Linear Haskell: Practical linearity in a higher-order polymorphic language
- Why is random testing effective for partition tolerance bugs?
- Programming and proving with distributed protocols
- JaVerT: JavaScript Verification Toolchain
- RustBelt: securing the foundations of the Rust programming language
- Some thoughts on security after ten years of qmail 1.0
- Spectre attacks: exploiting speculative execution
- Meltdown
- One model to learn them all
- Emergent complexity via multi-agent competition
- Mastering chess and shogi by self-play with a general reinforcement learning algorithm
- The case for learned index structures – Part II
- The case for learned index structures – part I
2017 226
- End of term
- Bolt: anonymous payment channels for decentralized currencies – Part II
- Bolt: anonymous payment channels for decentralized currencies – part I
- Solidus: confidential distributed ledger transactions using PVORM
- Tail attacks on web applications
- Economic factors of vulnerability trade and exploitation
- Be selfish and avoid dilemmas: fork-after-withholding attacks on Bitcoin
- The dynamics of innocent flesh on the bone: code reuse ten years later
- Hindsight: understanding the evolution of UI vulnerabilities in mobile browsers
- ffwd: delegation is (much) faster than you think
- Analyzing software requirements errors in safety-critical embedded systems
- The role of software in spacecraft accidents
- Concrete problems in AI safety
- Popularity predictions of Facebook videos for higher quality streaming
- SVE: Distributed video processing at Facebook scale
- On the information bottleneck theory of deep learning
- KV-Direct: High-performance in-memory key-value store with programmable NIC
- Canopy: an end-to-end performance tracing and analysis system
- Algorand: scaling Byzantine agreements for cryptocurrencies
- DéjàVu: a map of code duplicates on GitHub
- Mastering the game of Go without human knowledge
- Opening the black box of deep neural networks via information – Part II
- Opening the black box of deep neural networks via information – part I
- Matrix capsules with EM routing
- Dynamic routing between capsules
- A model for reasoning about JavaScript promises
- Type test scripts for TypeScript testing
- Fast and precise type checking for JavaScript
- Virtual machine warmup blows hot and cold
- Statistically rigorous Java performance evaluation
- Log20: Fully automated optimal placement of log printing statements under specified overhead threshold
- My VM is lighter (and safer) than your container
- DeepXplore: automated whitebox testing of deep learning systems
- Same stats, different graphs: generating datasets with varied appearance and identical statistics through simulated annealing
- Occupy the cloud: distributed computing for the 99%
- Learning networking by reproducing research results
- The QUIC transport protocol: design and Internet-scale deployment
- Why does the neocortex have columns, a theory of learning the structure of the world
- Continuous online sequence learning with an unsupervised neural network model
- Why neurons have thousands of synapses, a theory of sequence memory in neocortex
- Computing machinery and intelligence
- Serverless computing: economic and architectural impact
- On understanding software agility – a social complexity point of view
- The new dynamics of strategy: sense-making in a complex and complicated world
- “A Rail of One’s Own” – Creating spaces for women in IT
- BadNets: Identifying vulnerabilities in the machine learning model supply chain
- CHAINIAC: Proactive software update transparency via collectively signed skipchains and verified builds
- TrustBase: an architecture to repair and strengthen certificate-based authentication
- Pretzel: email encryption and provider-supplied functions are compatible
- Detecting credential spearphishing attacks in enterprise settings
- A century of science: globalization of scientific collaborations, citations, and innovations
- HoTTSQL: Proving query rewrites with univalent SQL semantics
- ActiveClean: Interactive data cleaning for statistical modeling
- TFX: A TensorFlow-based production scale machine learning platform
- Google Vizier: A service for black-box optimization
- The evolution of continuous experimentation in software product development
- Peeking at A/B tests: continuous monitoring without pain
- An efficient bandit algorithm for real-time multivariate optimization
- Seven rules of thumb for web site experimenters
- A dirty dozen: twelve common metric interpretation pitfalls in online controlled experiments
- Distributed deep neural networks over the cloud, the edge, and end devices
- CLKSCREW: Exposing the perils of security-oblivious energy management
- A longitudinal, end-to-end view of the DNSSEC ecosystem
- To type or not to type: quantifying detectable bugs in JavaScript
- Bringing the web up to speed with WebAssembly
- Struc2vec: learning node representations from structural identity
- Accelerating innovation through analogy mining
- Adversarial examples for evaluating reading comprehension systems
- Universal adversarial perturbations
- Learning transferable architectures for scalable image recognition
- The ring of Gyges: investigating the future of criminal smart contracts
- SmartPool: Practical decentralized mining
- REM: Resource-efficient mining for blockchains
- Luck is hard to beat: the difficulty of sports prediction
- “The Leicester City fairytale?”: Utilizing new soccer analytics tools to compare performance in the 15/16 and 16/17 EPL seasons
- Step by step towards creating a safe smart contract: lessons from a cryptocurrency lab
- Adding concurrency to smart contracts
- A concurrent perspective on smart contracts
- Seeing is believing: a client-centric specification of database isolation
- Using chatbots against voicespam: analyzing Lenny’s effectiveness
- Towards deploying decommissioned mobile devices as cheap energy-efficient compute nodes
- A cloud-based content gathering network
- Growing a protocol
- JavaScript for extending low-latency in-memory key-value stores
- Paracloud: bringing application insight into cloud operations
- Deep photo style transfer
- On the design of distributed programming models
- Interactions of individual and pair programmers with an intelligent tutoring system for computer science
- Writing parsers like it is 2017
- Cardiologist-level arrhythmia detection with convolutional neural networks
- Automatic database management system tuning through large-scale machine learning
- Enabling signal processing over data streams
- Complete event trend detection in high-rate data streams
- A general purpose counting filter: making every bit count
- ACIDRain: concurrency-related attacks on database backed web applications
- End of term, and Orders of Magnitude
- Do we need specialized graph databases? Benchmarking real-time social networking applications
- Using word embedding to enable semantic queries on relational databases
- Blockbench: a framework for analyzing private blockchains
- Azure Data Lake Store: a hyperscale distributed file service for big data analytics
- Spanner: becoming a SQL system
- Dhalion: self-regulating stream processing in Heron
- Twitter Heron: towards extensible streaming engines
- An experimental security analysis of an industrial robot controller
- Hijacking Bitcoin: routing attacks on cryptocurrencies
- SoK: Cryptographically protected database search
- Cloak and dagger: from two permissions to complete control of the UI feedback loop
- IoT goes nuclear: creating a ZigBee chain reaction
- The password reset MitM attack
- How they did it: an analysis of emissions defeat devices in modern automobiles
- Hardware is the new software
- Why your encrypted database is not secure
- Gray failure: the Achilles’ heel of cloud-scale systems
- System programming in Rust: beyond safety
- A dissection of the test-driven development process: does it really matter to test-first or test-last?
- Decoding the representation of code in the brain: an fMRI study of code review and expertise
- Node.fz: fuzzing the server-side event-driven architecture
- SyncPerf: Categorizing, detecting, and diagnosing synchronization performance bugs
- RFP: When RPC is faster than server-bypass with RDMA
- SGXBounds: memory safety for shielded execution
- Hybrids on Steroids: SGX-based high-performance BFT
- Statistical analysis of latency through semantic profiling
- DStress: Efficient differentially private computations on distributed data
- Online reconstruction of structural information from datacenter logs
- Mosaic: processing a trillion-edge graph on a single machine
- An empirical study on the correctness of formally verified distributed systems
- Apps with hardware: enabling run-time architectural customization in smart phones
- Neurosurgeon: collaborative intelligence between the cloud and the mobile edge
- Bolt: I know what you did last summer… in the cloud
- Determining application-specific peak power and energy requirements for ultra-low power processors
- Typed Architectures: architectural support for lightweight scripting
- Who controls the Internet? Analyzing global threats using property traversal graphs
- BOAT: Building auto-tuners with structured Bayesian optimization
- DeepSense: a unified deep learning framework for time-series mobile sensing data processing
- Usage patterns and the economics of the public cloud
- Trajectory recovery from Ash: User privacy is NOT preserved in aggregated mobility data
- Learning to act by predicting the future
- Understanding deep learning requires re-thinking generalization
- Neural architecture search with reinforcement learning
- Semi-supervised knowledge transfer for deep learning from private training data
- End-to-end optimized image compression
- Efficient memory disaggregation with Infiniswap
- CherryPick: Adaptively unearthing the best cloud configurations for big data analytics
- vCorfu: A cloud-scale object store on a shared log
- Corfu: A distributed shared log
- The design, implementation and deployment of a system to transparently compress hundreds of petabytes of image files for a file storage service
- FM Backscatter: Enabling connected cities and smart fabrics
- ViewMap: Sharing private in-vehicle dashcam videos
- Improving user perceived page load time using gaze
- FarmBeats: An IoT platform for data-driven agriculture
- Bringing IoT to sports analytics
- End of term, and thank you to the ACM
- SGXIO: Generic trusted I/O path for Intel SGX
- Detecting ROP with statistical learning of program characteristics
- The curious case of the PDF converter that likes Mozart
- If you can’t beat them, join them: a usability approach to interdependent privacy in cloud apps
- A study of security vulnerabilities on Docker Hub
- BBR: Congestion-based congestion control
- Stochastic program optimization
- DeepCoder: Learning to write programs
- Large-scale evolution of image classifiers
- Ethically aligned design
- A miscellany of fun deep learning papers
- Recurrent Neural Network models
- Convolution neural networks, Part 3
- Convolution neural nets, Part 2
- Convolutional neural networks, Part 1
- Omid reloaded: scalable and highly-available transaction processing
- Deconstructing Xen
- Application crash consistency and performance with CCFS
- Panoply: Low-TCB Linux applications with SGX enclaves
- Enlightening the I/O path: A holistic approach for application performance
- Chronix: Long term storage and retrieval technology for anomaly detection in operational data
- MaMaDroid: Detecting Android malware by building Markov chains of behavorial models
- Redundancy does not imply fault tolerance: analysis of distributed storage reactions to single errors and corruptions
- Thou shalt not depend on me: analysing the use of outdated JavaScript libraries on the web
- HopFS: Scaling hierarchical file system metadata using NewSQL databases
- RNN models for image generation
- Unsupervised learning and GANs
- Optimisation and training techniques for deep learning
- When DNNs go wrong – adversarial examples and what we can learn from them
- Understanding, generalisation, and transfer learning in deep neural networks
- An experiment with awesome deep learning papers
- On decentralizing prediction markets and order books
- Making smart contracts smarter
- A first look at the usabilty of Bitcoin key management
- Zerocash: Decentralized anonymous payments from Bitcoin
- A fistful of Bitcoins: Characterizing payments among men with no names
- Online actions with offline impact: how online social networks influence online and offline social behavior
- Beyond the words: predicting user personality from heterogeneous information
- RedQueen: An online algorithm for smart broadcasting in social networks
- Reducing controversy by connecting opposing views
- Quantifying controversy in social media
- Learning to protect communications with adversarial neural cryptography
- Value iteration networks
- Does the online card payment landscape unwittingly facilitate fraud?
- Finding security bugs in web applications using a catalog of access control patterns
- Password managers: attacks and defenses
- Dynamics on emerging spaces: modeling the emergence of novelties
- Fencing off Go: Liveness and safety for channel-based programming
- Explaining outputs in modern data analytics
- European Union regulations on algorithmic decision making and a “right to explanation”
- How good are query optimizers, really?
- Cardinality estimation done right: index-based join sampling
- The truth, the whole truth, and nothing but the truth: a pragmatic guide to assessing empirical evaluations
- Toward sustainable insights, or why polygamy is bad for you
- Data provenance at internet scale: architecture, experiences, and the road ahead
- Ground: A data context service
- Dependency-driven analytics: a compass for uncharted data oceans
- Prioritizing attention in fast data: principles and promise
- SnappyData: A unified cluster for streaming, transactions, and interactive analytics
- Self-driving database management systems
- Weld: A common runtime for high performance data analytics
- Innovation, experience-based insight and vision at CIDR ’17
- Incremental consistency guarantees for replicated objects
- The many faces of consistency
- Adaptive logging: optimizing logging and recovery costs in distributed in-memory databases
- Shasta: Interactive reporting at scale
- Apache Hadoop YARN: Yet another resource negotiator
- “A Distributed Systems Seminar Reading List,” Spring 2017 edition
- Strategic attentive writer for learning macro-actions
- Unsupervised learning of 3D structure from images
- Learning to learn by gradient descent by gradient descent
- Matching networks for one shot learning
- Interaction networks for learning about objects, relations and physics
- Welcome to 2017
2016 216
- My New Year’s Resolution – read a research paper every (week)day
- So that was 2016
- TensorFlow: A system for large-scale machine learning
- FaSST: Fast, scalable and simple distributed transactions with two-sided (RDMA) datagram RPCs
- SCONE: Secure Linux containers with Intel SGX
- Diamond: Automating data management and storage for wide-area, reactive applications
- XFT: Practical fault-tolerance beyond crashes
- DQBarge: Improving data-quality tradeoffs in large-scale internet services
- Just say NO to Paxos overhead: replacing consensus with network ordering
- Interlude: On assumptions
- The SNOW theorem and latency-optimal read-only transactions
- REX: A development platform and online learning approach for runtime emergent software systems
- Slicer: Auto-sharding for datacenter applications
- Morpheus: Towards automated SLOs for enterprise clusters
- Firmament: Fast, centralized cluster scheduling at scale
- Early detection of configuration errors to reduce failure damage
- Kraken: Leveraging live traffic tests to identify and resolve resource utilization bottlenecks in large scale web services
- Building machines that learn and think like people
- Smart Reply: Automated response suggestion for email
- Playing FPS games with deep reinforcement learning
- Achieving human parity in conversational speech recognition
- Artificial Intelligence and life in 2030
- The Honey Badger of BFT protocols
- Twice the bits, twice the trouble: vulnerabilities induced by migrating to 64-bit platforms
- Generic attacks on secure outsourced databases
- Breaking web applications built on top of encrypted data
- Acing the IOC game: toward automatic discovery and analysis of open-source cyber threat intelligence
- Error handling of in-vehicle networks makes them vulnerable
- When CSI meets public wifi: Inferring your mobile phone password via wifi signals
- Leave your phone at the door: side channels that reveal factory floor secrets
- On formalism in specifications
- A comprehensive formal security analysis of OAuth 2.0
- Scaling Spark in the real world: performance and usability
- Algorithmic improvements for fast concurrent cuckoo hashing
- MemC3: Compact and concurrent Memcache with dumber caching and smarter hashing
- Getting beyond MVP
- Designing software for ease of extension and contraction
- A Bayesian approach to graphical record linkage and de-duplication
- Replex: A scalable, highly available multi-index data store
- Preemptive intrusion detection: theoretical framework and real-world measurements
- Purposes, concepts, misfits, and a redesign of Git
- What’s wrong with Git? A conceptual design analysis
- A design methodology for reliable software systems
- Programming with Abstract Data Types
- Protection in programming languages
- Hierarchical program structures
- Information distribution aspects of design methodology
- Program development by stepwise refinement
- Go to statement considered harmful
- Towards deep symbolic reinforcement learning
- Progressive neural networks
- Asynchronous methods for deep reinforcement learning
- Incremental knowledge base construction using DeepDive
- Simple testing can prevent most critical failures
- Why does deep and cheap learning work so well?
- Cyclades: Conflict-free asynchronous machine learning
- The load, capacity, and availability of quorum systems
- Write-limited sorts and joins for persistent memory
- Let’s talk about storage and recovery methods for non-volatile memory database systems
- Distributed consensus and the implications of NVM on database management systems
- Flexible Paxos: Quorum intersection revisited
- Time evolving graph processing at scale
- Texture networks: feed-forward synthesis of textures and stylized images
- Why should I trust you? Explaining the predictions of any classifier
- The Morning Paper on Operability
- Mastering the game of Go with deep neural networks and tree search
- Deep neural networks for YouTube recommendations
- Hints for computer system design
- The Rise of Worse is Better
- Why Functional Programming Matters
- Data on the Outside versus Data on the Inside
- On designing and deploying internet-scale services
- Reflections on trusting trust
- Computer programming as an art
- The Emperor’s Old Clothes
- No Silver Bullet – essence and accident in software engineering
- On the criteria to be used in decomposing systems into modules
- End of Term, and the power of compound interest
- Time-adaptive sketches (Ada sketches) for summarizing data streams
- Range thresholding on streams
- Sharing-aware outlier analytics over high-volume data streams
- Progressive skyline computation in database systems
- Spheres of influence for more effective viral marketing
- DBSherlock: A performance diagnostic tool for transactional databases
- Ambry: LinkedIn’s scalable geo-distributed object store
- Goods: organizing Google’s datasets
- Realtime data processing at Facebook
- Ten challenges in highly-interactive dialog systems
- Multi-domain dialog state tracking using recurrent neural networks
- Machine learning for dialog state tracking: a review
- End-to-end learning of semantic role labeling using recurrent neural networks
- Natural language understanding (almost) from scratch
- Building end-to-end dialogue systems using generative hierarchical neural network models
- Incorporating (a) copying mechanism in sequence to sequence learning
- A neural conversation model
- A survey of available corpora for building data-driven dialogue systems
- On chatbots
- Transactional data structure libraries
- AI^2: Training a big data machine to defend
- Hacking Blind
- BlindBox: Deep packet inspection over encrypted traffic
- Multi-context TLS (mcTLS): Enabling secure in-network functionality in TLS
- E2: A framework for NFV applications
- Shielding applications from an untrusted cloud with Haven
- IX: A protected dataplane operating system for high throughput and low latency
- Arrakis: the operating system is the control plane
- Identifying and quantifying architectural debt
- Hotspot Patterns: The formal definition and automatic detection of architecture smells
- Design Rule Spaces: A new form of architectural insight
- On the “naturalness” of buggy code
- BigDebug: Debugging primitives for interactive big data processing in Spark
- From Aristotle to Ringelmann
- Semi-supervised sequence learning
- Sequence to sequence learning with neural networks
- Distributed representations of sentences and documents
- How to build static checking systems using orders of magnitude less code
- Why do record/replay tests of web applications break?
- A DNA-based archival storage system
- HCloud: Resource-efficient provisioning in shared cloud systems
- SocialHash: An assignment framework for optimizing distributed systems operations on social networks
- StreamScope: Continuous reliable distributed processing of big data streams
- Efficiently compiling efficient query plans for modern hardware
- The landscape of domain name typosquatting: techniques and countermeasures
- Understanding malvertising through ad-injecting browser extensions
- Knowing your enemy: understanding and detecting malicious web advertising
- PharmaLeaks: Understanding the business of online pharmaceutical affiliate programs
- Click Trajectories: End-to-end analysis of the spam value chain
- Dynamic Time Warping averaging of time series allows faster and more accurate classification
- Time series classification under more realistic assumptions
- Searching and mining trillions of time series subsequences under Dynamic Time Warping
- Towards parameter-free data mining
- Finding surprising patterns in a time series database in linear time and space
- NOVA: A Log-Structured File System for Hybrid Volatile/Non-Volatile Main Memories
- Uncovering bugs in Distributed Storage Systems during Testing (not in production!)
- BTrDB: Optimizing Storage System Design for Timeseries Processing
- Gorilla: A fast, scalable, in-memory time series database
- Slacker: Fast Distribution with Lazy Docker Containers
- Optimizing Distributed Actor Systems for Dynamic Interactive Services
- Data Tiering in Heterogeneous Memory Systems
- GeePS: Scalable deep learning on distributed GPUs with a GPU-specialized parameter server
- The Linux Scheduler: a Decade of Wasted Cores
- Delta State Replicated Data Types
- GloVe: Global Vectors for Word Representation
- The amazing power of word vectors
- ImageNet Classification with Deep Convolutional Neural Networks
- Context-Dependent Pre-Trained Deep Neural Networks for Large-Vocabulary Speech Recognition
- Deep Learning in Neural Networks: An Overview
- End of term
- Scalable and private media consumption with Popcorn
- Ernest: Efficient Performance Prediction for Large-Scale Advanced Analytics
- Diplomat: Using Delegations to Protect Community Repositories
- Polaris: Faster Page Loads Using Fine-Grained Dependency Tracking
- Speeding up Web Page Loads with Shandian
- Sieve: Cryptographically Enforced Access Control for User Data in Untrusted Clouds
- Cliffhanger: Scaling Performance Cliffs in Web Memory Caches
- FairRide: Near-Optimal, Fair Cache Sharing
- Universal Packet Scheduling
- Maglev: A Fast and Reliable Software Network Load Balancer
- Distributed TensorFlow with MPI
- HyperLogLog in Practice: Algorithmic Engineering of a State of the Art Cardinality Estimation Algorithm
- MacroBase: Analytic Monitoring for the Internet of Things
- A Taxonomy of Attacks and a Survey of Defence Mechanisms for Semantic Social Engineering Attacks
- Secrets, Lies, and Account Recovery: Lessons from the Use of Personal Knowledge Questions at Google
- Strategic Dialogue Management via Deep Reinforcement Learning
- Memory Networks
- Neural Turing Machines
- CryptoNets: Applying Neural Networks to Encrypted Data with High Throughput and Accuracy
- Trajectory Data Mining: An Overview
- Google’s Hybrid Approach to Research
- Inferring Causal Impact Using Bayesian Structural Time-Series Models
- Graying the Black Box: Understanding DQNs
- Ad Click Prediction: A View from the Trenches
- Machine Learning: The High-Interest Credit Card of Technical Debt
- Distributed Consistency and Session Anomalies
- Generalized Isolation Level Definitions
- A Critique of ANSI SQL Isolation Levels
- Not-quite-so-broken TLS: lessons in re-engineering a security protocol specification and implementation
- IncludeOS: A minimal, resource efficient unikernel for cloud systems
- Formal Requirements for Virtualizable Third Generation Architectures
- Ownership and Reference Counting Based Garbage Collection in the Actor World
- Deny Capabilities for Safe, Fast Actors
- Capability Myths Demolished
- A Short Note on Atomicity and Ordering
- Using Crash Hoare Logic for Certifying the FSCQ File System
- All File Systems are Not Created Equal: On the Complexity of Crafting Crash Consistent Applications
- How Complex Systems Fail
- The Heard-Of Model: Computing in Distributed Systems with Benign Failures
- Chapar: Certified Causally Consistent Distributed Key-Value Stores
- Is Sound Gradual Typing Dead?
- Reducing Crash Recoverability to Reachability
- ‘Cause I’m Strong Enough: Reasoning About Consistency Choices in Distributed Systems
- Modelling the ARM v8 Architecture, Operationally: Concurrency and ISA
- PSync: A Partially Synchronous Language for Fault-Tolerant Distributed Algorithms
- POPL 2016
- Panopticon: An Omniscient Lock Broker for Efficient Distributed Transactions in the Datacenter
- Chimera: Large-Scale Classification Using Machine Learning, Rules, and Crowdsourcing
- Petuum: A New Platform for Distributed Machine Learning on Big Data
- Arabesque: A System for Distributed Graph Mining
- The Design and Implementation of the Wave Transactional Filesystem
- A Distributed Systems Seminar Reading List…
- All Change Please
- Blurred Persistence: Efficient Transactions in Persistent Memory
- From ARIES to MARS: Transaction Support for Next-Generation Solid State Drives
- Experience with Rules-Based Programming for Distributed Concurrent Fault-Tolerant Code
- The RAMCloud Storage System
- Non-volatile Storage
- No Compromises: Distributed Transactions with Consistency, Availability, and Performance
- Consensus on Transaction Commit
- Transaction Management in the R* Distributed Database Management System – Part II
- Transaction Management in the R* Distributed Database Management System – Part I
- ARIES: A Transaction Recovery Method Supporting Fine-Granularity Locking and Partial Rollbacks
- Concurrency Control Performance Modeling: Alternatives and Implications
- Granularity of Locks and Degree of Consistency in a Shared Data Base – Part II
- Granularity of Locks and Degree of Consistency in a Shared Data Base – Part I
- Access Path Selection in a Relational Database Management System
- (Database) Techiques Everyone Should Know
2015 220
- A Year in Papers
- Reactive Vega: A Streaming Dataflow Architecture for Declarative Interactive Visualization
- We Have a DREAM: Distributed Reactive Programming with Consistency Guarantees
- Asynchronous Functional Reactive Programming for GUIs
- A Survey on Reactive Programming
- Functional Reactive Animation
- Prudent Engineering Practice for Cryptographic Protocols
- Fast and Vulnerable: A Story of Telematic Failures
- Experimental Security Analysis of a Modern Automobile
- The geometry of innocent flesh on the bone: Return-into-libc without function calls (on x86)
- SoK: Eternal War in Memory
- Optimizing Hash-Array Mapped Tries for Fast and Lean Immutable JVM Collections
- Asynchronous Complex Analytics in a Distributed Dataflow Architecture
- FIT: A Distributed Database Performance Trade-off
- GD-Wheel: A Cost-Aware Replacement Policy for Key-Value Stores
- Hashed and Hierarchical Timing Wheels: Data Structures for the Efficient Implementation of a Timer Facility
- Moving Fast with Software Verification
- Fail at Scale & Controlling Queue Delay
- Minimizing Faulty Executions of Distributed Systems
- Hierarchical Delta Debugging
- Simplifying and Isolating Failure-Inducing Input
- Scrap Your Boilerplate with Object Algebras
- A Sound and Optimal Incremental Build System with Dynamic Dependencies
- The O-Ring Theory of DevOps
- Runtime Metric Meets Developer – Building Better Cloud Applications Using Feedback
- From APIs to Languages: Generalising Method Names
- Monocular SLAM Supported Object Recognition
- Simultaneous Localization and Mapping: Part I History of the SLAM problem
- A Robust Layered Control System for a Mobile Robot
- Human-Robot Teaming for Rescue Missions: Team ViGIR’s Approach to the 2013 DARPA Robotics Challenge Trials
- ROS: An open-source Robot Operating System
- Symmetry Reduction Enables Model Checking of More Complex Emerging Behaviours of Swarm Navigation Algorithms
- How to memorize a random 60-bit string
- Split-Level IO Scheduling
- Read-Log-Update: A Lightweight Synchronization Mechanism for Concurrent Programming
- Fast In-memory Transaction Processing using RDMA and HTM
- Vuvuzela: Scalable Private Messaging Resistant to Traffic Analysis
- Implementing Linearizability at Large Scale and Low Latency
- Building Consistent Transactions with Inconsistent Replication
- High-Performance ACID via Modular Concurrency Control
- Existential Consistency: Measuring and Understanding Consistency at Facebook
- Holistic Configuration Management at Facebook
- IronFleet: Proving Practical Distributed Systems Correct
- Coz: Finding code that counts with causal profiling
- Pivot Tracing: Dynamic Causal Monitoring for Distributed Systems
- Failure Sketching: A Technique for Automated Root Cause Diagnosis of In-Production Failures
- App-Bisect: Autonomous healing for microservices-based apps
- lprof: A Non-intrusive Request-Flow Profiler for Distributed Systems
- The Mystery Machine: End-to-end performance analysis of large-scale internet services
- Dapper, A Large Scale Distributed Systems Tracing Infrastructure
- IPFS – Content Addressed, Versioned, P2P File System
- Cloud Computing Resource Scheduling and a Survey of its Evolutionary Approaches
- Misbehavior in Bitcoin: A Study of Double-Spending and Accountability
- A Pact with the Devil
- Distributed Information Processing in Biological and Computational Systems
- Flower Pollination Algorithm for Global Optimization
- Cuckoo Search via Lévy Flights
- A New Metaheuristic Bat-Inspired Algorithm
- Firefly Algorithms for Multimodal Optimization
- Ant Algorithms for Discrete Optimization
- Particle Swarm Optimization
- Buffer Overflows: Attacks and Defenses for the Vulnerability of the Decade
- Lessons Learned in Implementing and Deploying Crypto Software
- Mining your Ps and Qs: Detection of Widespread Weak Keys in Network Devices
- MD5 To Be Considered Harmful Someday
- Fast Database Restarts at Facebook
- Jupiter Rising: A Decade of Clos Topologies and Centralized Control in Google’s Datacenter Network
- Out of the Fire Swamp – Part III, Go with the flow.
- Out of the Fire Swamp – Part II, Peering into the mist
- Out of the Fire Swamp* – Part I, ‘The Data Crisis’
- Consistency Without Borders
- Feral Concurrency Control: An Empirical Investigation of Modern Application Integrity
- Quantifying Isolation Anomalies
- The Potential Dangers of Causal Consistency and an Explicit Solution
- Bolt-on Causal Consistency
- Probabilistically Bounded Staleness for Practical Partial Quorums
- Mining and Summarizing Customer Reviews
- Optimizing Search Engines using Clickthrough Data
- Mining High-Speed Data Streams
- Efficient Algorithms for Public-Private Social Networks
- A Machine Learning Framework to Identify Students at Risk of Adverse Academic Outcomes
- MillWheel: Fault-Tolerant Stream Processing at Internet Scale
- Virtual Time
- Asynchronous Distributed Snapshots for Distributed Dataflows
- The Dataflow Model: A Practical Approach to Balancing Correctness, Latency, and Cost in Massive-Scale, Unbounded, Out-of-Order Data Processing
- Lasp: A language for distributed, coordination-free programming
- PerfBlower: Quickly Detecting Memory-Related Performance Problems via Amplification
- Streams à la carte: Extensible pipelines with object algebras
- Global Sequence Protocol
- Cloud Types for Eventual Consistency
- Eventually Consistent Transactions
- Access Rights Analysis in the Presence of Subjects
- Cooking the Books: Formalizing the JMM Implementation Recipes
- Optimization Coaching for JavaScript
- The Good, the Bad, and the Ugly: An Empirical Study of Implicit Type Conversions in JavaScript
- Towards Practical Gradual Typing
- Welcome Back – and ECOOP ’15
- Summer Recess
- Helping Developers Help Themselves: Automatic Decomposition of Code Review Changes
- The Art of Testing Less Without Sacrificing Quality
- When and Why Your Code Starts to Smell Bad
- Work Practices and Challenges in Pull-Based Development
- How Much Up-Front? A Grounded Theory of Agile Architecture
- Discretized Streams: Fault Tolerant Stream Computing at Scale
- Spinning Fast Iterative Dataflows
- Differential Dataflow
- Heracles: Improving Resource Efficiency at Scale
- Twitter Heron: Stream Processing at Scale
- Naiad: A Timely Dataflow System
- The Drinking Philosophers Problem
- A higher order estimate of the optimum checkpoint interval for restart dumps
- Detecting Termination of Distributed Computations Using Markers
- A Bridging Model for Parallel Computation
- Scalability! But at what COST?
- Blogel: A Block-Centric Framework for Distributed Computation on Real-World Graphs
- Pregelix: Big(ger) Graph Analytics on a Dataflow Engine
- FlashGraph: Processing Billion Node Graphs on an Array of Commodity SSDs
- GraphX: Graph Processing in a Distributed Dataflow Framework
- PowerGraph: Distributed Graph-Parallel Computation on Natural Graphs
- Distributed GraphLab: A framework for machine learning and data mining in the cloud
- GraphLab: A new framework for parallel machine learning
- Pregel: A System for Large-Scale Graph Processing
- Exploring Complex Networks
- FAWN: A Fast Array of Wimpy Nodes
- Congestion Avoidance and Control
- FaRM: Fast Remote Memory
- TAO: Facebook’s Distributed Data Store for the Social Graph
- Practical Byzantine Fault Tolerance
- FastRoute: A scalable load-aware anycast routing architecture for modern CDNs
- Wormhole: Reliable pub-sub to support Geo-Replicated Internet Services
- The Design and Implementation of Open vSwitch
- Queues don’t matter when you can JUMP them
- Jitsu: Just-in time summoning of unikernels
- Extensible Distributed Coordination
- Large-scale cluster management at Google with Borg
- Blade: A data center garbage collector
- Taming uncertainty in distributed systems with help from the network
- Putting Consistency Back into Eventual Consistency
- Staring into the abyss: An evaluation of concurrency control with one thousand cores
- Scaling Concurrent Log-Structured Data Stores
- Applying the Universal Scalability Law to organisations
- Musketeer – Part II: all for one, and one for all in data processing systems
- Musketeer – Part I : What’s the best data processing system?
- The Scalable Commutativity Rule: Designing Scalable Software for Multicore Processors
- From the Aether to the Ethernet – Attacking the Internet using Broadcast Digital Television
- Distributed Snapshots: Determining Global States of Distributed Systems
- Declarative Interaction Design for Data Visualization
- Making Sense of Performance in Data Analytics Frameworks
- Asynchronized Concurrency: The Secret to Scaling Concurrent Search Data Structures
- ApproxHadoop: Bringing Approximations to MapReduce Frameworks
- Cross-layer scheduling in cloud systems
- Mojim: A Reliable and Highly-Available Non-Volatile Memory System
- Sirius: An open end-to-end voice and vision personal assistant and its implications for future warehouse scale computers
- End of Term! (and how I read a paper…)
- Scalable Atomic Visibility with RAMP Transactions
- Lineage-driven Fault Injection
- SAMC: Semantic-aware model checking for fast discovery of deep bugs in cloud systems
- Combining static model checking with dynamic enforcement using the Statecall Policy Language
- Building on quicksand
- Out of the Tar Pit
- Coordination Avoidance in Database Systems
- A Comprehensive study of Convergent and Commutative Replicated Data Types
- Consistency, Availability, and Convergence + COPS
- Consistency analysis in Bloom: a CALM and collected approach
- Desert Island Papers: Jonas Bonér
- Raft Refloated: Do we have consensus?
- In Search of an Understandable Consensus Algorithm
- Vive La Différence: Paxos vs Viewstamped Replication vs Zab
- ZooKeeper’s Atomic Broadcast Protocol: Theory and Practice
- Zab: High-performance broadcast for primary-backup systems
- Viewstamped Replication Revisited
- Paxos Made Live
- Paxos made simple
- The Part-Time Parliament
- Viewstamped replication: A new primary copy method to support highly available distributed systems
- Can’t we all just agree?
- RIPQ: Advanced photo caching on flash for Facebook
- F2FS: A new file system for flash storage
- Bloom Cookies: web search personalization without user tracking
- Machine Learning Classification over Encrypted Data
- Information-Flow Analysis of Android Applications in DroidSafe
- NDSS and FAST week on The Morning Paper
- Edelweiss: Automatic storage reclamation for distributed programming
- Broadcast disks: data management for asymmetric communication environments
- TAG: A Tiny Aggregation Service for ad-hoc Sensor Networks
- Generative Communication in Linda
- Knowledge and Common Knowledge in a Distributed Environment
- Desert Island Papers: Peter Alvaro
- The Chubby lock service for loosely coupled distributed systems
- Enterprise Database Applications and the Cloud: A difficult road ahead
- Encapsulation of parallelism in the Volcano query processing system
- Personal Data: Thinking Inside the Box
- On the duality of resilience and privacy
- Specialized Evolution of the General Purpose CPU
- Impala: a modern, open-source SQL engine for Hadoop
- Liquid: Unifying nearline and offline big data integration
- WANalytics: Analytics for a geo-distributed, data intensive world
- The Missing Piece in Complex Analytics
- Introducing CIDR’15 week on The Morning Paper
- Recursive Programming
- On Distributed Communications Networks
- Eraser: A dynamic data race detector for multi-threaded programs
- ZooKeeper: wait-free coordination for internet scale systems
- Dremel: interactive analysis of web-scale datasets
- The MADlib Analytics Library
- The Design Philosophy of the DARPA Internet Protocols
- A new presumed commit optimisation for two-phase commit
- Architecture of a Database System
- Mesa: Geo-Replicated, Near Real-Time, Scalable Data Warehousing
- Epigrams on programming
- The Tail at Scale
- Mergeable persistent data structures
- Unikernels: Library Operating Systems for the Cloud
- How to write a 21st Century Proof
- A Brief History of the Internet
- Spanner: Google’s Globally Distributed Database
- Reflections on 100 editions of #themorningpaper
- Online, Aysnchronous Schema Change in F1
- F1: A Distributed SQL Database That Scales
- Blazes: Coordination analysis for distributed programs
2014 55
- Derflow: Distributed Deterministic Dataflow programming for Erlang
- The Network is Reliable
- A Hitchhiker’s Guide to Fast and Efficient Data Reconstruction in Erasure-coded Data Centers
- f4: Facebook’s warm BLOB storage system
- Predicate Logic as Programming Language
- Scala Actors: Unifying thread-based and event-based programming
- A language-based approach to unifying events and threads
- Why events are a bad idea
- Why threads are a bad idea
- On the duality of operating system structures
- Tachyon: Reliable, Memory Speed Storage for Cluster Computing
- Photon: Fault-tolerant and scalable joining of continuous data streams
- The 8 Requirements of Real-Time Stream Processing
- The case for distributed operating systems in the data center
- Protocols for Secure Computations
- The Semantic Elegance of Applicative Languages
- SwiftCloud: Fault-tolerant geo-replication integrated all the way to the client
- The Log-Structured Merge-Tree (LSM Tree)
- Detecting Discontinuities in Large-Scale Systems
- Use of Formal Methods at Amazon Web Services
- Church’s Thesis and Functional Programming
- Life Beyond Distributed Transactions
- Probabilistic Programming
- One VM to Rule Them All
- RAPPOR: Randomized Aggregatable Privacy-Preserving Ordinal Response
- End-to-End Arguments in System Design
- The Declarative Imperative: Experiences and Conjectures in Distributed Logic
- An Evaluation of Amazon S3’s Consistency Behavior
- The Power of Interoperability: why objects are inevitable
- Monads for functional programming
- Highly Available Transactions: Virtues and Limitations
- The Boom Hierarchy
- Route planning in transportation networks
- Dynamic vehicle routing, pickup, and delivery problems
- An unsupervised algorithm for person-name disambiguation on the web
- Leases: An efficient fault-tolerant mechanism for distributed file cache consistency
- The Google File System
- A few useful things to know about machine learning
- Enabling blockchain innovations with pegged sidechains
- Improving Cloud Service Resilience using Brownout-aware Load Balancing
- Brownout: building more robust cloud applications
- Analysis of join-the-shortest-queue routing
- Coverage and its Discontents
- Coverage is not strongly correlated with test suite effectiveness
- Compiler Error Notifications Revisited
- Debugging reinvented
- Patience is a virtue
- #themorningpaper reaches 50 papers!
- On ICSE’s “Most Influential Papers”
- Software Aging
- Shark: SQL and Rich Analytics at Scale
- Consistency, Availability, and Convergence
- Certificate Transparency
- A storm-drain for “The Morning Paper”
- Outperforming LRU with an Adaptive Replacement Cache Algorithm