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

Storage changes overview #12487

Closed
12 of 22 tasks
PVince81 opened this issue Nov 28, 2014 · 18 comments
Closed
12 of 22 tasks

Storage changes overview #12487

PVince81 opened this issue Nov 28, 2014 · 18 comments

Comments

@PVince81
Copy link
Contributor

PVince81 commented Nov 28, 2014

This ticket is here to gather and discuss the bigger picture or where we want to go with the storage/filesystem architecture. So far everyone is making small changes here and there so I think it's a good idea to have an overview to what we are working on now and also where we want to go in the future.

Here are some open ideas/tickets/PRs:

Please add your own ideas about where you think the storage/filesystem part should go in the future to accommodate to new requirements (universal file access) and cleaner code/API.

@PVince81
Copy link
Contributor Author

@PVince81
Copy link
Contributor Author

@PVince81 PVince81 changed the title Storage changes plan Storage changes overview Nov 28, 2014
@DeepDiver1975
Copy link
Member

  • expose cache interface in public api for storage

@karlitschek
Copy link
Contributor

Good list. Makes sense. A lot of work :-)

Some feedback from me:

  • checksum is nice to have but could also wait for 8.1
  • The storage options are really important. Specifically the different file-scanner behavior for different storage backends. (Cache refresh behavior)
  • Maybe I missed it but we also need the option get direct download and upload links from the storage. (broker concept)

@PVince81
Copy link
Contributor Author

@karlitschek the goal of this list is not "must implement everything" but rather "things to keep in mind when designing interfaces and refactoring classes".

@karlitschek
Copy link
Contributor

@PVince81 Sure. But I think we can´t do everything at the same time. So it is good to agree an an order.
About the broker. I only wanted the be sure that it is not forgotten because it wasn´t on the list

@PVince81
Copy link
Contributor Author

Feel free to edit the origin post and reorder/group them.

@DeepDiver1975
Copy link
Member

DeepDiver1975 commented Dec 8, 2014

@PVince81
Copy link
Contributor Author

PVince81 commented Jan 29, 2015

@PVince81
Copy link
Contributor Author

@PVince81
Copy link
Contributor Author

PVince81 commented Feb 4, 2015

@DeepDiver1975 DeepDiver1975 modified the milestone: backlog Mar 21, 2015
@PVince81
Copy link
Contributor Author

We're making progress 😄 (ticked a few boxes)

@PVince81
Copy link
Contributor Author

Ticked a few more boxes due to more progress ! @butonic @DeepDiver1975 add yours...

@butonic
Copy link
Member

butonic commented Jan 9, 2017

I am trying to store metadata via extended attributes, which makes me wish the primary key of the table was (storage, fileid) and we were referencing the storage id along with the file id throughout the code. They map to device id and inode pretty well. If we touch the filecache table we should collect other requirements. Currently it is impossible to resolve the owner to a fileid by using sql. The oc storages table might contain a hashed id which causes us to iterate over all user for certain file actions like trash and versions expiry (instead of looking at the files directly).
Things that come to mind:

  • use bigint for fileid
  • rename oc_filecache to oc_fileindex because it is NOT a cache: the content cannot be rebuilt without losing the fileids & etags.
  • rename storage to storageid
  • make (storageid, fileid) primary key ... and use this combo throughout the api
  • remove unused columns (encryption no longer needs all of them AFAICT)
  • Instead of doing the migration during upgrade we can create the new table and do a user by user migration?
  • store files as part of the files app: data/files/$user?

@PVince81
Copy link
Contributor Author

PVince81 commented Jan 9, 2017

Currently it is impossible to resolve the owner to a fileid by using sql.

You can now use the oc_mounts table to reach it, see #1344 (comment), but still not very clean...

@PVince81
Copy link
Contributor Author

cc @jvillafanez

@PVince81
Copy link
Contributor Author

@PVince81
Copy link
Contributor Author

ticked a few more boxes, baby steps 😄

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

6 participants