Re: [Opensim-dev] Optimize pushing assets to other grids

2014-04-02 Thread Oren Hurvitz
I've added AssetsExist to master. It's implemented using REST, at
/get_assets_exist.

Regarding getting server capabilities: later I realized that Hypergrid
already has the helo command, which serves this purpose. Currently it
returns only one type of property: whether the server is based on Robust or
Simian. But it would be trivial to allow it to return other properties and
preferences as well.



--
View this message in context: 
http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579142.html
Sent from the opensim-dev mailing list archive at Nabble.com.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-04-02 Thread Diva Canto

Yep, that's exactly its purpose. Feel free to add more info in the response.

On 4/2/2014 12:11 AM, Oren Hurvitz wrote:

I've added AssetsExist to master. It's implemented using REST, at
/get_assets_exist.

Regarding getting server capabilities: later I realized that Hypergrid
already has the helo command, which serves this purpose. Currently it
returns only one type of property: whether the server is based on Robust or
Simian. But it would be trivial to allow it to return other properties and
preferences as well.



--
View this message in context: 
http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579142.html
Sent from the opensim-dev mailing list archive at Nabble.com.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev




___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-04-02 Thread Oren Hurvitz
I already implemented SimianAssetServiceConnector.AssetsExist(). But since
I didn't change Simian itself, it works by simply calling GetMetadata() to
check if each asset exists. You can either leave this as-is, or implement
an explicit AssetsExist operation that checks all the assets at once, like
I've done in Robust.


On Wed, Apr 2, 2014 at 6:38 PM, Mic Bowman [via opensim-dev] 
ml-node+s2196679n7579156...@n2.nabble.com wrote:

 How is this hooked up in the simulator? I'll need to update the simian
 connectors.


 On Wed, Apr 2, 2014 at 12:11 AM, Oren Hurvitz [hidden 
 email]http://user/SendEmail.jtp?type=nodenode=7579156i=0
  wrote:

 I've added AssetsExist to master. It's implemented using REST, at
 /get_assets_exist.

 Regarding getting server capabilities: later I realized that Hypergrid
 already has the helo command, which serves this purpose. Currently it
 returns only one type of property: whether the server is based on Robust
 or
 Simian. But it would be trivial to allow it to return other properties and
 preferences as well.



 --
 View this message in context:
 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579142.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 [hidden email] http://user/SendEmail.jtp?type=nodenode=7579156i=1
 https://lists.berlios.de/mailman/listinfo/opensim-dev



 ___
 Opensim-dev mailing list
 [hidden email] http://user/SendEmail.jtp?type=nodenode=7579156i=2
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 --
  If you reply to this email, your message will be added to the discussion
 below:

 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579156.html
  To unsubscribe from Optimize pushing assets to other grids, click 
 herehttp://opensim-dev.2196679.n2.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_codenode=7579093code=b3JlbmhAa2l0ZWx5LmNvbXw3NTc5MDkzfDIwMTU3MTI0NTc=
 .
 NAMLhttp://opensim-dev.2196679.n2.nabble.com/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml




-- 
Oren Hurvitz
VP RD
Kitely Ltd.

Email: or...@kitely.com i...@kitely.com




--
View this message in context: 
http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579157.html
Sent from the opensim-dev mailing list archive at Nabble.com.___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

Re: [Opensim-dev] Optimize pushing assets to other grids

2014-04-02 Thread Michael Emory Cerquoni
excuse my ignorance here but are these changes directly to the asset server
itself or are these simulator level changes?


On Wed, Apr 2, 2014 at 11:46 AM, Oren Hurvitz or...@kitely.com wrote:

 I already implemented SimianAssetServiceConnector.AssetsExist(). But since
 I didn't change Simian itself, it works by simply calling GetMetadata() to
 check if each asset exists. You can either leave this as-is, or implement
 an explicit AssetsExist operation that checks all the assets at once, like
 I've done in Robust.


 On Wed, Apr 2, 2014 at 6:38 PM, Mic Bowman [via opensim-dev] [hidden
 email] http://user/SendEmail.jtp?type=nodenode=7579157i=0 wrote:

 How is this hooked up in the simulator? I'll need to update the simian
 connectors.


 On Wed, Apr 2, 2014 at 12:11 AM, Oren Hurvitz [hidden 
 email]http://user/SendEmail.jtp?type=nodenode=7579156i=0
  wrote:

 I've added AssetsExist to master. It's implemented using REST, at
 /get_assets_exist.

 Regarding getting server capabilities: later I realized that Hypergrid
 already has the helo command, which serves this purpose. Currently it
 returns only one type of property: whether the server is based on Robust
 or
 Simian. But it would be trivial to allow it to return other properties
 and
 preferences as well.



 --
 View this message in context:
 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579142.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 [hidden email] http://user/SendEmail.jtp?type=nodenode=7579156i=1
 https://lists.berlios.de/mailman/listinfo/opensim-dev



 ___
 Opensim-dev mailing list
 [hidden email] http://user/SendEmail.jtp?type=nodenode=7579156i=2
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 --
  If you reply to this email, your message will be added to the
 discussion below:

 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579156.html
  To unsubscribe from Optimize pushing assets to other grids, click here.
 NAMLhttp://opensim-dev.2196679.n2.nabble.com/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml




 --
 Oren Hurvitz
 VP RD
 Kitely Ltd.

 Email: [hidden 
 email]http://user/SendEmail.jtp?type=nodenode=7579157i=1[hidden
 email] http://user/SendEmail.jtp?type=nodenode=7579157i=2

 --
 View this message in context: Re: Optimize pushing assets to other 
 gridshttp://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579157.html
 Sent from the opensim-dev mailing list 
 archivehttp://opensim-dev.2196679.n2.nabble.com/at Nabble.com.

 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev




