User:Lulurun

From OpenSimulator

Revision as of 23:01, 25 June 2008 by Lulurun (Talk | contribs)

Jump to: navigation, search

another project

openugai

proposal to subdivide the assets table

my proposal is to subdivide asset table into 2 tables: user_asset  : for user owned assets (mainly in inventory, appearance, attachment, ...)

 user_asset is used by UGAI servers

region_asset: for region owned assets, sounds, textures(including sun, moon, ...)

 region_asset is used by region servers

Advantages (major points first): 0. increase the dispersity of asset data, clarify the responsibility of each server Currently, all of the asset data is stored in assets table, managed by assetserver. This would cause some problems:

1. assets table keeps growing in a fast pace.
2. hard to determine which asset is belongs to inactive regions (when you want to "clean"

the assets table).

3. assetserver not only serves users' data but also regions' data, if something happened to

assetserver both of avatar and prims will become gray. To seperate asset tables can not only solve these problems, but also brings minor benefits such like: reduce the responsibility of assetserver, disperse the asset requests(especially for big grid service), lower the risk of losing data, ...

1. for Data Portability in virtual world For grid admin,

* you can concentrate on managing only user(not region owner) relavent information
  like "users, avatarappearance, inventory"
* it can reduce the vulnerability caused by foreign assets.
* no complains about "no texture on prims" any more.
* when a region leaves your grid, you don't have to worry about its assets becoming garbage.
	- on the other hand, this also good for region owners.

For when a user registers their region server with a grid,

* When you want to switch your sim to a new grid, "prims, primshapes, terrain, region_asset"
  are always tied-up together. the only thing you need to do is to edit UGAI servers URI in
  your OpenSim.ini

For standalone-mode user - probably creators,

* Avatars and buildings are saved separatly, export/import objects will become more simple.
  Or you can provide the DB file directly.

2. make grid-mode more flexible Here are some pictures, they are showing some pattern after the subdividing: http://openugai.sourceforge.net/?page=assets_subdividing

3. reduce the posibility of assetid conflict by reducing the scope of assetid.

To achieve this, regionserver should not fetch assets from only one assetserver, So, One of the main changes we have to do is in "GridAssetCient.cs": L50: protected override AssetBase GetAsset(AssetRequest req) to protected override AssetBase GetAsset(AssetRequest req, string asset_url)

L79: protected override AssetBase StoreAsset(AssetRequest req) to protected override AssetBase StoreAsset(AssetRequest req, string asset_url)


what do you think ?

General
About This Wiki