Why didn't you use S3?
Why didn't you use S3?
- small file performance (if they're not storing the git objects as packed)
- POSIX compliance
- Their on-prem installations for customers
For posix compliance, you can use s3fuse/gcsfuse or put Avere in front, but you're either paying more for it or you're not getting the best performance.For small file performance though, no object storage system is particularly tuned for that (often the granularity is more like MBs, and at least with GCS you're talking ~100ms per write).
Finally, they need to be testing and supporting customers who want to run the whole thing "at home" wherever that is. So they would still need to run Ceph!
Disclosure: I work on Google Cloud.
[1] https://www.usenix.org/legacy/event/osdi10/tech/full_papers/...
Meaning, you can't run git on it, you'd need to make a full copy of the repo each time someone makes a commit.
The only time you would need to delete/replace is during a GC operation which can be scheduled periodically to compact the representation.
The JGit driver supports pushing to S3 in this way, and I have implemented a custom backend to hosting git repositories in an S3 like service (which in turn is based on how Google hosts git repositories at scale)
Building some kind of generic storage layer with multiple backends (S3/S4/etc) would result in us only maintaining whatever we happen to use for GitLab.com. It could also complicate maintenance too much.
You got an application designed to host a few repos on a single disk for a single company. And you wanna run it to store millions of repos for the entire internet... on a single volume.
I understand that you want to run the same thing as your customers. But you have different needs, you gonna run in permanent conflicts.
How much storage do you have now per service? How much growth do they experience? Do you even know if CephFS can scale linearly with servers/disks?
No they don't. Read their slides, they are running on 52 seconds latency at times ;)
S3 is simple and it can ingest the volume. Of course, the performances are not comparable to a local disk.