Dashboard > SakaiPedia > Load Balancing and Performance Tuning > Storing Resources in the File System or the Database
  SakaiPedia Log In | Signup View a printable version of the current page.  
  Storing Resources in the File System or the Database
Added by Andrew Petro, last edited by Luke Fernandez on May 23, 2008  (view change)
Labels: 

Sakai supports storing Resources (files) in the file system (with metadata in the RDBMS) or entirely in the RDBMS.

This Sakaipedia page is intended for documenting this decision point for Sakai implementations and hopes to grow to discuss both the considerations for making this decision and the technical details on executing on the decision.

Storing resources in the file system

The University of Michigan has a procedure for addressing file deletion discussed here.

Recovery

Recovery scenarios have been discussed on the Production DG list.

Storing resources in the database

Advantages in ease of recovering consistent data in the files-in-database approach

It's much easier for your database and your file storage to get out of sync, thus complicating your restore process, if you store your files on the filesystem. If you store everything in the database, you don't have this issue; when you backup the database, you have all of your content and it's always going to be consistent.

Expected schema size

Two semesters of Sakai usage at the University of Windsor in an Oracle 10g database led to a 120 gigabyte database schema and reports no problems with this approach of storing files into the database (as of May 2008).

Some schools have moved from using the RDBMS to store files to using the filesystem in order to reduce database schema size and thereby improve the speed with which the database can be backed up (reference).

Problems with using MySQL

Foothill College reports that MySQL performance on BLOB columns is poor and converted to using the file system to store resources to achieve better performance.

FAQs

What are the performance issues that arise when storing all of Sakai data on the back end?

Performance problems have been reported with MySQL. It's less clear whether these exist if one uses a properly tuned Oracle DB.

Are there any enterprise Sakai deployments that store data strictly in the backend?

University of Windsor
Valencia

Are there migration scripts that will transfer data from a front-end filesystem storage to blobs in the backend?

None currently exist.

Is it possible to move from filesystem storage to blob storage? If so what would be the best way to do it?

What are the data backup/restore SLAs that schools have in place for Sakai?

What procedures do schools use for delivering a robust data backup/restore SLA when data is persisted in the DB and in a filesystem?

Meta and acknowledgments

This Sakaipedia page was prompted by this Sakai-dev thread. Replies in that thread have been merged into this Sakaipedia article. In particular, some of Ernie Souhrada's (rSmart) words have been used verbatim.

Site running on a free Atlassian Confluence Open Source Project License granted to Sakai Foundation. Evaluate Confluence today.
Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.5.5 Build:#811 Jul 25, 2007) - Bug/feature request - Contact Administrators