Difference between revisions of "Inventory OS"
(Added Kelly Linden's explanation of inventory storage from SLDev mailing list on 20 May 2008) |
|||
(5 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{OSWikiFeatureNav}} | {{OSWikiFeatureNav}} | ||
There are three systems involved here that are closely tied: | An overview per [[User:Kelly Linden|Kelly Linden]] on sldev: | ||
{| cellpadding="10" cellspacing="10" border=0 | |||
|style="background-color:#eeeeee;"| There are three systems involved here that are closely tied: | |||
* (DB) Resident Inventory lives in a database. We currently have lots of these 'inventory' or 'user' databases, each one hosting the entire inventory for a subset of our users. ex. UserA has all their inventory on db1, UserB has all their inventory on db6. The database entries are the shortcuts / links to actual assets. | * (DB) Resident Inventory lives in a database. We currently have lots of these 'inventory' or 'user' databases, each one hosting the entire inventory for a subset of our users. ex. UserA has all their inventory on db1, UserB has all their inventory on db6. The database entries are the shortcuts / links to actual assets. | ||
Line 11: | Line 13: | ||
So, resident inventory lives in the (DB) and each item references one or more assets in (ASC). Object inventory lives in (SIM) and each item references one or more assets in (ASC). Items actually in world don't really reference any asset in (ASC) or anything in (DB). Keeping items inside the contents of objects in world and *not* in your inventory reduces the load of (DB) and may help keep your inventory loading faster, depending on how much you do it. It doesn't have any effect on (ASC) load though. | So, resident inventory lives in the (DB) and each item references one or more assets in (ASC). Object inventory lives in (SIM) and each item references one or more assets in (ASC). Items actually in world don't really reference any asset in (ASC) or anything in (DB). Keeping items inside the contents of objects in world and *not* in your inventory reduces the load of (DB) and may help keep your inventory loading faster, depending on how much you do it. It doesn't have any effect on (ASC) load though. | ||
Attachments are the only case of an item in world that is also in your inventory, and the only case of an item in world that isn't in the sim state saves. That makes them doubly unique, and doubly fun. They also cross region boundaries far more than any other object, which has significant implications{{Footnote|When an object moves from one region to another, the region must serialize the object and the contained scripts, including each script's state and event queues in addition to setting up the rerouting for {{LSLGC|Email}}, {{LSLGC|XML-RPC}} and {{LSLGC|HTTP}}.}}. | |||
|} | |||
=== Feature Design Document === | === Feature Design Document === | ||
Documents needed: | Documents needed: | ||
Line 34: | Line 38: | ||
[http://secondlife.com/knowledgebase/article.php?id=264 Inventory Search Test] | [http://secondlife.com/knowledgebase/article.php?id=264 Inventory Search Test] | ||
* | * Coalesced object returns? | ||
=== Discussion for future improvements === | === Discussion for future improvements === | ||
Line 57: | Line 61: | ||
=== User Guides === | === User Guides === | ||
[http://lslwiki. | [http://lslwiki.net/lslwiki/wakka.php?wakka=inventory Inventory on LSLwiki.net] | ||
=== Explanations === | |||
{{Footnotes}} |
Latest revision as of 13:06, 7 August 2020
An overview per Kelly Linden on sldev:
There are three systems involved here that are closely tied:
So, resident inventory lives in the (DB) and each item references one or more assets in (ASC). Object inventory lives in (SIM) and each item references one or more assets in (ASC). Items actually in world don't really reference any asset in (ASC) or anything in (DB). Keeping items inside the contents of objects in world and *not* in your inventory reduces the load of (DB) and may help keep your inventory loading faster, depending on how much you do it. It doesn't have any effect on (ASC) load though. Attachments are the only case of an item in world that is also in your inventory, and the only case of an item in world that isn't in the sim state saves. That makes them doubly unique, and doubly fun. They also cross region boundaries far more than any other object, which has significant implications[1]. |
Feature Design Document
Documents needed:
- Coalesed object returns.
- Declined inventory offers should be routed to your Trash.
Functional Spec
Test scripts
Container Permissions internal test
- Coalesced object returns?
Discussion for future improvements
Relationship to other features
List of features that need to be tested when this feature changes, and why.
Notecards Test - Notecards can hold inventory items(not calling cards) if their next owner permissions are fully permissive.
LLGiveInventory Test - Object Contents is inventory.
Group Permissions Test - Group Object Contents.
Inventory Permissions Test - Make sure the permissions are correct.
Item Permissions Test - Make sure the permissions are correct.
Next Owner Permissions Test - Make sure the permissions are correct.
Scripted Permissions Test - A different kind of permissions, but applies to attachments. (Scripted permissions really needs a name change to distinguish them from modify, copy, transfer permissions)
User Guides