-- 
Michael Emory Cerquoni
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

Re: [Opensim-dev] Optimize pushing assets to other grids

2014-04-02 Thread Mic Bowman
Thanks. I'll take a look at what you've got. It's pretty easy to add the
call to the Simian services. PHP you know. I don't have to screw around
with http path prefix matching or anything... :-)

--mic



On Wed, Apr 2, 2014 at 8:46 AM, Oren Hurvitz or...@kitely.com wrote:

 I already implemented SimianAssetServiceConnector.AssetsExist(). But since
 I didn't change Simian itself, it works by simply calling GetMetadata() to
 check if each asset exists. You can either leave this as-is, or implement
 an explicit AssetsExist operation that checks all the assets at once, like
 I've done in Robust.


 On Wed, Apr 2, 2014 at 6:38 PM, Mic Bowman [via opensim-dev] [hidden
 email] http://user/SendEmail.jtp?type=nodenode=7579157i=0 wrote:

 How is this hooked up in the simulator? I'll need to update the simian
 connectors.


 On Wed, Apr 2, 2014 at 12:11 AM, Oren Hurvitz [hidden 
 email]http://user/SendEmail.jtp?type=nodenode=7579156i=0
  wrote:

 I've added AssetsExist to master. It's implemented using REST, at
 /get_assets_exist.

 Regarding getting server capabilities: later I realized that Hypergrid
 already has the helo command, which serves this purpose. Currently it
 returns only one type of property: whether the server is based on Robust
 or
 Simian. But it would be trivial to allow it to return other properties
 and
 preferences as well.



 --
 View this message in context:
 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579142.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 [hidden email] http://user/SendEmail.jtp?type=nodenode=7579156i=1
 https://lists.berlios.de/mailman/listinfo/opensim-dev



 ___
 Opensim-dev mailing list
 [hidden email] http://user/SendEmail.jtp?type=nodenode=7579156i=2
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 --
  If you reply to this email, your message will be added to the
 discussion below:

 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579156.html
  To unsubscribe from Optimize pushing assets to other grids, click here.
 NAMLhttp://opensim-dev.2196679.n2.nabble.com/template/NamlServlet.jtp?macro=macro_viewerid=instant_html%21nabble%3Aemail.namlbase=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespacebreadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml




 --
 Oren Hurvitz
 VP RD
 Kitely Ltd.

 Email: [hidden 
 email]http://user/SendEmail.jtp?type=nodenode=7579157i=1[hidden
 email] http://user/SendEmail.jtp?type=nodenode=7579157i=2

 --
 View this message in context: Re: Optimize pushing assets to other 
 gridshttp://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579157.html
 Sent from the opensim-dev mailing list 
 archivehttp://opensim-dev.2196679.n2.nabble.com/at Nabble.com.

 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

Re: [Opensim-dev] Optimize pushing assets to other grids

2014-04-02 Thread Oren Hurvitz
The actual work is done in the assets server, and there's code in the
simulators to call this API.


On Wed, Apr 2, 2014 at 10:28 PM, Nebadon Izumi [via opensim-dev] 
ml-node+s2196679n7579160...@n2.nabble.com wrote:

 excuse my ignorance here but are these changes directly to the asset
 server itself or are these simulator level changes?





--
View this message in context: 
http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579162.html
Sent from the opensim-dev mailing list archive at Nabble.com.___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

Re: [Opensim-dev] Optimize pushing assets to other grids

2014-04-02 Thread Diva Canto
I'm guessing OSGrid's asset server won't be able to reply to this new 
service, unless you change it. I'm also guessing that's ok -- it will 
behave as it behaves currently, the assets are copied over again.


On 4/2/2014 1:43 PM, Oren Hurvitz wrote:
The actual work is done in the assets server, and there's code in the 
simulators to call this API.



On Wed, Apr 2, 2014 at 10:28 PM, Nebadon Izumi [via opensim-dev] 
[hidden email] /user/SendEmail.jtp?type=nodenode=7579162i=0 wrote:


excuse my ignorance here but are these changes directly to the
asset server itself or are these simulator level changes?



View this message in context: Re: Optimize pushing assets to other 
grids 
http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579162.html
Sent from the opensim-dev mailing list archive 
http://opensim-dev.2196679.n2.nabble.com/ at Nabble.com.



