[open] Archived Data Storage
While writing LibHistoire I've been thinking how to best store the history data in a way that won't require to delete anything in the future, regardless of how many events are stored. The conclusion I have come to is that it's best to segment it by timeframe and then put it into a compressed form. However with the current way saved variables work, this will only get me so far.
There are currently several issues that make it work less than optimal.
This is why I'd like to ask for a new set of apis which allows addons to store rarely needed data in a way that will minimize impact on loading time and help save disk space. The idea is to allow addons to store an arbitrary amount of raw (binary) strings as files inside a zip-archive named after the addon. In order to enable this feature, an addon can put the following directive into its manifest: Code:
## EnableSavedVariableArchive: 1 An addon can then request specific files to be loaded or saved via the following new functions: Code:
*boolean* success = LoadArchivedFile(*string* addOnName, *string* pathInArchive) Code:
EVENT_ARCHIVED_FILE_LOAD_FINISHED(*string* addOnName, *string* pathInArchive, *string* content) In my specific use case I'd like to be able to archive the history per year and month and create a structure like this inside the archive:
And of course the archive should just be a regular zip file, so it can be opened or modified outside the game. |
Some addons "abuse" SavedVars as "database" files. (Including some of mine ;))
I wished we have some load-/save on demand. Like loading data of a zone on demand. (And not all at once) This archive files could be locked with an exclusive lock while eso is running to block other processes to do real-time data-exchange. |
Wouldn't such zip files, "saved on demand", be readable by external tools so that they could read "live information from the server" again?
Or would the execution of function SaveArchivedFile only happen on logout, reloadui, loading screens as normal SV? |
Quote:
In this case other tools can not open that file, because it is "in use by another process". |
All times are GMT -6. The time now is 09:24 PM. |
vBulletin © 2024, Jelsoft Enterprises Ltd
© 2014 - 2022 MMOUI