Call me maybe: Elasticsearch 1.5.0
Previously, on Jepsen , we demonstrated stale and dirty reads in MongoDB . In this post, we return to Elasticsearch, which loses data when the network fails, nodes pause, or processes crash.
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 696 posts.
Previously, on Jepsen , we demonstrated stale and dirty reads in MongoDB . In this post, we return to Elasticsearch, which loses data when the network fails, nodes pause, or processes crash.
Cassandra is a Dynamo system; like Riak, it divides a hash ring into a several chunks, and keeps N replicas of each chunk on different nodes. It uses tunable quorums, hinted handoff, and active anti-entropy to keep replicas up to date. Unlike the Dynamo paper and some of its peers, Cassandra eschews vector clocks in…
A while ago I did a blog post about how long DNS resolvers hold results in cache for, using RIPE Atlas probes testing against their default resolvers (in a lot of cases, the DNS cache on their modem/router).
Two months ago I have published a detailed survey of varioussecurity-related problems plaguing the Intel x86 platforms. While the picturepainted in the paper...
People misuse queues all the time. The most egregious case being to fix issues with slow apps, and consequently, with overload. But to say why, I'll need to take bits of talks and texts I have around the place, and content that I have written in more details about in Erlang in Anger .
This post describes the implementation and use of pledge() and unveil() in SerenityOS.
Part of the sales pitch for Rust is that it's "as bare metal as C". 1 Rust can do anything C can do, run anywhere C can run, 2 with code...
Note: This blog post from 2018 predates the Intel Ice Lake (Sunny Core) and AMD Zen 4 processors. These newer processors are not affected by the issues described in this blog post. Our processors typically do computations using small data stores called registers. On 64-bit processors, 64-bit registers are frequently…
The CAP theorem states a database cannot guarantee consistency, availability, and partition-tolera...
See how well you know (or can anticipate) gcc's optimizer. For each question, the left box contains some code, while the right box contains code that purports to do the same thing, but that illustrates a particular optimization. Will gcc apply that optimization? Put another way, will the code on the left be as fast as…
Lock-free programming is a challenge, not just because of the complexity of the task itself, but because of how difficult it can be to penetrate the subject in the first place. I …
Algebraic effects and handlers provide a modular abstraction for expressing effectful computation, allowing the programmer to separate the expression of an effectful computation from its implementation. In this post, I will present an extension to OCaml for programming with linear algebraic effects, and demonstrate…
Or, A Heterogeneous Supercomputer in Every Pocket In the twilight of Moore’s Law, the transitions to multicore processors, GPU computing, and HaaS cloud computing are not separate trends, bu…
I think that all other considerations are of the extrinsic real-world kind – domain modeling, usability, schedules, platforms, etc. I also think that I can show how any "good" programming practice is mainly aimed at minimizing redundancy, dependencies, or both. I even think that you can tell a "good" programmer from a…
A high level walkthrough of the basics of video compression techniques used in MPEG, AVC/H.264, codecs.
In 2017, we looked at how web bloat affects users with slow connections . Even in the U.S., many users didn't have broadband speeds , making much of the web difficult to use. It's still the case that many users don't have broadband speeds, both inside and outside of the U.S. and that much of the modern web isn't…
Programming with dates, times, and timezones is hard. But here's some help.
How a mistake of less than half a millimeter in a single part nearly brought down the world’s largest passenger aircraft.
Linux load averages explained, including why they include the uninterruptible I/O sleep state.
The recent reveal of Meltdown and Spectre reminded me of the time I found a related design bug in the Xbox 360 CPU – a newly added instruction whose mere existence was dangerous. Back in 2005 I was…
Well, that was unexpected. I recorded a couple of crappy videos in 5 minutes, posted them on a Twitter thread, and went viral with 8.8K likes at this point. I really could not have predicted that, given that I’ve been posting what-I-believe-is interesting content for years and… nothing, almost-zero interest. Now that…
Clang is an “LLVM native” C/C++/Objective-C compiler, which aims to deliver amazingly fast compiles […]
Async Python is slower than "sync" Python under a realistic benchmark. A bigger worry is that async frameworks go a bit wobbly under load.
Dmitry.GR: My business card runs Linux (and Ultrix), yours can too. Details, kits, etc...
Since this January, David Anderson and I have been working on making Firefox use multiple processes. Tom Schuster (evilpie on IRC) joined us as an intern this summer, and Felipe Gomes, Mark Hammond…
Please read this update instead: Why Create a New Unix Shell? (2021) . This page is obsolete!
Near the end of January I was pointed to a twitter thread where a Windows user with a powerful machine was hitting random hangs in explorer. Lots of unscientific theories were being proposed. I don…