___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Oren Hurvitz
I have implemented this method. I found that the Assets Service already had a
method to check for assets' existence, so I just had to extend it to check
multiple asset ID's at once, and make it available remotely. But now I'm not
sure what to do about backwards compatibility.

I'm sending the request using POST, because sending a lot of data is better
done using POST than GET. But as it turns out, AssetServerPostHandler
doesn't handle unknown requests well. First, it assumes that all requests
will contain an AssetBase, but this request doesn't. Second, its try/catch
clause doesn't catch the exception that is generated, because it's an
InvalidOperationException and not an XmlException (which is what's currently
caught). The unfortunate result is that the server doesn't send back *any*
reply, which means that the caller must wait for the full timeout (100
seconds!) before giving up. [BTW, I'm going to investigate this further
because it may explain the 100-second timeouts users occasionally
experience.]

I've already fixed this problem in the current patch (not yet submitted), so
that in the future AssetServerPostHandler will return an error code
immediately for unknown requests (HTTP 400). But that won't help when
connecting to old grids.

I see two ways to fix this:

1. Send the request using GET instead of POST. AssetServerGetHandler handles
unknown requests a little better than POST: it tries to find the parameter
as an Asset ID, but if not found then it just returns HTTP 404 immediately.

2. Add a way to query the server for its capabilities, to find out if it
supports this request.

I prefer approach #2 because it can be used in the future for many other new
features. How about adding a method to IGatekeeperService, something like
this:

Dictionarystring,string GetServerCapabilities();

In this example, the capability will be: SupportsAssetsExist=true




--
View this message in context: 
http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579100.html
Sent from the opensim-dev mailing list archive at Nabble.com.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Melanie
Hi Oren,

the correct way is to create an additional post handler that is reachable at a 
different URL, e,g, /AssetQuery/

Servers that don't implement it would return 404. Don't try to shoehorn this 
functionality into the existing post handler.

Melanie

On 31 Mar 2014, at 13:55, Oren Hurvitz or...@kitely.com wrote:

I have implemented this method. I found that the Assets Service already had a
method to check for assets' existence, so I just had to extend it to check
multiple asset ID's at once, and make it available remotely. But now I'm not
sure what to do about backwards compatibility.

I'm sending the request using POST, because sending a lot of data is better
done using POST than GET. But as it turns out, AssetServerPostHandler
doesn't handle unknown requests well. First, it assumes that all requests
will contain an AssetBase, but this request doesn't. Second, its try/catch
clause doesn't catch the exception that is generated, because it's an
InvalidOperationException and not an XmlException (which is what's currently
caught). The unfortunate result is that the server doesn't send back *any*
reply, which means that the caller must wait for the full timeout (100
seconds!) before giving up. [BTW, I'm going to investigate this further
because it may explain the 100-second timeouts users occasionally
experience.]

I've already fixed this problem in the current patch (not yet submitted), so
that in the future AssetServerPostHandler will return an error code
immediately for unknown requests (HTTP 400). But that won't help when
connecting to old grids.

I see two ways to fix this:

1. Send the request using GET instead of POST. AssetServerGetHandler handles
unknown requests a little better than POST: it tries to find the parameter
as an Asset ID, but if not found then it just returns HTTP 404 immediately.

2. Add a way to query the server for its capabilities, to find out if it
supports this request.

I prefer approach #2 because it can be used in the future for many other new
features. How about adding a method to IGatekeeperService, something like
this:

Dictionarystring,string GetServerCapabilities();

In this example, the capability will be: SupportsAssetsExist=true




--
View this message in context: 
http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579100.html
Sent from the opensim-dev mailing list archive at Nabble.com.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Jim Williams
+1 Melanie!

Functions are way too overloaded in OpenSim in general.


On Mon, Mar 31, 2014 at 8:50 AM, Melanie mela...@t-data.com wrote:

 Hi Oren,

 the correct way is to create an additional post handler that is reachable
 at a different URL, e,g, /AssetQuery/

 Servers that don't implement it would return 404. Don't try to shoehorn
 this functionality into the existing post handler.

 Melanie

 On 31 Mar 2014, at 13:55, Oren Hurvitz or...@kitely.com wrote:

 I have implemented this method. I found that the Assets Service already
 had a
 method to check for assets' existence, so I just had to extend it to check
 multiple asset ID's at once, and make it available remotely. But now I'm
 not
 sure what to do about backwards compatibility.

 I'm sending the request using POST, because sending a lot of data is better
 done using POST than GET. But as it turns out, AssetServerPostHandler
 doesn't handle unknown requests well. First, it assumes that all requests
 will contain an AssetBase, but this request doesn't. Second, its try/catch
 clause doesn't catch the exception that is generated, because it's an
 InvalidOperationException and not an XmlException (which is what's
 currently
 caught). The unfortunate result is that the server doesn't send back *any*
 reply, which means that the caller must wait for the full timeout (100
 seconds!) before giving up. [BTW, I'm going to investigate this further
 because it may explain the 100-second timeouts users occasionally
 experience.]

 I've already fixed this problem in the current patch (not yet submitted),
 so
 that in the future AssetServerPostHandler will return an error code
 immediately for unknown requests (HTTP 400). But that won't help when
 connecting to old grids.

 I see two ways to fix this:

 1. Send the request using GET instead of POST. AssetServerGetHandler
 handles
 unknown requests a little better than POST: it tries to find the parameter
 as an Asset ID, but if not found then it just returns HTTP 404 immediately.

 2. Add a way to query the server for its capabilities, to find out if it
 supports this request.

 I prefer approach #2 because it can be used in the future for many other
 new
 features. How about adding a method to IGatekeeperService, something like
 this:

 Dictionarystring,string GetServerCapabilities();

 In this example, the capability will be: SupportsAssetsExist=true




 --
 View this message in context:
 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579100.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev


 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev




