I don't understand why EFS never gets major shout outs - it's way better than S3: systems can mount it as a drive, shared across systems, already has had super low latency... Not sure what s3 express is really useful for if EFS already exists.
In my experience the biggest drawback with EFS is startup time for systems that mount it in. For example a container or EC2 instance might only need a tiny bit of your storage and with s3 can just download what it needs when it needs it. As opposed to EFS where the container or instance needs to load in the entire datastore on startup which can add minutes to startup time if the EFS drive is large.
S3 Express Is All You Need
31–40 of 87 posts
Re: S3 Express Is All You Need
#32I don't understand why EFS never gets major shout outs - it's way better than S3: systems can mount it as a drive, shared across systems, already has had super low latency... Not sure what s3 express is really useful for if EFS already exists.
I wonder if Mountpoint for S3 along with this new Express option makes it a direct competitor to EFS for some use cases. https://docs.aws.amazon.com/AmazonS3/latest/userguide/mountp...
Re: S3 Express Is All You Need
#33Re: S3 Express Is All You Need
#34Earlier quoted context omitted.
In my experience the biggest drawback with EFS is startup time for systems that mount it in. For example a container or EC2 instance might only need a tiny bit of your storage and with s3 can just download what it needs when it needs it. As opposed to EFS where the container or instance needs to load in the entire datastore on startup which can add minutes to startup time if the EFS drive is large.
My understanding is that EFS is exposed as an NFS share. I haven't used it personally, but NFS mounting is generally fast, nearly instant. What does "load in the entire datastore" mean?
Re: S3 Express Is All You Need
#35I solved this problem locally. When uploading a file to the server before going to S3 it is cached in redis. Whenever the codebase needs to use the file, it checks redis, and if it is not there it fetches it and caches it again.
However, we now install by default to local disk filesystem, since it's much faster to just do a periodic S3 hot sync, like with restic or aws-cli, than to treat S3 as the primary backing store, or just version the EBS or instance volume. The other reason you might want to use S3 as a primary is if you use a lot of disk, but our files are compressed and extremely small, even for a large installation with tens of thousands of users and instances.
0. https://userify.com (ssh key management + sudo for teams)
Re: S3 Express Is All You Need
#36Earlier quoted context omitted.
A cache with large blobs (images, etc)
If it's only a cache it should be on EBS, which is still way faster and 2x less expensive. I started a migration to s3 for such a project (container image caching) but then stopped when I realized what I was doing.
Re: S3 Express Is All You Need
#37Earlier quoted context omitted.
Do you have any more details you can share about the performance of EFS? I've never met anyone who has actually used it in anger.
Throughput scales with the amount of data in it, it is in the docs. So depending on the application, even if latency is better, the speeds are atrocious at lower volumes of persisted data.
Re: S3 Express Is All You Need
#38> However, the new storage class does open up an exciting new opportunity for all modern data infrastructure: the ability to tune an individual workload for low latency and higher cost or higher latency and lower cost with the exact same architecture and code. I get it, but at the same time that is also what you lost when you locked yourself in with a particular vendor.
There's not much to the S3 API, and data import/export even at massive scale is available with Snowball. Sure, there's many other AWS services that aren't available at other vendors, but blob storage is commodified at this point.
Re: S3 Express Is All You Need
#39Most production storage systems/databases built on top of S3 spend a significant amount of effort building an SSD/memory caching tier to make them performant enough for production (e.g. on top of RocksDB). But it's not easy to keep it in sync with blob... Even with the cache, the cold query latency lower-bound to S3 is subject to ~50ms roundtrips [0]. To build a performant system, you have to tightly control roundtri…
We built HopsFS-S3 [0] for exactly this problem, and have running it as part of Hopsworks now for a number of years. It's a network-aware, write-through cache for S3 with a HDFS API. Metadata operations are performed on HopsFS, so you don't have the other problems list max listing operations return 1000 files/dirs. NVMe is what is changing the equation, not SSD. NVMe disks now have up to 8 GB/s, although the crap in…
The comment you reply to is talking mostly about latency - reporting that S3 object get latencies (time to open the object and return its head) in the single-digits ms, where S3 was 50ms before.
BTW EBS can do 4GB/sec per volume. But you will pay for it.
Re: S3 Express Is All You Need
#40I don't understand why EFS never gets major shout outs - it's way better than S3: systems can mount it as a drive, shared across systems, already has had super low latency... Not sure what s3 express is really useful for if EFS already exists.
EFS is really expensive and has terrible latency with small files in my experience
Before doing that it was unacceptably slow. After doing that it was unacceptably expensive.