[Opensim-dev] Feature Request: Smart Regions - Idle Region Timeouts and "On The Fly" loading/unloading of inactive idle regions

Diva Canto diva at metaverseink.com
Wed Jul 7 14:41:22 UTC 2010


There is a ton of interesting engineering challenges on the server side 
of these systems. We haven't even begun to scratch the surface. As such, 
it's completely unrealistic to expect things like what you describe to 
happen any time soon -- at least for interactive, shared, immersive 
spaces; non-interactive, non-shared, non-immersive (like Google Earth) 
it's another matter. It's also fairly unrealistic to expect those kinds 
of optimizations to happen spontaneously and for free. There needs to be 
a lot of money thrown in for those things to be prototyped and 
experimented with -- research money, for starters; that's the kind of 
thing that will keep a lot of graduate students busy for the next few years.

On 7/6/2010 6:54 PM, Mark Malewski wrote:
> OpenSim/RealXtend,
>
> Another thought is the issue of "scalability" with the current OpenSim 
> and/or realXtend Architecture.
>
> Running hundreds (or thousands) of IDLE regions require too many 
> system resources (RAM, CPU cycles, etc.)
>
> I believe that the basic server core (OpenSim) should eventually be 
> modified so that ALL regions should have a configurable "timeout" 
> option field (in the regions.ini file).
>
> http://opensimulator.org/wiki/Configuring_Regions
>
> That way an idle "region timeout" can be set (on a region per region 
> basis), and this would allow the OpenSim server to shut down idle 
> regions (based on the "idle timeout" configured in the regions.ini file).
>
> So if a region were completely empty for a particular number of 
> minutes (let's say a region were empty and idle for 5 minutes, then 
> the idle region could be shut down automatically after the set "idle 
> timeout" period for that particular region).
>
> This way idle (and empty) regions are not consuming valuable system 
> resources.
>
> Then as a user attempts to "teleport" to an idle (empty) region, the 
> server would simply start that idle region (on-the-fly) so that the 
> user could teleport into the idle region.
>
> It may create a little bit of a slight "pause" (as an idle region is 
> started) while teleporting, but you normally experience a pause 
> anyways while teleporting, so a few additional two or three seconds 
> shouldn't make that much of a difference when teleporting to an empty 
> or idle region.
>
> A second improvement upon this, would be a "smart idle regions" grid 
> option (configurable at the grid and/or region level).  The "smart 
> idle regions" grid option would take things one step further, and 
> would automatically allow the configuration option to bring nearby 
> idle regions out of "sleep" mode, and start them automatically (if an 
> avatar is within a certain number of meters from a nearby neighboring 
> region).
>
> For example this number could be configurable at the Grid and/or 
> region level to be anything from 1 meter, to 100 meters, or even 256 
> meters (thus automatically loading the idle region to the North, the 
> idle region to the South, the idle region to the East and the idle 
> region to the West). So that nearby regions could be loaded (as an 
> avatar gets close to the border of another nearby region).
>
> This way if avatars are using high speed vehicles (aircraft, boats, 
> trains, etc.) and they are getting close to a region crossing (to 
> another region that may be idle) that region could automatically be 
> started (if "smart regions" was enabled), thus making the region 
> crossing seamless (and in real-time).  So that flight simulators and 
> ship simulators could be developed (with large global high resolution 
> land region maps of the whole world) that could easily be stored on 
> any single server.  (The idle regions would simply load "on-demand" as 
> needed).
>
> This way OpenSim core could be used for Science, Educational, 
> Flight/Train/Ship simulation or even gaming purposes.
>
> So that way an OpenSim/realXtend server could technically store 
> thousands of regions all on a single server instance (possibly even 
> 50-60GB's of high resolution GIS/terrain/region maps of the whole world).
>
> So that things like high resolution "Global Scenery" could be created 
> (and downloaded) under a "Creative Commons" license for high 
> resolution scenery (stored in Mega regions) for OpenSim.
>
> http://www.global-scenery.org/
>
> I do have a military GIS (Imagery Analysis/Intelligence) background, 
> and don't mind working on things like basic high resolution 
> OpenSim/realXtend region content creation (empty regions based on high 
> resolution GIS/DTED data).  DTED data could be used to create 
> elevation maps, and high resolution imagery could be used for terrain 
> textures.
>
> I believe an OpenSim GIS project would be a very good "basis" for 
> other projects (educational, gaming, city planning, development, 
> architectural development and multi-person Flight/Train/Ship 
> simulation & training development) since terrain/region modules would 
> be available free for download.
>
> The reason "Smart Regions" (idle region timeouts) would be necessary, 
> is so things like modeling rural areas like "Yellowstone" National 
> Park could easily be possible on a small single server (or even a 
> small single workstation running a single OpenSim/osgrid/realXtend 
> server instance), since the majority of those regions would usually 
> remain idle/empty (and with the idle regions shutting down they would 
> consume NO CPU clock cycles or RAM, thus making "idle" regions 
> identical to idle web pages that take up nothing more than hard drive 
> space).
>
> Certain regions (like a lobby, main Plaza, or high-traffic regions) 
> would need to remain active (no idle timeout) and would simply have a 
> idle timeout value of "9999".  (Which would equate to requiring the 
> region to be completely idle and empty for a minimum of 9999 minutes, 
> or about 7 days) before going into a "sleep" or idle "shutdown" mode.
>
> I supposed a timeout value of "0000" could also be used for an 
> "infinite" time (no idle timeout or idle shut down) so that regions 
> that want to remain up (forever) with no idle timeout period or idle 
> shutdown could thus stay running all the time (consuming valuable RAM, 
> CPU and system resources).
>
> But as we begin to look at global region mapping and developing large 
> regions (especially from a GIS perspective) then we need to look at 
> the "flaws" in the current OpenSim server design architecture, and see 
> that it would simply not be possible to create something like a 
> virtual 3D world (on a 1:1 virtual/GIS scale) without having billions 
> of physical servers (and trillions of dollars for physical hardware, 
> let alone the costs of electricity and hardware just to even run a 
> single instance).  It seems to be a major flaw in the basic design 
> architecture to require the "always-on" concept of regions without 
> having a region "idle-timeout" feature.
>
> Wasting RAM and CPU clock cycles on empty/idle regions (without having 
> an "idle timeout" option would seem like a huge waste of energy, and 
> system resources, especially when those valuable system resources 
> could be better spent on active regions with physical avatars that 
> require the additional processing power and RAM that could be freed up 
> by shutting down any idle regions (after a specified "time out" period).
>
> Since the majority of the regions would remain empty and idle on a 
> server (similar to static web pages that are not being accessed or 
> viewed on a web server), it seems extremely foolish to waste such 
> valuable system resources (such as server CPU clock cycles and server 
> RAM, let alone the energy/power) wasted on idle regions that remain 
> empty and idle (but must be loaded as "always on").
>
> Having an "on-the-fly" system that will shut down idle regions (based 
> on their configurable regions.ini "time out" value in the regions.ini 
> file, and automatically load idle regions "on-the-fly" would be much 
> closer to the way the current web is designed, so that servers can 
> hold thousands (possibly even millions) of web pages that consume no 
> system resources (other than physical hard drive space) unless the web 
> pages are being viewed.
>
> By allowing regions to startup/shutdown dynamically (with a "region 
> timeout" feature) thus making servers able to hold infinite amounts of 
> idle regions/land (only limited by the amount of hard drive/disk 
> storage space, which could easily be expanded via RAID or SAN devices).
>
> System Administrators could put "heavy load" regions on separate 
> dedicated servers, while keeping other "idle load" regions all on the 
> same server (for regions that are generally idle and not visited very 
> frequently).
>
> As we evolve and slowly get into simulation systems, such as aircraft, 
> train or ship simulators I can see how having large numbers of "idle" 
> regions would be a requirement for realistic train/ship/aircraft 
> simulation and gaming (as well as GIS and global flight) and how it 
> simply would not even be possible to have millions of regions running 
> all on a single server (due to the current "architectural" problems 
> with OpenSim).
>
> It just wouldn't even be possible to even create a simple flight, 
> train or ship simulator using OpenSim (because OpenSim couldn't even 
> store the image/region scenery maps).
>
> Yet, a small simple "X-Plane" flight simulator can store high 
> resolution "global scenery" data for the WHOLE world on just 6 or 7 
> double layer DVD's (about 60+ GB of terrain data) all on a single 
> workstation.
>
> http://www.global-scenery.org/
>
> I don't mind starting a Global-Scenery package for OpenSim/realXtend 
> and I do think it would be extremely nice to offer the community high 
> resolution realistic regions (free of charge under a "creative 
> commons" license).
>
> The problem with even starting a large content creation project, is 
> that the current OpenSim architecture is unable to even use it.
>
> It would be a complete waste of time and effort to have realistic 
> global high resolution terrain regions available for OpenSim to use 
> for Flight/Train/Ship (as well as Education & Science) simulation but 
> the whole idea of a large scale GIS/terrain project for 
> OpenSim/realXtend seems somewhat pointless since the current 
> realXtend/OpenSim server architecture is not designed to currently 
> even use/store thousands (or even millions) of idle regions (and the 
> current server architecture of keeping ALL idle regions running is 
> "flawed" by architectural design).
>
> It would seem to make much more sense (from an engineering standpoint) 
> to have the option to shut any idle regions down, and only leave 
> active regions running (or at least give users/operators/grid owners 
> the ability to configure regions & a grid to allow for idle region 
> timeouts).  I believe this "region idle time out" time should be 
> configured in the regions.ini configuration file.  With an option of 
> "9999" for a 7 day idle timeout and a "0000" option to disable the 
> idle timeout for a particular region (for regions that don't ever want 
> to shut down due to an idle timeout).
>
> It would make sense to see OpenSim/realXtend support a "smart region" 
> type of system which servers would/could be configured to shut idle 
> regions down by default (configurable in the regions.ini file for each 
> region) and the server could load idle regions "On-The-Fly" freeing up 
> valuable system resources on a physical server.
>
> By implementing "smart regions" into the OpenSim core, a high 
> resolution global GIS/terrain project would seem like a viable project 
> to start (and I wouldn't mind starting such a project) especially for 
> future science/flight/ship/train simulation.  I could probably find 
> other universities (and sponsors) that would be willing to host mirror 
> copies of the empty raw .OAR global terrain region files.  So that 
> other developers, educators or users could freely download high 
> resolution realistic region terrains (for educational, gaming or 
> simulation purposes).
>
> If OpenSim was able to shut down idle regions on the fly, then it 
> could be used for flight simulation, terrain simulation, or even 
> realistic game simulation (could have large high resolution realistic 
> global terrain maps).
>
> I don't mind starting/doing free "creative commons" (attribution by) 
> based global GIS/terrain content creation work for the 
> OpenSim/realXtend community, but the current problem that I see is 
> that the current OpenSim architecture design would NEVER even be able 
> to support such a feature (since the current server architecture would 
> require thousands, or millions or possibly even billions of OpenSim 
> servers just to handle ONE single copy of "the world" terrain in 
> high-res region data.
>
> Thus making it completely impossible to ever "sail a ship" or "fly an 
> aircraft" around the world on a standalone OpenSim server.
>
> I believe the basics of good simulation programs starts with high 
> resolution image maps (and scenery data).  A flight simulation program 
> is fairly useless without realistic global imagery.
>
> Although the basic default high resolution terrain/region data would 
> probably only consume about 50-60 GB's of storage space (empty terrain 
> regions stored in "mega region" OAR format), it would still be 
> impossible to even store or use the terrain region data on a single 
> OpenSim server (since an OpenSim server would require that all the 
> regions be running at the same time, with no way to load/unload the 
> regions (on-the-fly) as they are accessed or needed.  We would need to 
> have an "idle time-out" feature and also a "load-on-demand" feature to 
> load regions and shut down idle regions based on a region "idle 
> time-out" system (and to load nearby regions, and load regions that 
> users attempt to teleport to).
>
> I apologize for sounding repetitive.
>
>
> _______________________________________________
> Opensim-dev mailing list
> Opensim-dev at lists.berlios.de
> https://lists.berlios.de/mailman/listinfo/opensim-dev
>    

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://opensimulator.org/pipermail/opensim-dev/attachments/20100707/cf12d32b/attachment-0001.html>


More information about the Opensim-dev mailing list