HN user

chrislusf

200 karma
Posts21
Comments105
View on HN
github.com 4y ago

SeaweedFS and YDB

chrislusf
1pts0
news.ycombinator.com 5y ago

Use the distributed file system as a Key-Large-Value store

chrislusf
2pts0
news.ycombinator.com 5y ago

Any recommendation for structured logging library in Golang?

chrislusf
2pts4
github.com 5y ago

SeaweedFS S3 performance test, with comparison to Minio

chrislusf
2pts0
github.com 6y ago

SeaweedFS on HDD is 2 times better than MooseFS on SSD

chrislusf
1pts0
github.com 9y ago

Join 2 CSV Files by Go and LuaJit

chrislusf
1pts0
github.com 9y ago

Show HN: Gleam – A Go-Based MapReduce System Supporting Luajit, Unix Pipe Tools

chrislusf
6pts0
mailp.in 11y ago

Going Out of Business Sale. Now I know it is for real

chrislusf
1pts0
mailp.in 12y ago

Intercepted audio shows Ukraine rebels shot down the plane – Mailpin

chrislusf
6pts0
groups.google.com 12y ago

[ANN] WeedFS v0.61 – A distributed scalable file system

chrislusf
2pts0
mailp.in 12y ago

Apologies from New Relic – Email Mistake – Mailpin

chrislusf
1pts1
mailp.in 12y ago

Fwd: HipChat is now free for unlimited users. Awesome.

chrislusf
2pts0
mailp.in 12y ago

Fwd: Amazon EC2 mandatory reboot

chrislusf
2pts2
mailp.in 12y ago

NOW: AWS connectivity issue for Amazon Elastic Compute Cloud (N. California)

chrislusf
7pts0
mailp.in 12y ago

Chinese Hack: Convert Python source code to Go source code

chrislusf
7pts0
mailp.in 12y ago

Jeff Bezos: I dreamed we might one day get a forklift

chrislusf
4pts0
mailp.in 12y ago

Change Amazon package routing by adding "Box" to address

chrislusf
7pts2
www.answerbrite.com 12y ago

Show HN: AnswerBrite - A Stackoverflow clone for coworkers, built with Golang

chrislusf
1pts0
code.google.com 13y ago

WeedFS Scalable Distributed File System O(1) disk read, adds replication support

chrislusf
4pts0
weed-fs.googlecode.com 14y ago

2012 might be the NoFS bubble

chrislusf
7pts2
code.google.com 14y ago

Weed-fs Fast Scalable distributed file storage system

chrislusf
2pts3

I work on SeaweedFS.

I am trying to support AWS S3 APIs as complete as possible.

Recently added support for Table Bucket, besides myriads of details, such as policies, STS, IAM, OIDC, WORM, lock and versioning, governance, etc.

(I work on SeaweedFS.)

Haha, you used Claude to find the Clause code.

I used Claude to generate a lot of admin UI pages, saved a lot of time. The core storage engine part I dare not using AI, same as you.

I work on SeaweedFS since 2011, and full time since 2025.

SeaweedFS was started as a learning project and evolves along the way, getting ideas from papers for Facebook Haystack, Google Colossus, Facebook Tectonics. With its distributed append-only storage, it naturally fits object store. Sorry to see MinIO went away. SeaweedFS learned a lot from it. Some S3 interface code was copied from MinIO when it was still Apache 2.0 License. AWS S3 APIs are fairly complicated. I am trying to replicate as much as possible.

Some recent developments:

* Run "weed mini -dir=xxx", it will just work. Nothing else to setup.

* Added Table Bucket and Iceberg Catalog.

* Added admin UI

How uv got so fast 7 months ago

I work on SeaweedFS. It is not backed by any greedy VC. So no urgency to make a large profit from the open source community.

This is Chris and I am the creator of SeaweedFS. I am starting to work full time on SeaweedFS now. Just create issues on SeaweedFS if any.

Recently SeaweedFS is moving fast and added a lot more features, such as: * Server Side Encryption: SSE-S3, SSE-KMS, SSE-C * Object Versioning * Object Lock & Retention * IAM integration * a lot of integration tests

Also, SeaweedFS performance is the best in almost all categories in a user's test https://www.repoflow.io/blog/benchmarking-self-hosted-s3-com... And after that, there is a recent architectural change that increases performance even more, with write latency reduced by 30%.

The blob storage is what SeaweedFS built on. All blob access has O(1) network and disk operation.

Files and S3 are higher layers above the blob storage. They require metadata to manage to the blobs, and other metadata for directories, S3 access, etc.

These metadata usually sit together with the disks containing the files. But in highly scalable systems, the metadata has dedicated stores, e.g., Google's Colossus, Facebook's Techtonics, etc. SeaweedFS file system layer is built as a web application of managing the metadata of blobs.

Actually SeaweedFS file system implementation is just one way to manage the metadata. There are other possible variations, depending on requirements.

There are a couple of slides on the SeaweedFS github README page. You may get more details there.

How is that not mmap?

The allocated storage is append only. For updates, just allocate another blob. The deleted blobs would be garbage collected later. So it is not really mmap.

Also what is the difference between a file, an object, a blob, a filesystem and an object store?

The answer would be too long to fit here. Maybe chatgpt can help. :)

Is all this just files indexed with sql?

Sort of yes.

Should not be a problem.

One similar use case used Cassandra as SeaweedFS filer store, and created thousands of files per second in a temp folder, and moved the files to a final folder. It caused a lot of tombstones for the updates in Cassandra.

Later, they changed to use Redis for the temp folder, and keep Cassandra for other folders. Everything has been very smooth since then.

Thanks for sharing! I work on SeaweedFS.

SeaweedFS is built on top of a blob storage based on Facebook's Haystack paper. The features are not fully developed yet, but what makes it different is a new way of programming for the cloud era.

When needing some storage, just fallocate some space to write to, and a file_id is returned. Use the file_id similar to a pointer to a memory block.

There will be more features built on top of it. File system and Object store are just a couple of them. Need more help on this.

Thanks for the detailed clarification! I am too deep into the SeaweedFS low level details and am all ears on how to make it simpler to use. SeaweedFS has weekly releases and is constantly evolving.

Depending on your case, you may need to add more filers. UCSD has a setup that uses about 10 filers to achieve 1.5 billion iops. https://twitter.com/SeaweedFS/status/1549890262633107456 There are many AI/ML users switching from MinIO or CEPH to SeaweedFS, especially with lots of images/text/audio files to process.

I found MinIO benchmark results is really, well, "marketing". MinIO is basically just an S3 API layer on top of the local disks. Any object is mapped to at least 2 files on disk, one for metadata and one is the object itself.

SeaweedFS author here. Thanks for your candid answer. You do not need to use multiple SeaweedFS components. Just download the binary and run "weed server -s3".

There are many other components, but you do not really need to use them. This default mode should be good enough for most cases. I saw many times people try to optimize too early, but often unnecessary, and sometimes in the wrong way.

I would like to know what kind of setup you are running. It should beat most other options if the use case needs lots of small files, e.g. millions or billions of files. If just small use case, e.g. a few personal files, it would be an overkill.

Another aspect is how to increase capacity for existing clusters. It should be most simple for SeaweedFS, just start one more volume server. And it will linearly increase the throughput.