-- 
No essence.  No permanence.  No perfection.  Only action.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Oren Hurvitz
As this is an assets-service request, it belongs in the assets-service
handlers. They already handle many different requests: data, metadata,
data+metadata, store, update.

Creating a new handler would be easier for me at this moment, but perhaps
not best for OpenSim in the longer term. First, because this request is
related to the other asset requests, it makes sense to handle them
together. Second, adding a new handler for every new feature isn't good
because it creates a lot of duplicate code. Third, being able to determine
a server's capabilities is useful.

There are many places in the codebase where new features were added using
copy-paste-and-modify. This makes it harder to add new features, and
especially hard to refactor major systems because so many places need to be
changed in parallel. I would like to get away from that.

Oren




On Mon, Mar 31, 2014 at 3:51 PM, Melanie-2 [via opensim-dev] 
ml-node+s2196679n7579101...@n2.nabble.com wrote:

 Hi Oren,

 the correct way is to create an additional post handler that is reachable
 at a different URL, e,g, /AssetQuery/

 Servers that don't implement it would return 404. Don't try to shoehorn
 this functionality into the existing post handler.

 Melanie

 On 31 Mar 2014, at 13:55, Oren Hurvitz [hidden 
 email]http://user/SendEmail.jtp?type=nodenode=7579101i=0
 wrote:

 I have implemented this method. I found that the Assets Service already
 had a
 method to check for assets' existence, so I just had to extend it to check
 multiple asset ID's at once, and make it available remotely. But now I'm
 not
 sure what to do about backwards compatibility.

 I'm sending the request using POST, because sending a lot of data is
 better
 done using POST than GET. But as it turns out, AssetServerPostHandler
 doesn't handle unknown requests well. First, it assumes that all requests
 will contain an AssetBase, but this request doesn't. Second, its try/catch
 clause doesn't catch the exception that is generated, because it's an
 InvalidOperationException and not an XmlException (which is what's
 currently
 caught). The unfortunate result is that the server doesn't send back *any*
 reply, which means that the caller must wait for the full timeout (100
 seconds!) before giving up. [BTW, I'm going to investigate this further
 because it may explain the 100-second timeouts users occasionally
 experience.]

 I've already fixed this problem in the current patch (not yet submitted),
 so
 that in the future AssetServerPostHandler will return an error code
 immediately for unknown requests (HTTP 400). But that won't help when
 connecting to old grids.

 I see two ways to fix this:

 1. Send the request using GET instead of POST. AssetServerGetHandler
 handles
 unknown requests a little better than POST: it tries to find the parameter
 as an Asset ID, but if not found then it just returns HTTP 404
 immediately.

 2. Add a way to query the server for its capabilities, to find out if it
 supports this request.

 I prefer approach #2 because it can be used in the future for many other
 new
 features. How about adding a method to IGatekeeperService, something like
 this:

 Dictionarystring,string GetServerCapabilities();

 In this example, the capability will be: SupportsAssetsExist=true




 --
 View this message in context:
 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579100.html

 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 [hidden email] http://user/SendEmail.jtp?type=nodenode=7579101i=1
 https://lists.berlios.de/mailman/listinfo/opensim-dev


 ___
 Opensim-dev mailing list
 [hidden email] http://user/SendEmail.jtp?type=nodenode=7579101i=2
 https://lists.berlios.de/mailman/listinfo/opensim-dev


 --
  If you reply to this email, your message will be added to the discussion
 below:

 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579101.html
  To unsubscribe from Optimize pushing assets to other grids, click 
 herehttp://opensim-dev.2196679.n2.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_codenode=7579093code=b3JlbmhAa2l0ZWx5LmNvbXw3NTc5MDkzfDIwMTU3MTI0NTc=
 .
 

Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Oren Hurvitz
This isn't overloading: it's an RPC endpoint that accepts many methods. You
wouldn't create a separate endpoint for each method, would you?




--
View this message in context: 
http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579104.html
Sent from the opensim-dev mailing list archive at Nabble.com.___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Jim Williams
Then the solution is to generalize the code, not to overburden it.  If
handling different URI forces dupe code then there was a very bad decision
made very long ago.

I bet it is threaded crap.



