HNHacker News
TopNewBestAskShowJobs

huntaub

755 karma · joined January 19, 2012

I love to chat about storage. Talk to me at archil.com.

hleath [at] archil.com

submissionscomments
huntaub··on We were wrong about GPUs
This has actually brought up an interesting point. Kubernetes is nothing more than an API interface. Should someone be working on building a multi-tenant Kubernetes (so that customers don't need to manage nodes or clusters) which enforces VM-level security (obviously you cannot safely co-locate multiple tenants containers on the same VM)?
huntaub··on Working with Files Is Hard (2019)
Thanks for this, it's helpful. Totally heard about O_APPEND and read() returning -EACCESS. The other ones, I agree, should be fixed in later versions of the Linux kernel/NFS client.
huntaub··on Working with Files Is Hard (2019)
What aspects of NFS do you think break half of the important guarantees of a file system?
huntaub··on Working with Files Is Hard (2019)
This is kind of an interesting thought that more mirrors how Docker uses OverlayFS to track changes to the entire file system. No need for new file APIs.
huntaub··on Working with Files Is Hard (2019)
I take a different view on this. IMO the tricks that existing file systems play to get more performance (specifically around ordering and atomicity) make it extra hard for developers to reason about. Obviously, you can't do anything about fsync dropping error codes, but some of these failure modes just aren't possible over file systems like NFS due to protocol semantics.
huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
Ultimately, we should be able to match the performance of FSx for Lustre. With a scale-out protocol (mirroring the Lustre protocol), it's relatively simple to achieve scaleable throughput and IOPS out to the level of 100s of GiB/s and millions of IOPS (we aren't doing this today, but I anticipate being here within a month or two).

Functionally, we're not running DRTs like Lustre does in order to synchronize from S3. We will support the ability to pre-load the cache (like a DRT), for customers who can't handle the lazy-loading latency, but unlike Lustre, we can't run out of capacity in the hot tier, and we will automatically delete data from the hot tier when it's not in use. I know that DRT management can be complex for customers.

huntaub··on Amazon S3 Adds Put-If-Match (Compare-and-Swap)
Here's how I would think about this. Regatta isn't the best way to add synchronization primitives to S3, if you're already using the S3 API and able to change your code. Regatta is most useful when you need a local disk, or a higher performance version of S3. In this case, the addition of these new primitives actually just makes Regatta work better for our customers -- because we get to achieve even stronger consistency.
huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
Thank you for the note. I’d recommend checking out this section of our docs [1], where we are trying to compile some of this comparison. I haven’t called out FlexFS specifically, but I’ll work on adding that soon. We’ll also get the Privacy Policy fixed today, thanks for pointing that out.

[1] https://docs.regattastorage.com/details/architecture

huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
I don’t know if I agree, for example, Postgres has this [1] to say about using NFS as the backing store. I think that part of the challenge is that there are so many implementation details that differ between NFS servers and many configuration options that teams can fiddle with (Postgres specifically calls out “async” as dangerous). Close to open semantics are actually stronger than what something like XFS offers (because XFS isn’t required to flush data to disk on file close), and databases should be fsyncing their write ahead logs from the application layer. Like said though, this doesn’t mean that there aren’t certain configurations of NFS which won’t work (async for example means that NFS servers won’t actually write to non-volatile storage on fsync, which is of course dangerous for any application).

[1] https://www.postgresql.org/docs/current/creating-cluster.htm...

huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
That’s true, we could just release the software open source, but that doesn’t help our customers who don’t want to run and manage their own infrastructure. Our customers tell us that the value of the product comes from it being fully managed — they simply need to click a button, and all of this works out of the box.
huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
It’s not as clear, but it’s certainly something we are considering. If you’d like to use us on-prem, I’d love to hear more. Can you shoot me an email with details at hleath [at] regattastorage.com?
huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
Thank you for the kind words, Geert!
huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
I spent several years working in the Northeast, and I developed an appreciation (but not a skill) for sailing. In some sense, I think of Regatta as high-speed sailing on top of customer data lakes.
huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
Thank you so much! It’s been amazing to see what you all have built over the years, and it’s (of course) been inspirational for me.
huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
Awesome! Great to meet you, so happy that so many folks in the space are here.
huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
This is true, and I think that there are consumer (or at least "run on your laptop") versions of this that could make sense. However, the technology underneath would have to look very different. For example, these protocols are designed for online file systems (e.g. you must be connected to the file system directly in order to list what's in a directory). This works great in a data center, but doesn't work great on your laptop.

On the other hand, something like Dropbox is actually a program running on your laptop that simulates a file system, and then does the synchronization at the file level as needed. I think that there's probably some latent demand for a similar product for developers to access their S3 buckets easily from their laptops, and it's something we might look into as we get farther along.

huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
Hey there, that's sort of the correct way to think about it -- notably that our caching layer is high-durability, so we can keep recent writes in the cache safely. External changes to the bucket are okay! Lots of customers need to (for example) ingest data into S3, then process it on a file system, and that totally works. The only thing that isn't supported is editing the same file from both S3 and the file system simultaneously. We think this is a super rare case, and probably doesn't exist today (because there isn't anything that bridges S3 and file semantics yet).

We support all S3-compatible storage services today, including R2, GCS, and MinIO.

huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
Ultimately, we're just working on a different problem space than these protocols. That's not to say that all of the existing protocols are bad, I absolutely believe that these protocols are great. Our ultimate goal, though, is to replace block storage, with a file-layer protocol. This sort of requires different semantics than what the existing file protocols support.

I don't at all disagree that it's a hard problem! That's part of what makes it so fun to work on.

huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
We've actually been thinking about getting Jepsen to do this, so I'm happy to hear that you also think that it would inspire confidence!
huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
> That is, you aren't treating the object store as the source of truth. If your caching layer goes down after a write is ack'ed but before it's "replicated" to S3, people lose their data, right?

This is exactly why we're building our caching layer to be highly-durable, like S3 itself. We will make sure that the data in the cache is safe, even if servers go down. This is what gives us the confidence to respond to the client before the data is in S3. The big difference between the data living in our cache and the data living in S3 is cost and performance, not necessarily durability.

> I think you'll end up wanting to offer customers the ability to do strongly-consistent writes (and cache invalidation). You'll also likely end up wanting to add operator control for "oh and don't cache these, just pass through to the backing store" (e.g., some final output that isn't intended to get reused anytime soon).

I think this is exactly right. I think that storage systems are too often too hands off about the data (oh, give us the bytes and we will store them for you). I believe that there are gains to be had by asking the users to tell you more about what they're doing. If you have a directory which is only used to read files and a directory which is only used to write files, then you probably want to have different cache strategies for those directories? I believe we can deliver this with good enough UX for most people to use.

> Finally, don't sleep on NFSv4.1! It ticks a bunch of compliance boxes for various industries, and then they will pay you :). Supporting FUSE is great for folks who can do it, but you'd want them to start by just pointing their NFS client at you, then "upgrading" to FUSE for better performance.

I certainly don't, and this is why we are supporting NFSv3 right now. That's not going away any time soon. We want to offer something that's highly compatible with the industry at large today (NFS-based, we can talk specifics about whether or not that should be v3 or v4) and then something that is high-performance for the early adopters who can use something like FUSE. I think that both things are required to get the breadth of customers that we're looking for.

huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
That's correct re: the S3 API. What we do is we "merge" multiple write requests together to minimize the cost to you and the number of requests to S3. For example, if you write a file 1,000 times in the span of a minute, we would merge that into a single PutObject request to S3. Of course, we force flush the data every few minutes (even if it's being written frequently) in order to make sure that there's an up-to-date copy in S3.
huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
> What is then your initial latency if i start an AI job 'fresh'? You still need to hit the backend right? How long do you then keep this data in your cache?

That's correct, and it's something that we can tune if there's a specific need. For AI use cases specifically, we're working on adding functionality to "pre-load" the cache with your data. For example, you would be able to call an API that says "I'm about to start a job and I need this directory on the cache". We would then be able to fan out our infrastructure to download that data very quickly (think hundreds of GiB/s) -- much faster than any individual instance could download the data. Then your job would be able to access the data set at low-latency. Does that sound like it would make sense for you?

> Btw. while your experience works well for Netflix, in my company (also very big), we have LoBs and while different teams utilize their storage in a different way, none of us are aligned on a level that we would benefit directly from your solution.

I'm not totally sure what you mean here. I don't anticipate that a large organization would have to 100% buy-in to Regatta in order to get benefits. In fact, this is the reason why we are so intent on having a serverless product that "scales to 0". That would allow each of your teams to independently try Regatta without needing to spend hundreds of thousands of dollars on something Day 1 for the entire company.

> From a pure curiosity point of view: Do you have already enough customers which have savings? What are their use cases? The size of their setups?

These are pretty intimate details about the business, and I don't think I can share very specific data. However, yes -- we do have customers who are realizing massive savings (50%+) over their existing set ups.

huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
Thanks for the feedback. If price is the single blocker for teams to try the product, I'd love to discuss more. Please send me an email at hleath [at] regattastorage.com.

> If i'm on one cloud provider, the traffic between their S3 compatible solution and my infrastructure is most of the time in the same cloud provider

This is exactly right, and it's why we're working to deploy our infrastructure to every major cloud. We don't want customers paying egress costs or cross-cloud latency to use Regatta.

> I also don't get your calculator at all.

This could probably use a bit more explanation on the website. We're comparing to the usage of local devices. We find that, most often, teams will only use 15% of the EBS volumes that they've purchased (over a monthly time period). This means that instead of paying $0.125/GiB-mo of storage (like io2 offers), they're actually paying $0.833/GiB-mo of actual bytes stored ($0.125/15%). Whereas on Regatta, they're only paying for what they use -- which is a combination of our caching layer ($0.20) and S3 ($0.025). That averages out closer to $0.10/GiB stored, depending on the amount of data that you use.

huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
I know that I've answered this question a couple times in the thread, so I don't know if my words add extra value here. But, I agree that it would be interesting to hear what Davies is thinking.
huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
Well, I think this is the benefit that our customers are looking for. They aren’t interested in becoming storage administrators, and running Regatta as a service allows them to not. There are, of course, other teams who do want to do that. It’s great that both kinds of products can exist.
huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
We don’t actually, but thanks for pointing that out!
huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
That’s correct — you pay for the storage yourself in S3, and then you pay for the storage when it’s in the Regatta cache. We may expose the ability to limit the cache size in the future for teams who need controllable costs more than the highest performance.
huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
This is actually also interesting, in that I don’t think that the file system paradigm actually requires a global total ordering of operations (and, in fact, many file systems don’t provide this). I know that sounds like snapshots wouldn’t be valid, but I think that applications which really care about data consistency (such as databases) are built specifically to handle this (with things like write-ahead-logs).
huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
I think we’re moving in that direction. I’m really interested to do more in the API space than traditional storage has allowed. Tell me a bit more what you mean by “transactional file system”?
huntaub··on Launch HN: Regatta Storage (YC F24) – Turn S3 into a local-like, POSIX cloud FS
This is super dependent on the application, and not something that I could answer without being an expert in SQLite. If SQLite only allows a single reader or writer, then yes. This could still be a good choice for applications which elect a “leader” to serve the database, though.
← PreviousPage 3 of 9Next →