Question
How much disk space will I need for the SCORM Engine database?
Answer
In this article, we'll try to help you figure out how much disk space you might need for SCORM Engine storage in your database management system (DBMS). We support SCORM Engine installations using any of SQL Server, Oracle, MySQL, or PostgreSQL.
Quick Read: A single registration in SCORM Engine consumes an average ~30kB if launch history logging is enabled (which it is by default, per our recommendation) and a package consumes an average ~3kB. There are usually more registrations than packages, so a SCORM Engine implementation with 10,000 registrations would require ~300MB of disk space with additional considerations for DBMS and use case.
Would You Like to Know More?
The two major concepts in the SCORM Engine database model that have the potential to contribute to database growth are packages and registrations. Packages are the internal representation of SCOs, and registrations are where we store the data associated with learner behavior. Launch history logging was introduced in SCORM Engine 2009.1 and provides human-readable text for events that correspond to each launch of a course that takes place across a single registration.
Understanding our own database model is one thing, but understanding how people are using it is another. We sampled 350,000 registrations from our SCORM Cloud product to see the impact of real-world data on our own database.
What we found:
- Registrations in the SCORM Engine database require an average ~30kB of raw data storage (i.e., regardless of DBMS), with launch history logs accounting for the majority of the data.
- Packages in the SCORM Engine database require an average ~3kB of raw data storage. Note that package assets that are stored outside of the database (e.g., images, Flash files) frequently consume more than 3MB per SCO, so the database isn't the only aspect of using SCORM Engine that you'll need to pay attention to as far as disk space is concerned.
Since packages are far outnumbered by registrations in the typical use case, we'll expect registrations to drive your database disk usage.
At 30kB per registration, you'll need about 3MB of raw storage for every 100 registrations in your SCORM Engine installation. So we would expect an installation of SCORM Engine with 10,000 registrations and 50 packages to require on the order of 300MB of raw disk storage, with additional considerations for particular DBMS (e.g., SQL Server, Oracle, MySQL, PostgreSQL) and use case.
There are a few reasons, though, why we can't just say, "You'll need exactly 120GB of disk space in order to implement SCORM Engine." These include:
- Each DBMS takes a different approach to how it stores data and metadata and thus has slightly different requirements for disk space despite our using equivalent data types across every DBMS we support.
- SCORM allows for a variable number of SCOs in any given package. In addition, per the standard, any given SCO can report different amounts of data. Interactions, objectives, comments, and suspend data all vary widely across implementations of SCORM Engine based on content alone, taking user behavior as a secondary consideration. If you know your content sources well, you might be able to refine your estimates.
- Across different use cases, the number of launches (each of which adds more launch history) can vary widely.
Here's a good example of how much variability there can be. Based on data required to represent a SCO, we could achieve a theoretical minimum of ~91 bytes (although it would be ugly and pretty useless because we'd be including empty strings or single characters in some otherwise useful fields). In our sample of more than 70,000 packages stored in SCORM Cloud, though, we can look at an aggregate maximum representation of a SCO that consumes ~5.8kB. Similarly, a given registration can be stored with a minimum of 186 bytes, but we've recorded an aggregate maximum registration of more than 650kB.
DBMS-specific Information
Here's some specific information about how the DBMSes we support store data on disk.
- SQL Server (2008 R2): planning and architecture (database engine), disk usage summary report, and sp_spaceused
- Oracle (11gR2): database structure and storage
- MySQL (5.5): datatype storage requirements
- PostgreSQL (9.1): database physical storage and database object size functions
Conclusion
The point of this article is to offer you some guidance about how much disk space you'll need for your SCORM Engine database. We can give you some baselines, but the more information you have about your installation environment (including DBMS), use case (including estimates on number of registrations), and content, the better an idea you'll have about what your SCORM Engine data footprint might look like.
As always, if you have any questions, let us know.