On Mon, Mar 31, 2014 at 9:00 AM, Oren Hurvitz or...@kitely.com wrote:

 As this is an assets-service request, it belongs in the assets-service
 handlers. They already handle many different requests: data, metadata,
 data+metadata, store, update.

 Creating a new handler would be easier for me at this moment, but perhaps
 not best for OpenSim in the longer term. First, because this request is
 related to the other asset requests, it makes sense to handle them
 together. Second, adding a new handler for every new feature isn't good
 because it creates a lot of duplicate code. Third, being able to determine
 a server's capabilities is useful.

 There are many places in the codebase where new features were added using
 copy-paste-and-modify. This makes it harder to add new features, and
 especially hard to refactor major systems because so many places need to be
 changed in parallel. I would like to get away from that.

 Oren




 On Mon, Mar 31, 2014 at 3:51 PM, Melanie-2 [via opensim-dev] [hidden
 email] http://user/SendEmail.jtp?type=nodenode=7579102i=0 wrote:

 Hi Oren,

 the correct way is to create an additional post handler that is reachable
 at a different URL, e,g, /AssetQuery/

 Servers that don't implement it would return 404. Don't try to shoehorn
 this functionality into the existing post handler.

 Melanie

 On 31 Mar 2014, at 13:55, Oren Hurvitz [hidden 
 email]http://user/SendEmail.jtp?type=nodenode=7579101i=0
 wrote:

 I have implemented this method. I found that the Assets Service already
 had a
 method to check for assets' existence, so I just had to extend it to
 check
 multiple asset ID's at once, and make it available remotely. But now I'm
 not
 sure what to do about backwards compatibility.

 I'm sending the request using POST, because sending a lot of data is
 better
 done using POST than GET. But as it turns out, AssetServerPostHandler
 doesn't handle unknown requests well. First, it assumes that all requests
 will contain an AssetBase, but this request doesn't. Second, its
 try/catch
 clause doesn't catch the exception that is generated, because it's an
 InvalidOperationException and not an XmlException (which is what's
 currently
 caught). The unfortunate result is that the server doesn't send back
 *any*
 reply, which means that the caller must wait for the full timeout (100
 seconds!) before giving up. [BTW, I'm going to investigate this further
 because it may explain the 100-second timeouts users occasionally
 experience.]

 I've already fixed this problem in the current patch (not yet submitted),
 so
 that in the future AssetServerPostHandler will return an error code
 immediately for unknown requests (HTTP 400). But that won't help when
 connecting to old grids.

 I see two ways to fix this:

 1. Send the request using GET instead of POST. AssetServerGetHandler
 handles
 unknown requests a little better than POST: it tries to find the
 parameter
 as an Asset ID, but if not found then it just returns HTTP 404
 immediately.

 2. Add a way to query the server for its capabilities, to find out if it
 supports this request.

 I prefer approach #2 because it can be used in the future for many other
 new
 features. How about adding a method to IGatekeeperService, something like
 this:

 Dictionarystring,string GetServerCapabilities();

 In this example, the capability will be: SupportsAssetsExist=true




 --
 View this message in context:
 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579100.html

 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 [hidden email] http://user/SendEmail.jtp?type=nodenode=7579101i=1
 https://lists.berlios.de/mailman/listinfo/opensim-dev


 ___
 Opensim-dev mailing list
 [hidden email] http://user/SendEmail.jtp?type=nodenode=7579101i=2
 https://lists.berlios.de/mailman/listinfo/opensim-dev


 --
  If you reply to this email, your message will be added to the
 discussion below:

 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579101.html
  To unsubscribe from Optimize pushing assets to other grids, click here.
 

Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Melanie
This isn't designed as RPC, it's designed as REST. One URL/VERB
combination for each function.
We wanted to get away from the RPC concept. Let's not take backwards
steps here.

Melanie

On 31/03/2014 15:15, Oren Hurvitz wrote:
 This isn't overloading: it's an RPC endpoint that accepts many methods. You
 wouldn't create a separate endpoint for each method, would you?
 
 
 
 
 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579104.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Melanie
This isn't designed as RPC, it's designed as REST. One URL/VERB
combination for each function.
We wanted to get away from the RPC concept. Let's not take backwards
steps here.

Melanie

On 31/03/2014 15:15, Oren Hurvitz wrote:
 This isn't overloading: it's an RPC endpoint that accepts many methods. You
 wouldn't create a separate endpoint for each method, would you?
 
 
 
 
 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579104.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Jim Williams
Seems reasonable to me...A design approach I would have taken.

One question.  Is there some sort of versioning built into the protocol?
 One verb yes, but the dictionary numbers the definitions.


On Mon, Mar 31, 2014 at 12:35 PM, Melanie mela...@t-data.com wrote:

 This isn't designed as RPC, it's designed as REST. One URL/VERB
 combination for each function.
 We wanted to get away from the RPC concept. Let's not take backwards
 steps here.

 Melanie

 On 31/03/2014 15:15, Oren Hurvitz wrote:
  This isn't overloading: it's an RPC endpoint that accepts many methods.
 You
  wouldn't create a separate endpoint for each method, would you?
 
 
 
 
  --
  View this message in context:
 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579104.html
  Sent from the opensim-dev mailing list archive at Nabble.com.
 
 
 
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev




