Live data from Hacker News

Pocket Watch: Verifying Exabytes of Data

blogs.dropbox.com

21–28 of 28 posts

Re: Pocket Watch: Verifying Exabytes of Data

#21

Hi folks, James from Dropbox here. Happy to answer any questions that come up so feel free to send them by way.

Thanks very much James. Have really been enjoying the posts on MP, as well as the Durability Theater talks you gave.

Would you be able to give more details as to how you use disks as raw block devices, bypassing the filesystem? For example, the kind of abstraction layers you use, their interfaces and methods, disk layout of extents, metadata layout, consistency issues, fsync issues, and the various performance advantages from bypassing the filesystem?

I was also wondering, I know you have two functional zones, but do you also keep an isolated timelapsed append-only backup of all data, in case of ultimate software error (something bad gets past the verifiers, or a delayed bug kicks in)?

Re: Pocket Watch: Verifying Exabytes of Data

#22
post #21

Hi folks, James from Dropbox here. Happy to answer any questions that come up so feel free to send them by way.

Thanks very much James. Have really been enjoying the posts on MP, as well as the Durability Theater talks you gave. Would you be able to give more details as to how you use disks as raw block devices, bypassing the filesystem? For example, the kind of abstraction layers you use, their interfaces and methods, disk layout of extents, metadata layout, consistency issues, fsync issues, and the various performance advant…

Thanks for the feedback! Glad folks are reading this stuff :)

> Would you be able to give more details as to how you use disks as raw block devices, bypassing the filesystem? For example, the kind of abstraction layers you use, their interfaces and methods, disk layout of extents, metadata layout, consistency issues, fsync issues, and the various performance advantages from bypassing the filesystem?

We can definitely go into details on the raw block device. Will probably leave that to @jamwt to write a blog post on since there's quite a lot of content there. Most of the motivation for doing so was actually so we could exploit the write-zone layout of SMR disk drives, although we get some other minor benefits like a bit more "formatted" disk space and no filesystem bugs.

> I was also wondering, I know you have two functional zones, but do you also keep an isolated timelapsed append-only backup of all data, in case of ultimate software error (something bad gets past the verifiers, or a delayed bug kicks in)?

Quick summary is that we write typically only data into at least two zones (regions), obviously replicated within these zones, and then we keep "trash" around in case there's a software bug that causes deletion. We also have a delete grace period where we keep data within the storage system for longer in case an application issued an erroneous delete.

The Dropbox filesystem layer actually checks that a file was added to MP before committing it to the metadata layer of the filesystem, so there's an extra check there that the write didn't just disappear.

We also log metadata about each put and every internal data transformation to a separate system so we can retrace our steps if there was ever an issue. This logging system is actually running on HDFS, so MP isn't the only storage system running at Dropbox, but it's by far the biggest one.

Re: Pocket Watch: Verifying Exabytes of Data

#23
post #21

Hi folks, James from Dropbox here. Happy to answer any questions that come up so feel free to send them by way.

Thanks very much James. Have really been enjoying the posts on MP, as well as the Durability Theater talks you gave. Would you be able to give more details as to how you use disks as raw block devices, bypassing the filesystem? For example, the kind of abstraction layers you use, their interfaces and methods, disk layout of extents, metadata layout, consistency issues, fsync issues, and the various performance advant…

> Would you be able to give more details as to how you use disks as raw block devices, bypassing the filesystem? For example, the kind of abstraction layers you use, their interfaces and methods, disk layout of extents, metadata layout, consistency issues, fsync issues, and the various performance advantages from bypassing the filesystem?

Yeah, we're going to write a whole blog post on this sort of stuff sometime soon. Needless to say, it's a big topic!

Re: Pocket Watch: Verifying Exabytes of Data

#24

Earlier quoted context omitted.

Was shocked to see that your durability (27 9s) was so much higher than what S3 claims (11 9s), while also charging less for storage and bandwidth than S3 would. Amazing! I would be curious to see how much of your verification architecture is shared with someone like Backblaze, but I assume the only way to learn that would be to work for both companies to compare :) Would Dropbox ever share hard drive reliability sta…

From what I hear from other major storage providers Magic Pocket is definitely very high up on the paranoia/verification scale. There is of course a cost to all this verification traffic. Any sensible storage provider will be doing stuff like disk scrubbing and verification scans on their storage index however. We haven't shared drive reliability stats before but I don't think we have any objection to doing so. Don't…

> We haven't shared drive reliability stats before but I don't think we have any objection to doing so. Don't expect these in the next month or two but we'll likely get to this in the not-too-distant future.

Thanks so much James!

Re: Pocket Watch: Verifying Exabytes of Data

#25
post #23
post #21

Earlier quoted context omitted.

Thanks very much James. Have really been enjoying the posts on MP, as well as the Durability Theater talks you gave. Would you be able to give more details as to how you use disks as raw block devices, bypassing the filesystem? For example, the kind of abstraction layers you use, their interfaces and methods, disk layout of extents, metadata layout, consistency issues, fsync issues, and the various performance advant…

> Would you be able to give more details as to how you use disks as raw block devices, bypassing the filesystem? For example, the kind of abstraction layers you use, their interfaces and methods, disk layout of extents, metadata layout, consistency issues, fsync issues, and the various performance advantages from bypassing the filesystem? Yeah, we're going to write a whole blog post on this sort of stuff sometime soo…

Thanks, looking forward to it!

Re: Pocket Watch: Verifying Exabytes of Data

#26
post #21

Earlier quoted context omitted.

Thanks very much James. Have really been enjoying the posts on MP, as well as the Durability Theater talks you gave. Would you be able to give more details as to how you use disks as raw block devices, bypassing the filesystem? For example, the kind of abstraction layers you use, their interfaces and methods, disk layout of extents, metadata layout, consistency issues, fsync issues, and the various performance advant…

Thanks for the feedback! Glad folks are reading this stuff :) > Would you be able to give more details as to how you use disks as raw block devices, bypassing the filesystem? For example, the kind of abstraction layers you use, their interfaces and methods, disk layout of extents, metadata layout, consistency issues, fsync issues, and the various performance advantages from bypassing the filesystem? We can definitely…

Thanks for taking the time to reply, looking forward to the next few posts in the series.
Post reply on HN