Business, tech, and life by a nerd. New every Tuesday: Splitting Light: The Prism of Growth and Discovery.
Share
Splitting Light: Season 3 - Episode 09
Published about 20 hours ago • 3 min read
Splitting light
Season 3 Episode 09
First recall on our tech loans
If you are no longer interested in the newsletter, please unsubscribe
Autumn 2019
We had our first tech loan recalled in November 2019. One of the limitations of OpenIO was the number of objects in a bucket. They had recommended not putting more than 500 000 objects in a single bucket. We had documented this publicly. It was a recommendation but, of course, we didn’t limit the number of objects for customers. The limitation was there because after the 500 000 object threshold, the underlying metadata systems started to hit edge cases.
Hierarchy of metadata. When you passed the 500 000 entry boundary, the database was over a hundred megabyte, which caused de-synchronization issues.
What happened was twofold. First behind the scenes, we used two buckets. One of the objects and one for the object parts. S3 enables you the option to split your objects into multiple parts. A 50 gigabyte object is, in reality, 1,001 objects. One contains the metadata and the other 1000 are the data parts. So if you store 500 of these objects, the parts bucket reaches 500 000. As a user there is no way you can know. This is where we started to see issues. Customers that got hit by that limitation were creating more objects than the recommended number.
The second aspect was that we couldn’t tell them to alter their systems. If a customer’s flow stored millions of objects in a single bucket because it worked at AWS, who were we to tell them to split the flow into multiple buckets and do accounting on the number of objects per bucket.
It's hard to ask a client to change their flow because of our own limitations.
We started to have more and more customers having this problem. The builtin self healing mechanism didn’t work at this scale so we had to fix the metadata ourselves. We first developed a hand procedure that we followed by hand to fix the buckets. A mix of shell commands. Then, over time, Louis (a) added automation, statistics and monitoring. We started from connecting to the machines, manually copying the database to having an integrated command line interface (CLI) that would synchronize metadata on demand. That CLI ended up being a tool we used for everything; rolling deployments, migrations and more.
Stop writes to bucket; copy leader's database; overwrite follower's databases; wait for synchronization status update; restore writes
I remember the team wanting to add automation for the customer support so that we wouldn’t have to handle the re-synchronization escalation ourselves. I pushed back. Initially we didn’t have enough experience on this very delicate procedure to fully understand what could go wrong. For a few months, the customer support team escalated the tickets to us and then we would apply, manually or later, automatically the fix. From memory, we only added automation for them at least six months in. If we botched anything, that would mean customer data loss. It was not worth taking any risk by trying to go too fast.
It was the start of a difficult period. Keeping those issues was not sustainable. Object storage worked for almost every customer. Except for a few, some of them were very vocal about their issues, for good reasons. We needed a long term plan. We started to research what we would do next.
Yet, I was getting tired, but one thing kept me going. The team.
(a) Louis Solofrizzo, Storage DevOps at the time, still at Scaleway
If you have missed it, you can read the previous episode here
Splitting light Season 3 Episode 08 Recruiting more floppys If you are no longer interested in the newsletter, please unsubscribe Now that the team had settled back into an equilibrium, we needed to replenish our ranks. The storage team, after the departure of several people, was down to seven people. Split half and half into senior engineers and junior engineers. We needed to recruit more just to bear the workload. We had seven legacy storage products, two new in GA and more in R&D....
Splitting light Season 3 Episode 07 A second world first If you are no longer interested in the newsletter, please unsubscribe July 2019 to February 2020 In February 2020, we, the storage team at Scaleway, were released a world first. Personally, it was my second, the first one being the bare metal arm cloud back in 2014. Image from the blog post on the feature (1) We released “the first non-AWS S3 compatible GLACIER storage class”. This was a year after the first region in General...
Splitting light Season 3 Episode 06 A learning from Gaspard: delegate If you are no longer interested in the newsletter, please unsubscribe End of July 2019 In August 2019 Gaspard (a) joined Scaleway to manage the storage team. This was a big change for me. Gaspard was the last person at Scaleway that I consider a mentor. DC4 building decorated with banners for Scaleday. (1) Although he had prior storage experience, his experience was on consumer facing devices. He had worked for Lacie which...