-- 
No essence.  No permanence.  No perfection.  Only action.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Melanie
There is no implicit versioning in the actual request protocol. That
would have been impossible to maintain in the long run. Instead,
there is a protocol version. We can bump it when there are
incompatible changes on any protocol and it invalidates all of them.
So a sim version 7 will refuse to connect to a server version 6 and
vice versa. This gives us both control and simplicity.

Melanie

On 31/03/2014 18:45, Jim Williams wrote:
 Seems reasonable to me...A design approach I would have taken.
 
 One question.  Is there some sort of versioning built into the protocol?
  One verb yes, but the dictionary numbers the definitions.
 
 
 On Mon, Mar 31, 2014 at 12:35 PM, Melanie mela...@t-data.com wrote:
 
 This isn't designed as RPC, it's designed as REST. One URL/VERB
 combination for each function.
 We wanted to get away from the RPC concept. Let's not take backwards
 steps here.

 Melanie

 On 31/03/2014 15:15, Oren Hurvitz wrote:
  This isn't overloading: it's an RPC endpoint that accepts many methods.
 You
  wouldn't create a separate endpoint for each method, would you?
 
 
 
 
  --
  View this message in context:
 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579104.html
  Sent from the opensim-dev mailing list archive at Nabble.com.
 
 
 
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev

 
 
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Oren Hurvitz
If you say that the intention was to use REST then of course I accept what
you say. But whatever the vision was, the implementation today is very
different: many services use RPC. The /auth endpoint, for example, handles
6 methods. The /avatar endpoint handles 5 methods. And that's just for
services that start with the letter 'A'. So why the pushback on the assets
endpoint, when so many other services already work this way?



--
View this message in context: 
http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579112.html
Sent from the opensim-dev mailing list archive at Nabble.com.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Melanie
Because even if badness exists, that is not a reason to add more
badness. Let's do future additions the right way.

Melanie

On 31/03/2014 18:52, Oren Hurvitz wrote:
 If you say that the intention was to use REST then of course I accept what
 you say. But whatever the vision was, the implementation today is very
 different: many services use RPC. The /auth endpoint, for example, handles
 6 methods. The /avatar endpoint handles 5 methods. And that's just for
 services that start with the letter 'A'. So why the pushback on the assets
 endpoint, when so many other services already work this way?
 
 
 
 --
 View this message in context: 
 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579112.html
 Sent from the opensim-dev mailing list archive at Nabble.com.
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Jim Williams
A bit of a mixed bag that.  I would have gone for an even-odd invalidation.
 You have one full cycle to comply.  But at least that doesn't leave sims
twisting in the wind.


On Mon, Mar 31, 2014 at 12:51 PM, Melanie mela...@t-data.com wrote:

 There is no implicit versioning in the actual request protocol. That
 would have been impossible to maintain in the long run. Instead,
 there is a protocol version. We can bump it when there are
 incompatible changes on any protocol and it invalidates all of them.
 So a sim version 7 will refuse to connect to a server version 6 and
 vice versa. This gives us both control and simplicity.

 Melanie

 On 31/03/2014 18:45, Jim Williams wrote:
  Seems reasonable to me...A design approach I would have taken.
 
  One question.  Is there some sort of versioning built into the protocol?
   One verb yes, but the dictionary numbers the definitions.
 
 
  On Mon, Mar 31, 2014 at 12:35 PM, Melanie mela...@t-data.com wrote:
 
  This isn't designed as RPC, it's designed as REST. One URL/VERB
  combination for each function.
  We wanted to get away from the RPC concept. Let's not take backwards
  steps here.
 
  Melanie
 
  On 31/03/2014 15:15, Oren Hurvitz wrote:
   This isn't overloading: it's an RPC endpoint that accepts many
 methods.
  You
   wouldn't create a separate endpoint for each method, would you?
  
  
  
  
   --
   View this message in context:
 
 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579104.html
   Sent from the opensim-dev mailing list archive at Nabble.com.
  
  
  
   ___
   Opensim-dev mailing list
   Opensim-dev@lists.berlios.de
   https://lists.berlios.de/mailman/listinfo/opensim-dev
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
 
 
 
 
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev




-- 
No essence.  No permanence.  No perfection.  Only action.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Jim Williams
Besideswasn't backwards compatibility a problem?


On Mon, Mar 31, 2014 at 12:54 PM, Melanie mela...@t-data.com wrote:

 Because even if badness exists, that is not a reason to add more
 badness. Let's do future additions the right way.

 Melanie

 On 31/03/2014 18:52, Oren Hurvitz wrote:
  If you say that the intention was to use REST then of course I accept
 what
  you say. But whatever the vision was, the implementation today is very
  different: many services use RPC. The /auth endpoint, for example,
 handles
  6 methods. The /avatar endpoint handles 5 methods. And that's just for
  services that start with the letter 'A'. So why the pushback on the
 assets
  endpoint, when so many other services already work this way?
 
 
 
  --
  View this message in context:
 http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579112.html
  Sent from the opensim-dev mailing list archive at Nabble.com.
  ___
  Opensim-dev mailing list
  Opensim-dev@lists.berlios.de
  https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev




