Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change storage schema #23

Closed
17 of 26 tasks
remram44 opened this issue Jan 24, 2014 · 1 comment
Closed
17 of 26 tasks

Change storage schema #23

remram44 opened this issue Jan 24, 2014 · 1 comment

Comments

@remram44
Copy link
Owner

The current storage scheme has the following problems:

  • (C) Collisions: different entries (= sets of metadata) with the same content won't be accepted (issue Same file, different metadata #10)
  • (F) File name selection: Matthias wants filenames to be selectable (or changeable)

Other options that come to mind are:

  • (M) Changing metadata for an entry
  • (D) Deduplication (store files once if two entries have the same content)

The schemas I have in mind are:

1

hash(content) <-> filename
               -> metadata
  • can rename file
  • can add/change metadata
  • two files with the same hash will share metadata

2

hash(content||metadata) <-> filename
                         -> metadata
  • can rename file
  • can't change metadata
  • no collisions
  • no deduplication

3

uuid <-> filename
      -> metadata
  • can rename file
  • can change metadata
  • no collisions
  • no deduplication

4

uuid -> hash(content) <-> filename
     -> metadata
  • can rename file (affects multiple entries)
  • can change metadata
  • no collisions
  • deduplication

5

hash(content||metadata) -> hash(content) <-> filename
                        -> metadata
  • can rename file (affects multiple entries)
  • can't change metadata
  • no collisions
  • deduplication

6

hash(content||metadata) <-> filename
                         -> metadata
  • can rename file
  • can't change metadata
  • no collisions
  • no deduplication

Right now:

Legacy

hash(content) = filename
              -> metadata
  • can't rename file
  • can change metadata (not implemented)
  • collisions possible
@remram44 remram44 modified the milestones: 0.6, 0.x Feb 23, 2015
@remram44
Copy link
Owner Author

Master now uses (since d003bce):

hash(content||metadata) -> hash(content) = filename
                        -> metadata
  • can't rename file (but can be added)
  • can't change metadata (without creating new objectid)
  • no collisions
  • deduplication

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant