Forum OpenACS Q&A: file-storage 3.2.5 v. file-storage 4.x

This will be more than one question...

1. What will be the major differences between 3.2.5 new-file-storage
and the 4.x file-storage?

2. Does the 4.x file-storage have a similar permissioning system like
3.2.5 (on FS_VERSIONS) or is it more flexible?

3. Could the proc fs_order_files be troublesome when scaling
file-storage 3.2.5? I can't imagine why somebody would like to update
i.e. 100000 entries in fs_files only because you want to change one
file's properties... How is this solved in 4.x?

4. Does the 4.x file-storage save the files in the file system or in
the database? Is there a select option?

Gracias

Collapse
Posted by Don Baccus on
#4: The OpenACS 4 file-storage package gives you the option of having the files stored in the DB or filesystem.  It's a package-level parameter meaning you can change it for each new instance.  You can thank Jowell Sabino for this enhancment.  I'm slowly moving all packages that allow the uploading of files in this direction, and will add a system-wide default parameter in our second release cycle.  ACS 4.2 Classic stores files in the DB.

#1. See #4.  It also has a shitty UI in comparision to 3.2.5.  Fixing that is part of Open Force's task list for dotLRN.

#2. Yes.  It uses the standard [Open]ACS 4 permissioning system, which is slightly more flexible than the 3.x model.

Collapse
Posted by David Kuczek on
Sounds great...

Anyone know about a similar thing like fs_order_files in the 4.x file-storage? Or how does the 4.x file-storage technically display the files inside a tree?

Collapse
Posted by Don Baccus on
Sorry ... it stores content in the content repository.  There's no separate ordering key for file storage as in the 3.x version.  In the PG version we don't have connect by queries so use sort keys to order query results when we want a hierarchical view.  This key needs to be updated whenever an item is inserted, updated, or deleted.  However the triggers are *much* smarter than fs_order_files and only affect a subset of the rows in the content repository tables.