-- 
No essence.  No permanence.  No perfection.  Only action.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Diva Canto
The Hypergrid protocol is, unfortunately, full of RPC calls. If I had to 
do it today, I would have done it with REST instead. When I started 
doing it, we still didn't have the nice architecture that we have today.


Having said that, it's true that many of the REST handlers are 
essentially RPC handlers. I would, however, stick to the style in each 
service. For example, the asset service is relatively clean, so I would 
keep it that way.


On 3/31/2014 9:52 AM, Oren Hurvitz wrote:

If you say that the intention was to use REST then of course I accept what
you say. But whatever the vision was, the implementation today is very
different: many services use RPC. The /auth endpoint, for example, handles
6 methods. The /avatar endpoint handles 5 methods. And that's just for
services that start with the letter 'A'. So why the pushback on the assets
endpoint, when so many other services already work this way?



--
View this message in context: 
http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579112.html
Sent from the opensim-dev mailing list archive at Nabble.com.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev




___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread M.E. Verhagen
rest handlers sounds good, is it documented somewhere ?
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-31 Thread Justin Clark-Casey
I originally put in the MajorInterfaceVersion back in 2008 but I now think that's a very bad way to handle updates in a 
distributed system with no central control.


Instead, just like the web, the protocol should be designed with extensbility in mind so that the system can evolve 
without massive disruption [1], allowing old and new components to co-exist.


I think that one more planned bump of MajorInterfaceVersion would be acceptable to introduce extensibility but continual 
bumps are going to do damage to the system and people's confidence in the system.  Not only does it affect the Hypergrid 
idea, but also in a large grid it makes it very difficult, if not impossible, to experiment with newer updates if they 
are not protocol compatible.


I'll also note that the version number has not been bumped since October 2010.  Unsurprisingly, nobody has wanted to 
inflict (or be blamed) for that pain so everybody has been at pains not to introduce incompatible updates (or only 
incompatible in minor ways).  But really this compatibility should be achieved with a planned mechanism rather than the 
ad hoc measures that have always been used, and where one day luck runs out.


[1] https://www.ics.uci.edu/~fielding/pubs/dissertation/net_app_arch.htm#sec_2_2

On 31/03/14 17:51, Melanie wrote:

There is no implicit versioning in the actual request protocol. That
would have been impossible to maintain in the long run. Instead,
there is a protocol version. We can bump it when there are
incompatible changes on any protocol and it invalidates all of them.
So a sim version 7 will refuse to connect to a server version 6 and
vice versa. This gives us both control and simplicity.

Melanie

On 31/03/2014 18:45, Jim Williams wrote:

Seems reasonable to me...A design approach I would have taken.

One question.  Is there some sort of versioning built into the protocol?
  One verb yes, but the dictionary numbers the definitions.


On Mon, Mar 31, 2014 at 12:35 PM, Melanie mela...@t-data.com wrote:


This isn't designed as RPC, it's designed as REST. One URL/VERB
combination for each function.
We wanted to get away from the RPC concept. Let's not take backwards
steps here.

Melanie

On 31/03/2014 15:15, Oren Hurvitz wrote:

This isn't overloading: it's an RPC endpoint that accepts many methods.

You

wouldn't create a separate endpoint for each method, would you?




--
View this message in context:

http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579104.html

Sent from the opensim-dev mailing list archive at Nabble.com.



___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev







___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev
.




--
Justin Clark-Casey (justincc)
OSVW Consulting
http://justincc.org
http://twitter.com/justincc
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-30 Thread Diva Canto

+1

On 3/30/2014 7:47 AM, Oren Hurvitz wrote:

I want to improve how assets are transferred between grids in the Hypergrid.
Currently there are two ways this is done: push and pull. In both cases,
HGUuidGatherer is used to find all the assets that are embedded in the
top-level asset. The Pull operation is efficient because it won't load from
the remote grid an asset that already exists in the local grid. But the Push
operation is inefficient because it doesn't know which assets the remote
grid has, so it has to send all the assets (full data), and it never
remembers which assets the remote grid already has.

In order to improve this, I'm thinking of adding a Hypergrid method that
will let the local grid know which assets the remote grid already has, so it
won't have to send them again. Something like this:

bool[] AssetExists(string[] uuid);

Thoughts?

Oren



--
View this message in context: 
http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093.html
Sent from the opensim-dev mailing list archive at Nabble.com.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev




___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-30 Thread Mike Chase
It's a huge security hole. But then so is Hypergrid in general.  Not really
designed for trust relationships or capabilities between entities.
Otherwise it fits into the hypergrid wild west as a whole.  

Mike

