linkedin / linkedin/ambry

Possibilities for using Ambry as a more "generic" cloud storage

Open
#555 19 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Java
Stars
1.8k
Forks
298
Avg merge
21h 43m
Merged PRs (30d)
9

Description

I was looking in to the possibility of using Ambry as a generic cloud storage solution, basically an S3 replacement. Being a dev myself I'm not afraid to get my hands dirty to implement storage implementations with Ambry's API for various applications like Phabricator, Discourse, XWiki, Open-Xchange, etc.

However I bumped into the issue that all applications I looked into assume that they can control the naming schema of the blob they are storing. Now obviously that is not something that is un-fixable; All of these solutions are opensource and could be made compatible with storage backends which don't let them choose their own "filenames" (blob names would probably be more appropriate). However that would mean getting API changes in to all kinds of upstream projects, which is usually a lot more work then just providing a new storage implementation class (all the projects I encountered already have an abstract concept of storage).

So I was wondering how realistic it would be to implement something in Ambry that would for example create a namespace per blob owner for unique blob names.

An alternative would be to create a totally separate database or gateway in front of Ambry in which a sort of virtual namespace is created. However that would create an additional database to backup, maintain, etc. It would be neat if that data could somehow be stored in Ambry itself to ease the maintenance burden of Amrby.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing Ambry's API and the existing issue discussion about blob naming, namespaces, and generic cloud-storage compatibility. The issue does not name files, tests, an entry point, or a defined completion criterion, so the desired design and what counts as done would need to be clarified first.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend, distributed-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.