mountpoint-s3
ristretto
mountpoint-s3 | ristretto | |
---|---|---|
17 | 19 | |
4,017 | 5,321 | |
1.8% | 1.0% | |
9.5 | 6.1 | |
6 days ago | about 1 month ago | |
Rust | Go | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
mountpoint-s3
-
Row Zero and Viewport Data Streaming
... or does "S3 file system" mean https://github.com/awslabs/mountpoint-s3 - a Rust project by AWS Labs that provides "a simple, high-throughput file client for mounting an Amazon S3 bucket as a local file system" ?
- s3m: A CLI for streams of data in S3 buckets
-
S3 Express Is All You Need
Looks like support for S3 Express was merged in with version 1.30 just a few hours ago https://github.com/awslabs/mountpoint-s3/pull/642
-
Gcsfuse: A user-space file system for interacting with Google Cloud Storage
mountpoint-s3 is AWS’ first party solution for mounting s3 buckets as file systems: https://github.com/awslabs/mountpoint-s3
Haven’t used it but it looks cool, if a bit immature.
- Mountpoint for S3
- When would something like this come to ADLS Gen 2?
-
Running Amazon S3 Mountpoint Inside a Container
FROM rust:1.68.0 as Build RUN apt-get update && apt-get install -y \ clang\ cmake \ curl \ fuse \ git \ libfuse-dev \ pkg-config \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* \ && git clone --recurse-submodules https://github.com/awslabs/mountpoint-s3.git \ && cd mountpoint-s3 \ && cargo build --release FROM debian:bullseye-slim RUN apt-get update && apt-get install -y \ ca-certificates \ libfuse-dev \ sudo \ && apt-get clean \ && rm -rf /var/lib/apt/lists/* COPY --from=build /mountpoint-s3/target/release/mount-s3 /usr/local/bin/mount-s3 RUN chmod 777 /usr/local/bin/mount-s3 RUN useradd -ms /bin/bash mount-s3-user \ && echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers \ && adduser mount-s3-user sudo USER mount-s3-user
- GitHub - awslabs/mountpoint-s3: A simple, high-throughput file client for mounting an Amazon S3 bucket as a local file system.
-
The inside story on Mountpoint for Amazon S3, a high-performance open source file client
This might be useful with a MinIO server, although not directly supported
ristretto
-
Otter, Fastest Go in-memory cache based on S3-FIFO algorithm
1. Unfortunately, ristretto has been showing hit ratio around 0 on almost all traces for a very long time now and the authors don't respond to this in any way. Vitess for example has already changed it to another cache. Here are two issues about it: https://github.com/dgraph-io/ristretto/issues/346 and https://github.com/dgraph-io/ristretto/issues/336. That is, ristretto shows such results even on its own benchmarks. You can see it just by running hit ratio benchmarks on a very simple zipf distribution from the ristretto repository: https://github.com/dgraph-io/ristretto/blob/main/stress_test.... On this test I got the following:
-
S3 Express Is All You Need
That's exactly how Userify[0] used to work. (when it was Python; now that it's a Go app, we do the caching in memory using Ristretto[1]).
0. https://userify.com (team ssh key management/sudo authz)
1. https://github.com/dgraph-io/ristretto
-
Theine - High performance in-memory cache
I also do some hit ratio benchmarks and Theine's results are much better than Ristretto. See results in README: https://github.com/Yiling-J/theine-go#hit-ratios
-
Python deserves a good in-memory cache library!
If you know Caffeine(Java)/Ristretto(Go)/Moka(Rust), you know what Theine is. Python deserves a good in-memory cache library.
-
VCache: A Simple In-Memory Cache Library
Thanks for sharing. There are a lot of options for embedded in-memory caches: https://github.com/dgraph-io/ristretto https://awesome-go.com/caches/ Do you have any comparisons or details on how your project has a different approach?
-
Cacheme: Asyncio cache framework with multiple storages and thundering herd protection
I made Cacheme years ago, which support redis and synchronous API only. Then I switch to Go and found that there are some awesome cache projects in Go(ristretto, gocache...), I also made my own Cacheme go version: cacheme-go. After trying asyncio and type hint, I think it's time to rewrite my old Cacheme.
-
Show HN: Zcached, in-memory key-value cache wire-compatible with memcached
zcached is an in-memory key-value cache exposing a memcached ASCII protocol-compatible interface, built on pluggable cache engines like Ristretto and freecache [0].
It's not performance-competitive with memcached, especially at higher thread counts. That said, it achieves about 1.1M ops/s, but at significantly higher P99 and P999 latency (as measured by memtier). See [1] and [2] for benchmark results from my 7950x-based workstation.
Disclaimer: This is a hobby project created for fun while hacking over the holidays. zcached is not a commercial product and never will be. Don't use it in production; consider this a technology demo more than anything.
I don't expect the source code to build outside of my environment, but for those interested in playing with it, binary artifacts are available at [3]. Try `zcached --address tcp:localhost:11211`.
[0] https://github.com/dgraph-io/ristretto, https://github.com/coocood/freecache
- What is the coolest Go open source projects you have seen?
-
Quitting Dgraph Labs
While I never used dgraph, I do use badger and ristretto and am similarly in a bind over their long-term survival (moreso badger than ristretto)...
-
Recommendation for Key/Value storage
There are also different packages used as a wrapper on top of the Go map based on what your requirements are (storing a lot of data) https://github.com/allegro/bigcache or (need performance) https://github.com/dgraph-io/ristretto. For basic use-cases, the standard Go map should be enough. Just keep in mind whether you need concurrent access to your data structure, in which case you should guard your map with a mutex .
What are some alternatives?
s3fs-fuse - FUSE-based file system backed by Amazon S3
go-cache-benchmark - Cache benchmark for Golang
PosixSyncFS - PosixSyncFS is a set of Bash scripts that allow users to create a real POSIX filesystem and sync it to a remote storage bucket for backup and recovery purposes.
BigCache - Efficient cache for gigabytes of data written in Go.
goofys - a high-performance, POSIX-ish Amazon S3 file system written in Go
stretto - Stretto is a Rust implementation for Dgraph's ristretto (https://github.com/dgraph-io/ristretto). A high performance memory-bound Rust cache.
aws-eks-iam-auth-controller - Kubernetes operator which consolidates custom resources into `aws-auth` ConfigMap.
moka - A high performance concurrent caching library for Rust
usbd - User-Space Block Device (USBD) Framework (written in Go)
parquet-go - Go library to read/write Parquet files
rclone - "rsync for cloud storage" - Google Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Wasabi, Google Cloud Storage, Azure Blob, Azure Files, Yandex Files
IceFireDB - @IceFireLabs -> IceFireDB is a database built for web3.0 It strives to fill the gap between web2 and web3.0 with a friendly database experience, making web3 application data storage more convenient, and making it easier for web2 applications to achieve decentralization and data immutability.