Jump to content

OpenSimulator Internals/AssetService

From Open Simulator Technical Help

OpenSimulator Internals/AssetService

[edit]

Overview

[edit]

AssetService stores and serves asset blobs -- textures, meshes, scripts, notecards, and other content. Intentionally dumb -- no referential awareness. It does not know or care what references an asset.

This service is stateless and can be load-balanced across multiple ROBUST instances.


Storage Backends

[edit]
Backend Notes
Database blob (default) Asset data stored as LONGBLOB in the assets table. Simple, works out of the box.
FSAssets Asset data stored on the filesystem. Recommended for installations above 50GB. More efficient for large asset stores.

Asset Properties

[edit]

Assets are immutable by design -- no updates, only inserts. The database only grows. No built-in garbage collection exists.

When an object is rezzed on a foreign HyperGrid grid, assets are copied to that grid's asset table -- same UUID, separate copy, no link between them, no cleanup on either end.

Asset type classification (computed, not stored)

[edit]
  • IsBinaryAsset: Animation, Gesture, Simstate, Unknown, Object, Sound, SoundWAV, Texture, TextureTGA, Folder, ImageJPEG, ImageTGA, Mesh, LSLBytecode
  • IsTextualAsset: everything else
  • ContainsReferences: textual assets excluding Notecard, CallingCard, LSLText, Landmark

Database

[edit]

See assets table for the full database schema.


See Also

[edit]