Today we’re talking about our experience with btrfs, the next-gen Linux filesystem. btrfs has been maturing rapidly over the last few years and offers many compelling features for modern systems, so we’ve been putting it through its paces on some of our backup servers. How does it stack up? Read on! We chose to test […]
In a departure from our usual technical posts, we thought we’d share with you a little of what it’s like to be a network admin here at Anchor. A properly functioning network is critical for a internet services company, and our net-ops team does a fantastic job of ensuring that things keep running smoothly. When […]
We’ve recently found ourselves in the situation where we’re managing a highly-available storage service for a customer without actually having direct access to the data on the server. HA storage is commonplace for us now, but not having access to the data is unusual, particularly as a full-stack hosting provider. The reason for this is […]
In a recent post we talked about Redeye, a way to manage a cluster of Redis shards. Sharding is important for pure storage capacity, but also to manage availability and performance, seeing as Redis can be CPU bound in a suffuciently large environment. This time we’re tackling the other side of the equation, simply being […]
Berkeley DB (BDB) isn’t exactly the most glamorous database engine around, but it’s surprisingly widely deployed and feature rich. It’s designed for embedded use, so you’ll tend to find it integrated into a lot of applications if you go looking. One of our internal development efforts is evaluating various key-value databases as a secondary store […]
If you’ve deployed a number of WSGI apps like Moin and Django in your time, you’re probably familiar with Gunicorn. Like Unicorn for Rack/Rails apps, from which it borrowed the overall design philosophy, it’s straightforward, lightweight and performant. Make no mistaken, Gunicorn does a great job, but there’s a new kid on the block: uWSGI. […]
We’re the puppeteers, You can be one too! ‘Cause defining our systems is the thing to do, Dupeing and immuting is not the way, Hear what puppetmaster has to say: “502 Bad Gateway”
If you’re a regular reader you’ll know that we’ve been writing a lot of API code recently for internal development. This is a team effort with lots of coding happening in parallel in separate modules, so making sure they all work together correctly is critical. The way to do this is with comprehensive unit-testing at […]
Several months ago we talked about extending the functionality of Redis, the popular noSQL key-value datastore. Since then we’ve taken things a bit further and we think it’s worth sharing. The Customer needs to store a lot of data in Redis, a few hundred GB at last check, and growing. Redis’ single-threaded nature means it […]
One of the cool things to arise out of the last decade or so of programming language development is reimplementations. Plenty of people have said to themselves “why can’t I run $myFavouriteLanguage on the JVM?”. So they go and make it happen! Anchor has historically been a strong Python house, but we’re pragmatic about getting […]