-Original Message-
From: opensim-dev-boun...@lists.berlios.de
[mailto:opensim-dev-boun...@lists.berlios.de] On Behalf Of Oren Hurvitz
Sent: Sunday, March 30, 2014 10:48 AM
To: opensim-dev@lists.berlios.de
Subject: [Opensim-dev] Optimize pushing assets to other grids

I want to improve how assets are transferred between grids in the Hypergrid.
Currently there are two ways this is done: push and pull. In both cases,
HGUuidGatherer is used to find all the assets that are embedded in the
top-level asset. The Pull operation is efficient because it won't load from
the remote grid an asset that already exists in the local grid. But the Push
operation is inefficient because it doesn't know which assets the remote
grid has, so it has to send all the assets (full data), and it never
remembers which assets the remote grid already has.

In order to improve this, I'm thinking of adding a Hypergrid method that
will let the local grid know which assets the remote grid already has, so it
won't have to send them again. Something like this:

bool[] AssetExists(string[] uuid);

Thoughts?

Oren



--
View this message in context:
http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-gr
ids-tp7579093.html
Sent from the opensim-dev mailing list archive at Nabble.com.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-30 Thread Oren Hurvitz
It's already possible to know which assets are on the server by performing
GETs, so this method doesn't change the security situation.



--
View this message in context: 
http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579096.html
Sent from the opensim-dev mailing list archive at Nabble.com.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-30 Thread Diva Canto

Indeed.
And the asset service that's exposed for the Hypergrid is not the one 
that serves the grid internally. There are two separate services. The HG 
Asset Service can be configured in all sorts of ways, from very 
permissive to very restrictive, all under the control of the grid operators.


On 3/30/2014 8:39 AM, Oren Hurvitz wrote:

It's already possible to know which assets are on the server by performing
GETs, so this method doesn't change the security situation.



--
View this message in context: 
http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-grids-tp7579093p7579096.html
Sent from the opensim-dev mailing list archive at Nabble.com.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev




___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-30 Thread Mike Chase
Yes I understand. That's why I said its no less secure than the protocol
it's based on.  And Diva I get that the external asset server is very
configurable.I don't expect changes.  I just don't believe HyperGrid as
its designed is correct or allows for the management of relationships.   It
would need to be able to allow the establishing of trust  between both users
and grids and services and grids as well as users and services.  And that
would need to be exposed at user level.  I should be able to say I don't
trust service X as a user. Or don't give me anything from Grid Y.  Same with
grid to grid/service.  That's partially there.

I never believed that hypergrid belonged in core.  I said so at the time.
But its there now so we live with it.  It would be nice if really this was
all looked at with fresh eyes. But I don't expect that will happen at this
stage either.

Mike


-Original Message-
From: opensim-dev-boun...@lists.berlios.de
[mailto:opensim-dev-boun...@lists.berlios.de] On Behalf Of Oren Hurvitz
Sent: Sunday, March 30, 2014 11:39 AM
To: opensim-dev@lists.berlios.de
Subject: Re: [Opensim-dev] Optimize pushing assets to other grids

It's already possible to know which assets are on the server by performing
GETs, so this method doesn't change the security situation.



--
View this message in context:
http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-gr
ids-tp7579093p7579096.html
Sent from the opensim-dev mailing list archive at Nabble.com.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Optimize pushing assets to other grids

2014-03-30 Thread Diva Canto

You can believe whatever you want. I'm just setting the record straight.
WRT to trust relations between grids, that's already there.
WRT user-facing configurability, there is work in progress regarding the 
Export flag exposed to users by the viewer. Not finished yet, but it 
will be when someone has the cycles to finish it, as it's usually the 
case with open source projects that rely on voluntary contributions.



On 3/30/2014 9:11 AM, Mike Chase wrote:

Yes I understand. That's why I said its no less secure than the protocol
it's based on.  And Diva I get that the external asset server is very
configurable.I don't expect changes.  I just don't believe HyperGrid as
its designed is correct or allows for the management of relationships.   It
would need to be able to allow the establishing of trust  between both users
and grids and services and grids as well as users and services.  And that
would need to be exposed at user level.  I should be able to say I don't
trust service X as a user. Or don't give me anything from Grid Y.  Same with
grid to grid/service.  That's partially there.

I never believed that hypergrid belonged in core.  I said so at the time.
But its there now so we live with it.  It would be nice if really this was
all looked at with fresh eyes. But I don't expect that will happen at this
stage either.

Mike


-Original Message-
From: opensim-dev-boun...@lists.berlios.de
[mailto:opensim-dev-boun...@lists.berlios.de] On Behalf Of Oren Hurvitz
Sent: Sunday, March 30, 2014 11:39 AM
To: opensim-dev@lists.berlios.de
Subject: Re: [Opensim-dev] Optimize pushing assets to other grids

It's already possible to know which assets are on the server by performing
GETs, so this method doesn't change the security situation.



--
View this message in context:
http://opensim-dev.2196679.n2.nabble.com/Optimize-pushing-assets-to-other-gr
ids-tp7579093p7579096.html
Sent from the opensim-dev mailing list archive at Nabble.com.
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev

___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev




___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev