Live data from Hacker News

HopsFS: 100x Times Faster Than AWS S3

logicalclocks.com

31–40 of 139 posts

Re: HopsFS: 100x Times Faster Than AWS S3

#31
post #12

Diagram seems to imply an active/passive namenode setup like HDFS. Doesn't that limit it to tiny filesystems, and curse it with the same availability problems that plague HDFS?

No, HopsFS namenodes are stateless as the metadata is stored on an in-memory distributed database (NDB)

There are other papers that describe HopsFS architecture in more details if you are interested: https://www.usenix.org/system/files/conference/fast17/fast17...

Re: HopsFS: 100x Times Faster Than AWS S3

#32
High-availability durable filesystem is a difficult problem to solve. It usually starts with NFS, which is a big huge single point of failure. Depending on the nature of the application this might be good enough.

But if it's not, you'll typically want cross-datacenter replication so if one rack goes down you don't lose all your data. So then you're looking at something like Glusterfs/MooseFS/Ceph. But the latencies involved with synchronously replicating to multiple datacenters can really kill your performance. For example, try git cloning a large project onto a Glusterfs mount with >20ms ping between nodes. It's brutal.

Other products try to do asynchronous replication, EdgeFS is one I was looking at recently. This follows the general industry trend, like it or not, of "eventually consistent is consistent enough". Not much better than a cron job + rsync, in my opinion, but for some workloads it's good enough. If there's a partition you'll lose data.

Eventually you just give up and realize that a perfectly synchronized geographically distributed POSIX filesystem is a pipe dream, you bite the bullet and re-write your app against S3 and call it a day.

Re: HopsFS: 100x Times Faster Than AWS S3

#33

> 100X the performance of S3 for file move/rename operations I don’t see how it can be useful. Moving or renaming files in S3 seems more like maintenance than something you want to do on a regular basis.

We do this in our ETL jobs on several hundreds of thousands of files a day. Not a reason to switch to a different system, but there are definitely non-maintenance use cases for this.

Any particular reason you don't tag the objects instead? That's a significantly lighter-weight operation, since S3 doesn't have native renaming capability.

Re: HopsFS: 100x Times Faster Than AWS S3

#34
post #12

Diagram seems to imply an active/passive namenode setup like HDFS. Doesn't that limit it to tiny filesystems, and curse it with the same availability problems that plague HDFS?

No because HopsFS uses a stateless namenode architecture. From https://github.com/hopshadoop/hops

"HopsFS is a new implementation of the Hadoop Filesystem (HDFS), that supports multiple stateless NameNodes, where the metadata is stored in MySQL Cluster, an in-memory distributed database. HopsFS enables more scalable clusters than Apache HDFS (up to ten times larger clusters), and enables NameNode metadata to be both customized and analyzed, because it can now be easily accessed via a SQL API."

Re: HopsFS: 100x Times Faster Than AWS S3

#35

High-availability durable filesystem is a difficult problem to solve. It usually starts with NFS, which is a big huge single point of failure. Depending on the nature of the application this might be good enough. But if it's not, you'll typically want cross-datacenter replication so if one rack goes down you don't lose all your data. So then you're looking at something like Glusterfs/MooseFS/Ceph. But the latencies i…

wait, S3 can do git now? I guess you are right in nearly everything... but starting with git on gluster and then jumping to selling apples as bananas (e.g. S3) doesn't really make an argument.

Re: HopsFS: 100x Times Faster Than AWS S3

#36

High-availability durable filesystem is a difficult problem to solve. It usually starts with NFS, which is a big huge single point of failure. Depending on the nature of the application this might be good enough. But if it's not, you'll typically want cross-datacenter replication so if one rack goes down you don't lose all your data. So then you're looking at something like Glusterfs/MooseFS/Ceph. But the latencies i…

> For example, try git cloning a large project onto a Glusterfs mount with >20ms ping between nodes. It's brutal.

That may be true but also is due to applications often having very sequential IO patterns even when they don't need to be.

I hope we'll get some convenience wrappers around io_uring that make batching of many small IO calls in a synchronous manner simple and easy for cases where you don't want to deal with async runtimes. E.g. bulk_statx() or fsync_many() would be prime candidates for batching.

Re: HopsFS: 100x Times Faster Than AWS S3

#37
post #15
post #7

Earlier quoted context omitted.

> ... but has 100X the performance of S3 for file move/rename operations Isn't rename in S3 effectively a copy-delete operation?

That’s my understanding too. Also rename / copy turned out not to be very useful at the end of the day. Nearly all my implementations just boil down to randomized characters as ids

Yup. Use a system like Redis/DynamoDB or even a traditional database to store the metadata and use random UUID for actual file storage.

And tag the files for expiration/clean up. S3 is not a file system and people should stop treating it like one - only to get bitten by these assumptions around it being a FS.

Re: HopsFS: 100x Times Faster Than AWS S3

#38

Can this be installed on AWS EMR clusters?

Not really, but you can try it out on https://hopsworks.ai

It's conceptually similar to EMR in the way it works. You connect your AWS account and we'll deploy a cluster there. HopsFS will run on top a S3 bucket in your organization. You get a fully featured Spark environment (With metrics and logging included - no need for cloudwatch). UI with Jupyter notebooks, the Hopsworks feature store and ML capabilities that EMR does not provide.

Re: HopsFS: 100x Times Faster Than AWS S3

#39

Earlier quoted context omitted.

We do this in our ETL jobs on several hundreds of thousands of files a day. Not a reason to switch to a different system, but there are definitely non-maintenance use cases for this.

Any particular reason you don't tag the objects instead? That's a significantly lighter-weight operation, since S3 doesn't have native renaming capability.

You can't list objects by tag.

Re: HopsFS: 100x Times Faster Than AWS S3

#40

Reading/writing SMALL files are SUPER slow on things like S3, Google Drive, Backblaze. Also using a lot of threads does only help a little bit but it's nowhere near reading/writing speeds of e.g. a single 600MB file. Is HopsFS helping in this area?

Regarding small files, HopsFS can store small files in the metadata layer for improved performance.

https://kth.diva-portal.org/smash/record.jsf?pid=diva2:12608...

Post reply on HN