Sheet Data Retention Changes
Our character sheets have become greatly popular, and I'm getting ready to deploy changes to allow users to go back & forth through character revision history. We have over 600,000 sheets, and with 5.3 million revisions for a whopping 50GB of sheet data.
Due to large amount of storage needed for sheets and their associated revisions, I'm having to make some changes to how we handle sheet revision history and what happens when someone deletes a sheet. The new setup is as follows.
Eventually I'll implement overall storage quotas, and a system to intelligently delete sheet revision history once the quota has been reached. I don't have any intention of making quotas 'hard' until they've been around for a while.
Due to large amount of storage needed for sheets and their associated revisions, I'm having to make some changes to how we handle sheet revision history and what happens when someone deletes a sheet. The new setup is as follows.
Quote:
Saving a Character Sheet creates a new Revision, a snapshot of the sheet's data, and associates the Character Sheet to the Revision. Saving is rate-limited to once per 10 seconds. Cloning creates a new Character Sheet that becomes associated with the latest Revision of the parent Character Sheet. That Revision will have its reference count incremented. Publishing creates a new Character Sheet that becomes associated with the latest Revision of the parent Character Sheet. That Revision will have its reference count incremented. Users can delete a Character Sheet that they own, which sends it to their 'Trash'. Character Sheets that have been in a deleted state in the 'Trash' for 1 month or longer will be permanently deleted. During deletion, any Revisions that the Character Sheet is associated with will have their reference count decremented appropriately. On a regular basis, any Revision with a reference count of 0 will be permanently deleted. |