Replex: A scalable, highly available multi-index data store Tai et al. USENIX 2016 Today’s choice won a best paper award at USENIX this year. Replex addresses the problem of key-value stores in which you also want to have an efficient query capability by values other than the primary key. … NoSQL databases achieve scalability by … Continue reading Replex: A scalable, highly available multi-index data store
Author: adriancolyer
Preemptive intrusion detection: theoretical framework and real-world measurements
Preemptive intrusion detection: theoretical framework and real-world measurements Cao et al, HotSoS 2015 Phuong Cao (the first author of this paper) got in touch following my review of DeepDive to say "Thanks for the review on DeepDive. I was inspired by that paper to apply factor graph on detecting intrusions at an early stage..." Preemptive … Continue reading Preemptive intrusion detection: theoretical framework and real-world measurements
Purposes, concepts, misfits, and a redesign of Git
Purposes, concepts, misfits, and a redesign of GitDe Rosso & Jackson OOPSLA '16 It's OOPSLA in just a few weeks time, and 'Purposes, concepts, misfits, and a redesign of Git' will be presented there, bringing the story we looked at yesterday up to date. The subject matter is the same of course - looking at … Continue reading Purposes, concepts, misfits, and a redesign of Git
What’s wrong with Git? A conceptual design analysis
What's wrong with Git? A conceptual design analysis De Rossi & Jackson Onward! 2013 We finished up last week talking about the how to find good concepts / abstractions in a software design and what good modularization looks like. Today's paper jumps 40+ years to look at some of those issues in a modern context … Continue reading What’s wrong with Git? A conceptual design analysis
A design methodology for reliable software systems
A design methodology for reliable software systems Liskov 1972 We've come to the end of Liskov's list. The final paper is by Barbara Liskov herself, on the question of how best to go about designing software systems so that we can have some confidence they will work. The unfortunate fact is that the standard approach … Continue reading A design methodology for reliable software systems
Programming with Abstract Data Types
Programming with Abstract Data Types Liskov & Zilles, ACM SIGPLAN Notices, 1974 This is paper 6/7 from Liskov's list, and it's by Barbara Liskov herself. What an enormous impact this paper has had on how we program today. Has there been any single advance in programming languages since this work (42 years ago) which has … Continue reading Programming with Abstract Data Types
Protection in programming languages
Protection in programming languages Morris Jr., CACM 1973 This is paper 5/7 on Liskov's list. Experienced programmers will attest that hostility is not a necessary precondition for catastrophic interference between programs. So what can we do to ensure that program modules are appropriately protected and isolated? We still need to allow modules to cooperate and … Continue reading Protection in programming languages
Hierarchical program structures
Hierarchical Program Structures Dahl and Hoare, 1972 We continue to work our way through Liskov's list. 'Hierarchical program structures' is actually a book chapter, and is notable for defining a 'prefix' mechanism that looks awfully like a form of class inheritance, paving the way for hierarchical program structures (i.e. Class hierarchies). The main takeaway for … Continue reading Hierarchical program structures
Information distribution aspects of design methodology
Information distribution aspects of design methodology Parnas, 1971 We're continuing with Liskov's listthis week, and today's paper is another classic from David Parnas in which you can see some of the same thinking as in 'On the criteria....' Parnas talks about the modules of a system (for contemporary feel, we could call them 'microservices' once … Continue reading Information distribution aspects of design methodology
Program development by stepwise refinement
Program development by stepwise refinement Wirth, CACM 1971 This is the second of Barbara Liskov's 7 'must-read' CS papers. Wirth's main point is that we have a tendency to focus far too much on mastering the syntax and style associated with a particular programming language, and nowhere near enough time on the process by which … Continue reading Program development by stepwise refinement