SL Project updates: 37/1: inventory reliability improvements

Mysts of Eyr; Inara Pey, September 2015, on FlickrMysts of Eyr September 2015 – blog post

At the TPV Developer meeting on Friday, September 11th, the Lab provided further information about the ongoing work to improve inventory handling and management in Second Life.

As has been reported through these pages, the Lab has been tackling a wide range of issues related to inventory, inventory management, inventory losses, etc., over the last several months. The updates given at the TPV Developer meeting were to provide information and news on both the work to help fix issues around large “flat” inventories, and on new and upcoming work in rationalising inventory related code within the viewer, with Izzy and Aura Linden providing the updates.

The video of the meeting can be seen here, and time stamps are given below to the relevant points in the video where the items are discussed.

“Flat ” Inventories

[10:15] This is something that has been mentioned through a number of project updates in these pages. However, in summary: if you have a large “flat” inventory structure with tens of thousands of items contained in single folders at a time, rather than being split between multiple sub-folders, you can experience significant issues in logging-in to Second Life, up to and including being completely unable to log-in at all.

Earlier in the year, the Lab developed an inventory transform tool which, when run, can take the contents of such large folders and split them into smaller, easier-to-load sub-folders. This tool has been undergoing testing for some time, but has now been issued to the Lab’s support teams. So, those encountering log-in issues and know they have large, relatively “flat” inventory structures can raise a support request (Premium or Basic) and have the tool run against their inventory, thus hopefully fixing  matters for them.

Inventory Code Improvements

Task Paths

[12:50] Currently, the viewer has multiple paths and mechanisms by which inventory tasks can be undertaken / completed. Aura is therefore working through the viewer code to try to rationalise how inventory is handled, ensure that older paths / mechanisms are properly deprecated / removed and replaced by newer and more robust mechanisms.

[14:20] The first set of changes Aura is working on is to remove from the viewer all of the old UDP inventory messaging paths which have already been replaced by more robust mechanisms (and in some cases already had the server-side support for them removed), but which have until now remained a part of the viewer’s code.

These changes should be appearing in a project viewer for testing by TPVs in the next month or so. This is to allow them to identify possible impacts on any dedicated inventory handling mechanisms they may use (e.g. RLV / RLV/a) which may also use the older UDP messaging paths, and address any updates they may need to made as a result.

Once this viewer reaches release status, the Lab will seek to remove any server-side support for legacy UDP for inventory operations from the simulator code. Again, this will be done in consultation with TPVs, with testing regions available on Aditi beforehand, so the Lab can again be warned if they are triggering potential problems which may need to be thought about / addressed.

Code Refactoring

[19:35] The second element in the work is a refactoring of the viewer inventory files. This work will initially rationalise inventory functions within the viewer so that they are more closely coupled with their actual purpose, rather than being more widely scattered through the viewer code, and will not involve any actual code changes.

However, a further part of the work will involve code changes, with the overall aim being to make the code a lot more readable, easier to test and maintain and understand.

Server-side Inventory Rules Enforcement

[23:32] Additionally, once the above work has been carried out, new checks will be added server-side to prevent actions which are known to cause inventory problems from happening.

For example, there have been issues where people have found themselves with more than one Current Outfit folder or with multiple Trash folders, both of which can result in complications when using the viewer. The simulator-side rules, when put into place, will be designed to prevent these kinds of instances occurring.

Time Frames

As noted, the first phase of Aura’s work – the initial code deprecation work – will be appearing in a project viewer in the next month or so, and the work will progress from there in the stages, thus:

  • Remove the deprecated inventory message paths from the viewer
  • Remove any remaining simulator support for deprecated inventory messaging support
  • Rationalise the inventory functions in the viewer
  • Refactor the viewer’s inventory code in the interests of stability, maintenance, testing and update
  • Add simulator checks to prevent folder duplications, etc

How long it will take to implement each phase isn’t currently clear, and will to a degree depend on feedback about issues discovered by TPVs, as well as the results of continued testing by the Lab.