[ServiceCenter] - Optimise and reduce database storage of extensions and speed up extension deployment!

By Robert Chanphakeo on 27 Aug 2015
How it works now

When you publish an extension via Integration Studio, a manifest file, along with your source code and any reference libraries used to build the extension is  added to a zip package with the extension .xif.

If you reference a 50MB library, and you published your extension 10 times, you will use up using 500MB of database storage.

Now if you have other extensions that need to use this same reference library, again outsystems service center will makes duplicate copies of this file!

How it should work

When a reference library is used in an extension, outsystems is to detect this reference library, and create a checksum hash of this file.

When publishing an extension.....Outsystems will store the extension xif file in the extension binary table (just how it works right now, but this time exclude the reference library files). The reference library is to be stored in a seperate table along with the hash checksum.

When additional extensions are published and it uses a reference a class library that outsystems already has on file, outsystems will not store the reference library file in the database.

When a user downloads the extension file, outsystems is to repackage the .xif  file to include the reference library files from the database.

When a user deletes an extension and there is no consumer extension using the reference library, outsystems is to delete the reference library binary data.

Thats it!

Publishing an extension will now deploy much faster and storage space will be reduced (no more storing duplicate library binary files)

So that's why i keep running out of storage in my dev environments.

J.6 Sep

This could be somewhat improved!

Great idea.