Caching of object artifacts and config
Ideas from #72
- Problem 1: the config is sent with each request
- Problem 2: dependencies are sent in each request
Ideas:
- Addressing just 1: Supposing that abaplint backend would be most probably private, we can store configs as key/value. Where key would be repo url (which is uniq enough) and value - the config. The assignment can be done from UI. So adding a new package at UI side would ping server side to check presence of the config and submit it if missing or changed
- Addressing both: implement sessions. On SCI start, it requests (or generates UUID) a session key, and then server can store the cache for some period of time. Including config and dependencies ! Does SCI keeps same abap session between object to have singletons ? This can be a bit tricky but totally implementable
Maybe both can be implemented, because the actually solve a bit different nuances. E.g. storing configs may be useful to define a global corporate config like descussed in #72
@larshp @g-back
Problem 1: practically, how much time in percent of the total time would be possible to save by not transferring the config file? just a guess?
repo URL: I also see a use-case for this repository, to not have the actual code being checked in git, just have it in the abap system, not really using abapGit for anything
Problem 1: practically, how much time in percent of the total time would be possible to save by not transferring the config file? just a guess?
This is a fair point. I think cannot be answered without measuring. First thoughts why this would be good: unified data shape, potential possibility to cache parsed config (though it is more towards sessions in the question 2). In my opinion sessions would give more impact, so I'd better target p2.
repo URL: I also see a use-case for this repository, to not have the actual code being checked in git, just have it in the abap system, not really using abapGit for anything
Hmm, local://our-secret-corporate-packge ? or local://our-secret-corporate-packge@hardwarekey+sysid
Seeing how much time takes deps generation I'm not sure if server caching will do any better :( I'm currently for pre-caching to a repo or otherwise but not during runtime