<br><font size=2 face="sans-serif">For an in-memory asset cache to be heavier
than a network communication with a remote is not amazing - it is incredible.</font>
<br>
<br><font size=2 face="sans-serif">The first fetch would be expected to
be marginally more expensive than a direct reference to the server, but
subsequent references should be orders of magnitude better, even if the
asset cache design were bad. For it to be worse, it would need to be fundamentally
broken.</font>
<br>
<br><font size=2 face="sans-serif">What quantitative information do we
have that demonstrates all of this?</font>
<br><font size=2 face="sans-serif">The only outcome must be to fix the
asset cache, if it is indeed broken.</font>
<br>
<br><font size=2 face="sans-serif">If a virtual world has more than one
client, then it must benefit from the cache, provided the cache is still
being used as the reference point for asset fetching. There has been a
lot of churn in the code of late, is it possible that some of these changes
have inadvertently disabled, or bypassed, the cache?</font>
<br>
<br><font size=2 face="sans-serif">Best regards<br>
Alan<br>
-------------------<br>
T.J. Watson Research Center, Hawthorne, NY<br>
1-914-784-7286<br>
alan_webb@us.ibm.com</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">From:</font>
<td><font size=1 face="sans-serif">diva@metaverseink.com</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">To:</font>
<td><font size=1 face="sans-serif">opensim-dev@lists.berlios.de</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Date:</font>
<td><font size=1 face="sans-serif">05/21/2009 02:43 PM</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Subject:</font>
<td><font size=1 face="sans-serif">Re: [Opensim-dev] Memory cache</font></table>
<br>
<hr noshade>
<br>
<br>
<br><tt><font size=2>The cache, as configured, has 32K asset slots, which
is a lot. So it <br>
takes a while until the cache releases some objects for the GC to <br>
collect. I think there's something else going on with that cache -- <br>
probably too many locking conflicts between threads, or something like
<br>
that. Whatever it is, it's much heavier than fetching the assets from <br>
the remote asset server, which is amazing. And another amazing thing is
<br>
that remote fetching of so many assets at the same time (whenever a <br>
client connects) has such good observable performance for the user.<br>
<br>
If the purpose of the cache is to go easy on the asset server (not <br>
necessarily improve the observable performance, which is already very <br>
good without the mem cache) it might make more sense to use a file <br>
system / local DB instead of a memory cache.<br>
<br>
Stefan Andersson wrote:<br>
> If the cache is releasing objects, I think we might well be seeing
<br>
> LOH fragmentation.<br>
> <br>
> </font></tt><a href="http://msdn.microsoft.com/en-us/magazine/cc534993.aspx"><tt><font size=2>http://msdn.microsoft.com/en-us/magazine/cc534993.aspx</font></tt></a><tt><font size=2><br>
>  <br>
> The solution would then be to break the binaries apart into byte cucks
<br>
> smaller than the LOH trshold.<br>
> <br>
> Best regards,<br>
> Stefan Andersson<br>
> <br>
> <br>
> <br>
>  <br>
>  > From: adam@deepthink.com.au<br>
>  > To: opensim-dev@lists.berlios.de<br>
>  > Date: Wed, 20 May 2009 17:21:51 -0400<br>
>  > Subject: Re: [Opensim-dev] Memory cache<br>
>  ><br>
>  > We are using an external caching library I believe, it
could be <br>
> sitting in there.<br>
>  ><br>
>  > Adam<br>
>  ><br>
>  > > -----Original Message-----<br>
>  > > From: opensim-dev-bounces@lists.berlios.de [</font></tt><a href="mailto:opensim-dev-"><tt><font size=2>mailto:opensim-dev-</font></tt></a><tt><font size=2><br>
>  > > bounces@lists.berlios.de] On Behalf Of Melanie<br>
>  > > Sent: Wednesday, 20 May 2009 1:56 PM<br>
>  > > To: opensim-dev@lists.berlios.de<br>
>  > > Subject: Re: [Opensim-dev] Memory cache<br>
>  > ><br>
>  > > The surprise really is that the cache would be a performance
loss<br>
>  > > instead of a performance gain. What is there that
makes it so slow?<br>
>  > ><br>
>  > > Melanie<br>
>  > ><br>
>  > > Frisby, Adam wrote:<br>
>  > > > As chief engineer aboard the USS OSgrid, I might
want to recommend<br>
>  > > against this.<br>
>  > > ><br>
>  > > > Not having the sims cache assets will mean that
every asset request<br>
>  > > will hit the core asset server which in turn will
result in higher<br>
>  > > bandwidth requirements for it in the long run. It
doesn't appear to<br>
>  > > have made a huge impact on our bandwidth charts for
this week yet -<br>
>  > > however I wouldn't be surprised if it did if everyone
did this.<br>
>  > > ><br>
>  > > > Adam<br>
>  > > ><br>
>  > > > From: opensim-dev-bounces@lists.berlios.de [</font></tt><a href="mailto:opensim-dev-"><tt><font size=2>mailto:opensim-dev-</font></tt></a><tt><font size=2><br>
>  > > bounces@lists.berlios.de] On Behalf Of Nebadon Izumi<br>
>  > > > Sent: Wednesday, 20 May 2009 10:19 AM<br>
>  > > > To: diva@metaverseink.com; opensim-dev@lists.berlios.de<br>
>  > > > Subject: Re: [Opensim-dev] Memory cache<br>
>  > > ><br>
>  > > > Yay for mistakes that end in gains!!! of course
if anyone asks i<br>
>  > > planned this ;P anyway i thought people would like
to see my ini<br>
>  > > changes.. this is what lead to the discovery:<br>
>  > > ><br>
>  > > > [OpenSim.ini]<br>
>  > > > ; The following is the configuration section
for the new style<br>
>  > > grid servers<br>
>  > > > ; If you don't know what this is, don't enable
it. It will eat<br>
>  > > your data,<br>
>  > > > ; format your hard drive and make all meat in
your fridge spoil.<br>
>  > > > ; You have been warned.<br>
>  > > > ; Some of this is starting to work!<br>
>  > > > [Modules]<br>
>  > > > ; Choose one<br>
>  > > > ;AssetServices = "LocalAssetServicesConnector"<br>
>  > > > AssetServices = "RemoteAssetServicesConnector"<br>
>  > > > ;AssetServices = "HGAssetBroker"<br>
>  > > ><br>
>  > > > ; If you don't want asset caching in the regions,
comment this<br>
>  > > > AssetCaching = "CoreAssetCache" ;<<<---***
SEE ERROR HERE ***---<br>
>  > > ->>><br>
>  > > ><br>
>  > > > ; Choose one<br>
>  > > > ;UserServices = "LocalUserServicesConnector"<br>
>  > > > UserServices = "RemoteUserServicesConnector"<br>
>  > > ><br>
>  > > ><br>
>  > > > [AssetService]<br>
>  > > > ; Parameters for local assets, formerly known
as "standalone"<br>
>  > > > LocalServiceModule =<br>
>  > > "OpenSim.Services.AssetService.dll:AssetService"<br>
>  > > > StorageProvider = "OpenSim.Data.SQLite.dll"<br>
>  > > > ;StorageProvider = "OpenSim.Data.MySQL.dll"<br>
>  > > > ;ConnectionString = "Data Source=localhost;Database=opensim;User<br>
>  > > ID=opensim;Password=opensim;"<br>
>  > > > DefaultAssetLoader =<br>
>  > > "OpenSim.Framework.AssetLoader.Filesystem.dll"<br>
>  > > > AssetLoaderArgs = "assets/AssetSets.xml"<br>
>  > > ><br>
>  > > > ; Parameters for remote assets, formerly known
as "grid"<br>
>  > > > AssetServerURI = "</font></tt><a href=http://assets.osgrid.org:8003/><tt><font size=2>http://assets.osgrid.org:8003/</font></tt></a><tt><font size=2>"<br>
>  > > ><br>
>  > > > ; Paremeters for the Hypergrid connector<br>
>  > > ><br>
>  > > > ;; Parameters for the HG Broker<br>
>  > > > ; Use this one if you have a standalone grid<br>
>  > > > ;LocalGridAssetService =<br>
>  > > "OpenSim.Services.AssetService.dll:AssetService"<br>
>  > > > ; Use this one if this sim is connected to a
grid-wide asset<br>
>  > > server<br>
>  > > > ;LocalGridAssetService =<br>
>  > > "OpenSim.Services.Connectors.dll:AssetServiceConnector"<br>
>  > > > ;HypergridAssetService =<br>
>  > > "OpenSim.Services.AssetService.dll:HGAssetService"<br>
>  > > ><br>
>  > > > [AssetCache]<br>
>  > > > ; Number of buckets for assets<br>
>  > > > CacheBuckets = 32768<br>
>  > > ><br>
>  > > > [UserService]<br>
>  > > > ;LocalServiceModule =<br>
>  > > "OpenSim.Services.UserService.dll:UserService"<br>
>  > > ><br>
>  > > > [/OpenSim.ini]<br>
>  > > ><br>
>  > > > Please test this out and see if you see gains
too and let us know.<br>
>  > > ><br>
>  > > > Neb<br>
>  > > ><br>
>  > > ><br>
>  > > ><br>
>  > > > ---------------------------------------------------------------------<br>
>  > > ---<br>
>  > > ><br>
>  > > > _______________________________________________<br>
>  > > > Opensim-dev mailing list<br>
>  > > > Opensim-dev@lists.berlios.de<br>
>  > > > </font></tt><a href="https://lists.berlios.de/mailman/listinfo/opensim-dev"><tt><font size=2>https://lists.berlios.de/mailman/listinfo/opensim-dev</font></tt></a><tt><font size=2><br>
>  > > _______________________________________________<br>
>  > > Opensim-dev mailing list<br>
>  > > Opensim-dev@lists.berlios.de<br>
>  > > </font></tt><a href="https://lists.berlios.de/mailman/listinfo/opensim-dev"><tt><font size=2>https://lists.berlios.de/mailman/listinfo/opensim-dev</font></tt></a><tt><font size=2><br>
>  > _______________________________________________<br>
>  > Opensim-dev mailing list<br>
>  > Opensim-dev@lists.berlios.de<br>
>  > </font></tt><a href="https://lists.berlios.de/mailman/listinfo/opensim-dev"><tt><font size=2>https://lists.berlios.de/mailman/listinfo/opensim-dev</font></tt></a><tt><font size=2><br>
> <br>
> <br>
> ------------------------------------------------------------------------<br>
> <br>
> _______________________________________________<br>
> Opensim-dev mailing list<br>
> Opensim-dev@lists.berlios.de<br>
> </font></tt><a href="https://lists.berlios.de/mailman/listinfo/opensim-dev"><tt><font size=2>https://lists.berlios.de/mailman/listinfo/opensim-dev</font></tt></a><tt><font size=2><br>
_______________________________________________<br>
Opensim-dev mailing list<br>
Opensim-dev@lists.berlios.de<br>
</font></tt><a href="https://lists.berlios.de/mailman/listinfo/opensim-dev"><tt><font size=2>https://lists.berlios.de/mailman/listinfo/opensim-dev</font></tt></a><tt><font size=2><br>
</font></tt>
<br>
<br>