Re: [Opensim-dev] Please do not revert fixes without careful comtemplation

2009-02-19 Thread Melanie
One of the core developers has tested it. I don't recall who. Any 
indirection can only slow things, it adds processing overhead. If 
NHibernate canbe made faster with indexes, than the same indexes 
will speed up native access even more.
I'm happy I finally took the time to get rid of the MySQL ADO.NET 
wrappers and made the implementation pure native. It is now the 
thinnest layer possible between the driver module and the 
application. I, for one, am not interested in using a juggernaut 
like NHibernate.

Melanie

Antti Kokko wrote:
 I`d like to see the facts based on that assumption. I`ve worked with
 NHibernate in web solutions for years and there hasn`t been any lack of
 performance. I had a one year pause with Hibernate and it seems during it
 there has been great development, nhibernate own cache etc.
 
 If we assume that NHibernate is currently slower there is sure a plenty of
 ways to get it faster. Indexing, caching, bulk fetches to mention few.
 
 Best,
 
  - Antti
 
 2009/2/18 Melanie mela...@t-data.com
 
 NHibernate has, in tests, been significantly slower than native
 implementations.

 Melanie

 Antti Kokko wrote:
  Trying to catch up but anyway what I think in general is that the whole
  database schema is not the best in terms of coherence, associations etc.
 For
  me it seems that at first came all functionality and them came the
 database
  solutions. The structure feels is broken but I understand it because of
  grid mode etc.
 
  What I`d like to see is simply one db solution which covers mysql, mssql
 and
  sqlite and that is most propably NHibernate. Why do all the updates to
 all
  interface implementing classes instead of doing it only in one place. I
  think this could save some serious time.
 
  However I try to get to the asset discussion:
 
  First of all I really like the way of Cable Beach and truly hope this all
 is
  going to distributed asset system. One of the biggest issues is cache,
  external cache etc. If we have e.q. publisher who wants to update an
 object
  in Cable Beach which is already used in sim1 and sim2, how we send the
  update to all caches? How I have understood it the current system is a
 kind
  of trade-off and actually new object is created instead of updating the
  existing one. On the database side I`d definitely like to see not a new
  object but an update. What I`ve heard the cache issues are long discussed
  and not easy to resolve and we definitely need a further discussion about
  along with Cable Beach or any distributed asset system. After all why I
  couldn`t have an apache web server somewhere where my asset, avatar,
 avatar
  appearance are.
 
  Having several asset storages distributed all over the web we need an
 UUID
  for the asset but we are going to need of course an URL as key too. That
 is
  definitely one issue.
 
  Best,
 
- Antti
 
  2009/2/17 Charles Krinke c...@pacbell.net
 
  Dear Teravus:
 
  No problem. The key point I was trying to make is that as time goes on
 we
  seem to be increasing exponentially the storage requirements in the
 UGAIM
  assets table. The terrainImage entry was an example of of an 'asset'
 that is
  a little different in perception then say, a texture covering a face of
 a
  prim.
 
  This example was intended for us to think about those 'assets' which can
 be
  pruned on a regular basis so that our ability from the UGAIM viewpoint
 to
  find and retrieve an asset in a timely manner does not get so long as to
  make our sims performance degraded.
 
  Charles
 
  --
  *From:* Teravus Ovares tera...@gmail.com
  *To:* opensim-dev@lists.berlios.de
  *Sent:* Tuesday, February 17, 2009 6:39:52 AM
  *Subject:* Re: [Opensim-dev] Please do not revert fixes without careful
  comtemplation
 
  I thought it prudent to point out that the following statement is 100%
  fiction;
 
   2. We have a significant number of assets of each and every edit of
  terrain, where only the very last one is accessible
 
  What I think you meant to say was,
 
  2. Every two days each region generates a new map tile image and
  names it terrainImage.  These do eventually add up
 
  Best Regards
 
  Teravus
 
  On Tue, Feb 17, 2009 at 9:31 AM, Stefan Andersson 
 ste...@tribalmedia.se
  wrote:
  
1. We have a significant number of assets whose name is blank
 that
  are
created with a default constructor. And I suspect are never
  accessible.
  
   In fact, this field has always seemed redundant to me since the user
  only
   ever manipulates assets by their inventory
   name, which is entirely separate from the asset name. The asset name
 is
   never visible to the user (and afaik is not
   used anywhere else in the code).
  
   At one point I thought about proposing to remove it. Possibly this
 issue
   should be revisited.
  
   I believe it's kept there just as a convenience - to be able to get
 some
   kind of semantics, not necessarily exact, when browsing the table.
  
2. We have

Re: [Opensim-dev] Please do not revert fixes without careful comtemplation

2009-02-18 Thread Melanie
NHibernate has, in tests, been significantly slower than native
implementations.

Melanie

Antti Kokko wrote:
 Trying to catch up but anyway what I think in general is that the whole
 database schema is not the best in terms of coherence, associations etc. For
 me it seems that at first came all functionality and them came the database
 solutions. The structure feels is broken but I understand it because of
 grid mode etc.
 
 What I`d like to see is simply one db solution which covers mysql, mssql and
 sqlite and that is most propably NHibernate. Why do all the updates to all
 interface implementing classes instead of doing it only in one place. I
 think this could save some serious time.
 
 However I try to get to the asset discussion:
 
 First of all I really like the way of Cable Beach and truly hope this all is
 going to distributed asset system. One of the biggest issues is cache,
 external cache etc. If we have e.q. publisher who wants to update an object
 in Cable Beach which is already used in sim1 and sim2, how we send the
 update to all caches? How I have understood it the current system is a kind
 of trade-off and actually new object is created instead of updating the
 existing one. On the database side I`d definitely like to see not a new
 object but an update. What I`ve heard the cache issues are long discussed
 and not easy to resolve and we definitely need a further discussion about
 along with Cable Beach or any distributed asset system. After all why I
 couldn`t have an apache web server somewhere where my asset, avatar, avatar
 appearance are.
 
 Having several asset storages distributed all over the web we need an UUID
 for the asset but we are going to need of course an URL as key too. That is
 definitely one issue.
 
 Best,
 
   - Antti
 
 2009/2/17 Charles Krinke c...@pacbell.net
 
 Dear Teravus:

 No problem. The key point I was trying to make is that as time goes on we
 seem to be increasing exponentially the storage requirements in the UGAIM
 assets table. The terrainImage entry was an example of of an 'asset' that is
 a little different in perception then say, a texture covering a face of a
 prim.

 This example was intended for us to think about those 'assets' which can be
 pruned on a regular basis so that our ability from the UGAIM viewpoint to
 find and retrieve an asset in a timely manner does not get so long as to
 make our sims performance degraded.

 Charles

 --
 *From:* Teravus Ovares tera...@gmail.com
 *To:* opensim-dev@lists.berlios.de
 *Sent:* Tuesday, February 17, 2009 6:39:52 AM
 *Subject:* Re: [Opensim-dev] Please do not revert fixes without careful
 comtemplation

 I thought it prudent to point out that the following statement is 100%
 fiction;

  2. We have a significant number of assets of each and every edit of
 terrain, where only the very last one is accessible

 What I think you meant to say was,

 2. Every two days each region generates a new map tile image and
 names it terrainImage.  These do eventually add up

 Best Regards

 Teravus

 On Tue, Feb 17, 2009 at 9:31 AM, Stefan Andersson ste...@tribalmedia.se
 wrote:
 
   1. We have a significant number of assets whose name is blank that
 are
   created with a default constructor. And I suspect are never
 accessible.
 
  In fact, this field has always seemed redundant to me since the user
 only
  ever manipulates assets by their inventory
  name, which is entirely separate from the asset name. The asset name is
  never visible to the user (and afaik is not
  used anywhere else in the code).
 
  At one point I thought about proposing to remove it. Possibly this issue
  should be revisited.
 
  I believe it's kept there just as a convenience - to be able to get some
  kind of semantics, not necessarily exact, when browsing the table.
 
   2. We have a significant number of assets of each and every edit of
   terrain, where only the very last one is accessible.
 
  Yes, this does seem wasteful to me since old terrain assets are not used
  by anything, afaik.
 
  I have proposed a number of times that we could have a virtual asset_key
 as
  well as an asset_id - so that things that would rewrite assets could use
 the
  asset_key as an aux method to actually try to overwrite the asset. In the
  terrain case, the asset would be overwritten by key, not by id. This
 would
  allow us to implement a number of parallell schemas where some assets
 would
  be overwritten (asset_key = asset_id) and some where we would keep a
 history
  (only asset_key) and some where doing either or would be configurable.
 
   3. We have a significant number of assets of each and every text edit
   for each and every textual assets. Where only the last one should be
   accessible.
 
  Unfortunately, this is not the case. For instance, imagine that you
 create
  a script in your inventory. You drag this
  script into a region object. At this point, both the entry in your
  inventory and the entry in the region

Re: [Opensim-dev] Please do not revert fixes without careful comtemplation

2009-02-17 Thread Stefan Andersson

 

  1. We have a significant number of assets whose name is blank that are 
  created with a default constructor. And I suspect are never accessible.
 

 In fact, this field has always seemed redundant to me since the user only 
 ever manipulates assets by their inventory 
 name, which is entirely separate from the asset name. The asset name is never 
 visible to the user (and afaik is not 
 used anywhere else in the code).

 At one point I thought about proposing to remove it. Possibly this issue 
 should be revisited.


I believe it's kept there just as a convenience - to be able to get some kind 
of semantics, not necessarily exact, when browsing the table.

 
  2. We have a significant number of assets of each and every edit of 
  terrain, where only the very last one is accessible.
 
 Yes, this does seem wasteful to me since old terrain assets are not used by 
 anything, afaik.


I have proposed a number of times that we could have a virtual asset_key as 
well as an asset_id - so that things that would rewrite assets could use the 
asset_key as an aux method to actually try to overwrite the asset. In the 
terrain case, the asset would be overwritten by key, not by id. This would 
allow us to implement a number of parallell schemas where some assets would be 
overwritten (asset_key = asset_id) and some where we would keep a history (only 
asset_key) and some where doing either or would be configurable.

 
  3. We have a significant number of assets of each and every text edit 
  for each and every textual assets. Where only the last one should be 
  accessible.
 
 Unfortunately, this is not the case. For instance, imagine that you create a 
 script in your inventory. You drag this 
 script into a region object. At this point, both the entry in your inventory 
 and the entry in the region point to the 
 same textual asset.
 
 But then you edit the script in your inventory. After the edit it points to a 
 new asset containing the edited text. 
 However, the region object is still pointing to the old script asset. So we 
 need to keep both the old and new textual 
 assets.


Not to mention the fact that the viewer caches stuff.


 However, you're right in that textual assets which are never used elsewhere 
 (i.e. are intermediate edits that never get 
 dragged into an object, given to someone else, or otherwise transmitted) 
 might possibly be eliminated with some 
 sufficiently careful scheme.


Binary de-duplication and added semantics in the form of 'key' or 'class' would 
probably go a long way.


  Its a bit like collecting every scrap of paper ever written with either 
  text or binary glyphs and putting them in a big filing cabinet.
  
  After a while, finding the ones that are interesting in a timely 
  manner starts to get a little challenging.


Let's keep the shining torch of this discussion burning.

 

/Stefan

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


Re: [Opensim-dev] Please do not revert fixes without careful comtemplation

2009-02-17 Thread Teravus Ovares
I thought it prudent to point out that the following statement is 100% fiction;

 2. We have a significant number of assets of each and every edit of
terrain, where only the very last one is accessible

What I think you meant to say was,

2. Every two days each region generates a new map tile image and
names it terrainImage.  These do eventually add up

Best Regards

Teravus

On Tue, Feb 17, 2009 at 9:31 AM, Stefan Andersson ste...@tribalmedia.se wrote:

  1. We have a significant number of assets whose name is blank that are
  created with a default constructor. And I suspect are never accessible.

 In fact, this field has always seemed redundant to me since the user only
 ever manipulates assets by their inventory
 name, which is entirely separate from the asset name. The asset name is
 never visible to the user (and afaik is not
 used anywhere else in the code).

 At one point I thought about proposing to remove it. Possibly this issue
 should be revisited.

 I believe it's kept there just as a convenience - to be able to get some
 kind of semantics, not necessarily exact, when browsing the table.

  2. We have a significant number of assets of each and every edit of
  terrain, where only the very last one is accessible.

 Yes, this does seem wasteful to me since old terrain assets are not used
 by anything, afaik.

 I have proposed a number of times that we could have a virtual asset_key as
 well as an asset_id - so that things that would rewrite assets could use the
 asset_key as an aux method to actually try to overwrite the asset. In the
 terrain case, the asset would be overwritten by key, not by id. This would
 allow us to implement a number of parallell schemas where some assets would
 be overwritten (asset_key = asset_id) and some where we would keep a history
 (only asset_key) and some where doing either or would be configurable.

  3. We have a significant number of assets of each and every text edit
  for each and every textual assets. Where only the last one should be
  accessible.

 Unfortunately, this is not the case. For instance, imagine that you create
 a script in your inventory. You drag this
 script into a region object. At this point, both the entry in your
 inventory and the entry in the region point to the
 same textual asset.

 But then you edit the script in your inventory. After the edit it points
 to a new asset containing the edited text.
 However, the region object is still pointing to the old script asset. So
 we need to keep both the old and new textual
 assets.

 Not to mention the fact that the viewer caches stuff.

 However, you're right in that textual assets which are never used
 elsewhere (i.e. are intermediate edits that never get
 dragged into an object, given to someone else, or otherwise transmitted)
 might possibly be eliminated with some
 sufficiently careful scheme.

 Binary de-duplication and added semantics in the form of 'key' or 'class'
 would probably go a long way.

  Its a bit like collecting every scrap of paper ever written with either
  text or binary glyphs and putting them in a big filing cabinet.
 
  After a while, finding the ones that are interesting in a timely
  manner starts to get a little challenging.

 Let's keep the shining torch of this discussion burning.

 /Stefan


 ___
 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] Please do not revert fixes without careful comtemplation

2009-02-17 Thread Antti Kokko
Trying to catch up but anyway what I think in general is that the whole
database schema is not the best in terms of coherence, associations etc. For
me it seems that at first came all functionality and them came the database
solutions. The structure feels is broken but I understand it because of
grid mode etc.

What I`d like to see is simply one db solution which covers mysql, mssql and
sqlite and that is most propably NHibernate. Why do all the updates to all
interface implementing classes instead of doing it only in one place. I
think this could save some serious time.

However I try to get to the asset discussion:

First of all I really like the way of Cable Beach and truly hope this all is
going to distributed asset system. One of the biggest issues is cache,
external cache etc. If we have e.q. publisher who wants to update an object
in Cable Beach which is already used in sim1 and sim2, how we send the
update to all caches? How I have understood it the current system is a kind
of trade-off and actually new object is created instead of updating the
existing one. On the database side I`d definitely like to see not a new
object but an update. What I`ve heard the cache issues are long discussed
and not easy to resolve and we definitely need a further discussion about
along with Cable Beach or any distributed asset system. After all why I
couldn`t have an apache web server somewhere where my asset, avatar, avatar
appearance are.

Having several asset storages distributed all over the web we need an UUID
for the asset but we are going to need of course an URL as key too. That is
definitely one issue.

Best,

  - Antti

2009/2/17 Charles Krinke c...@pacbell.net

 Dear Teravus:

 No problem. The key point I was trying to make is that as time goes on we
 seem to be increasing exponentially the storage requirements in the UGAIM
 assets table. The terrainImage entry was an example of of an 'asset' that is
 a little different in perception then say, a texture covering a face of a
 prim.

 This example was intended for us to think about those 'assets' which can be
 pruned on a regular basis so that our ability from the UGAIM viewpoint to
 find and retrieve an asset in a timely manner does not get so long as to
 make our sims performance degraded.

 Charles

 --
 *From:* Teravus Ovares tera...@gmail.com
 *To:* opensim-dev@lists.berlios.de
 *Sent:* Tuesday, February 17, 2009 6:39:52 AM
 *Subject:* Re: [Opensim-dev] Please do not revert fixes without careful
 comtemplation

 I thought it prudent to point out that the following statement is 100%
 fiction;

  2. We have a significant number of assets of each and every edit of
 terrain, where only the very last one is accessible

 What I think you meant to say was,

 2. Every two days each region generates a new map tile image and
 names it terrainImage.  These do eventually add up

 Best Regards

 Teravus

 On Tue, Feb 17, 2009 at 9:31 AM, Stefan Andersson ste...@tribalmedia.se
 wrote:
 
   1. We have a significant number of assets whose name is blank that
 are
   created with a default constructor. And I suspect are never
 accessible.
 
  In fact, this field has always seemed redundant to me since the user
 only
  ever manipulates assets by their inventory
  name, which is entirely separate from the asset name. The asset name is
  never visible to the user (and afaik is not
  used anywhere else in the code).
 
  At one point I thought about proposing to remove it. Possibly this issue
  should be revisited.
 
  I believe it's kept there just as a convenience - to be able to get some
  kind of semantics, not necessarily exact, when browsing the table.
 
   2. We have a significant number of assets of each and every edit of
   terrain, where only the very last one is accessible.
 
  Yes, this does seem wasteful to me since old terrain assets are not used
  by anything, afaik.
 
  I have proposed a number of times that we could have a virtual asset_key
 as
  well as an asset_id - so that things that would rewrite assets could use
 the
  asset_key as an aux method to actually try to overwrite the asset. In the
  terrain case, the asset would be overwritten by key, not by id. This
 would
  allow us to implement a number of parallell schemas where some assets
 would
  be overwritten (asset_key = asset_id) and some where we would keep a
 history
  (only asset_key) and some where doing either or would be configurable.
 
   3. We have a significant number of assets of each and every text edit
   for each and every textual assets. Where only the last one should be
   accessible.
 
  Unfortunately, this is not the case. For instance, imagine that you
 create
  a script in your inventory. You drag this
  script into a region object. At this point, both the entry in your
  inventory and the entry in the region point to the
  same textual asset.
 
  But then you edit the script in your inventory. After the edit it points
  to a new asset containing

Re: [Opensim-dev] Please do not revert fixes without careful comtemplation

2009-02-16 Thread Antti Kokko
Hi,

  One example is here http://realxtendserver.svn.sourceforge.net/. Choose
Authentication. There is NHibernateHandler and under that is Bulk.

Best,

 - Antti


2009/2/16 Tommi Laukkanen tommi.s.e.laukka...@gmail.com

 Hello

 It would be nice to have somekind of short term solution to fix the current
 nhibernate asset store implementation so that it works and when cable beach
 is finalized we can see if we need to do something extra to support that
 fully.

 Antti: Can you elaborate with examples or link me to some nhibernate
 documentation which explains bulk object concept in detail. I don't get the
 exact implementation details from your mail.  By implementation I mean what
 kind of mapping files you are proposing we would need and how they would be
 used from code.

 regards,
 Tommi

 ___
 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] Please do not revert fixes without careful comtemplation

2009-02-16 Thread Melanie
Again, I'd like to stress that I believe this is too dangerous to do 
for anything other than textures.
It is also not really needed for things other than textures, since 
the other assets are comparatively small, textural data.

I would not want to risk even the smallest chance of a hash 
collision on script source.

Melanie

Stefan Andersson wrote:
 Coming in a bit from the side here,
 
  
 
 we have, for some time, discussed to separate out the binary blog out of the 
 metadata for an entirely different reason, namely to be able to weed out 
 binary duplicates.
 
 
 If there was a way for us to separate out the binary parts, into something 
 like 'binaryassetId, hashData[256], binarydata' and then just have the asset 
 table referencing that row, I think it would help a lot.
  
 
 I realize it's a separate discussion, just chipping in my two cents.
 
 
 Best regards,
 Stefan Andersson
 Tribal Media AB
 
 
 
  
 
 
 Date: Sat, 14 Feb 2009 17:49:22 +0200
 From: tommi.s.e.laukka...@gmail.com
 To: mma...@gmail.com
 CC: opensim-dev@lists.berlios.de
 Subject: Re: [Opensim-dev] Please do not revert fixes without careful 
 comtemplation
 
 
 Hello,
  
 On second though we could keep the current structure and expose all fields 
 also through AssetBase properties. Then we could save / load the AssetBase 
 with nhibernate as a single object and leave out the Metadata  property from 
 NHibernate mapping. Does this sound good?
  
 regards,
 Tommi
 
 
 On Sat, Feb 14, 2009 at 5:06 PM, Mike Mazur mma...@gmail.com wrote:
 
 Hi,
 
 On Sat, Feb 14, 2009 at 4:05 PM, Tommi Laukkanen
 
 tommi.s.e.laukka...@gmail.com wrote:
 
 I was talking with mikkopa and he suggested we should create two tables to
 cover AssetBase to solve this issue properly. Namely AssetMetadata for
 metadata information and AssetData for blobs to avoid situation where we end
 up accessing also the blob data just to read metadata.
 
 I was hoping not to have to do that.
 
 It should be straightforward to support the current
 AssetBase/AssetMetadata composition in the existing OpenSim data
 layers, but as sdague warned me earlier, by mapping multiple classes
 to one table I was entering a world of pain. Seems that's exactly
 what's happening with NHibernate.
 
 The reason I introduced the AssetMetadata class is to supply metadata
 information only for some requests that Cable Beach, the new asset
 server, supports. Now I realize that this was probably a premature
 optimization.
 
 Instead of modifying the DB schema, we could have AssetBase inherit
 from AssetMetadata, as I outlined before[1]. Alternatively, we could
 get rid of AssetMetadata altogether and store everything in AssetBase
 as before, splitting out the metadata sometime in the future when a
 use case warrants it.
 
 What do you think?
 
 Thanks,
 Mike
 
 
 [1] https://lists.berlios.de/pipermail/opensim-dev/2009-February/004918.html
 
 
 
 
 
 
 ___
 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] Please do not revert fixes without careful comtemplation

2009-02-16 Thread Frisby, Adam
Hence me suggesting stronger hashes - there's no known attacks on anything 
above or equal to 160bit, plus to calculate an attack you'd have to have the 
hash of the original to begin with, which shouldn't be something revealed to an 
end user.

Adam

 -Original Message-
 From: opensim-dev-boun...@lists.berlios.de [mailto:opensim-dev-
 boun...@lists.berlios.de] On Behalf Of Melanie
 Sent: Monday, 16 February 2009 5:26 AM
 To: opensim-dev@lists.berlios.de
 Subject: Re: [Opensim-dev] Please do not revert fixes without careful
 comtemplation

 I see the potential of targeted MD5 collisions as a way to obtain
 script sources.
 A saves a script.
 B creates a targeted collision, which will result in creation of an
 inventory item refering to A. The data B saves is ignored because of
 hash equality
 B then reopens the object and receives A's script source.

 Melanie


 Frisby, Adam wrote:
  You do realise you could just not update the asset. If the hash is
 the same, then you can just completely ignore the save/update request.
 
  That being said, even a targeted collision on MD5 is a 2^58 chance,
 on SHA256 it's well over 2^128 which makes it pretty much impossible.
 Frankly it's not something worth concerning oneself over.
 
  Adam
 
  -Original Message-
  From: opensim-dev-boun...@lists.berlios.de [mailto:opensim-dev-
  boun...@lists.berlios.de] On Behalf Of Melanie
  Sent: Monday, 16 February 2009 4:45 AM
  To: opensim-dev@lists.berlios.de
  Subject: Re: [Opensim-dev] Please do not revert fixes without
 careful
  comtemplation
 
  Again, I'd like to stress that I believe this is too dangerous to do
  for anything other than textures.
  It is also not really needed for things other than textures, since
  the other assets are comparatively small, textural data.
 
  I would not want to risk even the smallest chance of a hash
  collision on script source.
 
  Melanie
 
  Stefan Andersson wrote:
   Coming in a bit from the side here,
  
  
  
   we have, for some time, discussed to separate out the binary blog
 out
  of the metadata for an entirely different reason, namely to be able
 to
  weed out binary duplicates.
  
  
   If there was a way for us to separate out the binary parts, into
  something like 'binaryassetId, hashData[256], binarydata' and then
 just
  have the asset table referencing that row, I think it would help a
 lot.
  
  
   I realize it's a separate discussion, just chipping in my two
 cents.
  
  
   Best regards,
   Stefan Andersson
   Tribal Media AB
  
  
  
  
  
  
   Date: Sat, 14 Feb 2009 17:49:22 +0200
   From: tommi.s.e.laukka...@gmail.com
   To: mma...@gmail.com
   CC: opensim-dev@lists.berlios.de
   Subject: Re: [Opensim-dev] Please do not revert fixes without
 careful
  comtemplation
  
  
   Hello,
  
   On second though we could keep the current structure and expose
 all
  fields also through AssetBase properties. Then we could save / load
 the
  AssetBase with nhibernate as a single object and leave out the
 Metadata
  property from NHibernate mapping. Does this sound good?
  
   regards,
   Tommi
  
  
   On Sat, Feb 14, 2009 at 5:06 PM, Mike Mazur mma...@gmail.com
 wrote:
  
   Hi,
  
   On Sat, Feb 14, 2009 at 4:05 PM, Tommi Laukkanen
  
   tommi.s.e.laukka...@gmail.com wrote:
  
   I was talking with mikkopa and he suggested we should create two
  tables to
   cover AssetBase to solve this issue properly. Namely
 AssetMetadata
  for
   metadata information and AssetData for blobs to avoid situation
  where we end
   up accessing also the blob data just to read metadata.
  
   I was hoping not to have to do that.
  
   It should be straightforward to support the current
   AssetBase/AssetMetadata composition in the existing OpenSim data
   layers, but as sdague warned me earlier, by mapping multiple
 classes
   to one table I was entering a world of pain. Seems that's exactly
   what's happening with NHibernate.
  
   The reason I introduced the AssetMetadata class is to supply
 metadata
   information only for some requests that Cable Beach, the new asset
   server, supports. Now I realize that this was probably a premature
   optimization.
  
   Instead of modifying the DB schema, we could have AssetBase
 inherit
   from AssetMetadata, as I outlined before[1]. Alternatively, we
 could
   get rid of AssetMetadata altogether and store everything in
 AssetBase
   as before, splitting out the metadata sometime in the future when
 a
   use case warrants it.
  
   What do you think?
  
   Thanks,
   Mike
  
  
   [1] https://lists.berlios.de/pipermail/opensim-dev/2009-
  February/004918.html
  
  
  
  
   --
 ---
  ---
  
   ___
   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

Re: [Opensim-dev] Please do not revert fixes without careful comtemplation

2009-02-16 Thread Tommi Laukkanen
Hello

That works if we have property accessors directly exposed from AssetBase to
all metadata fields. Then we can write mapping with those accessors and
ignore the metadata aggregate.

regards,
Tommi

On Mon, Feb 16, 2009 at 1:54 PM, Mike Mazur mma...@gmail.com wrote:

 Hi,

 On Mon, Feb 16, 2009 at 8:38 PM, Tommi Laukkanen
 tommi.s.e.laukka...@gmail.com wrote:
  It would be nice to have somekind of short term solution to fix the
 current
  nhibernate asset store implementation so that it works and when cable
 beach
  is finalized we can see if we need to do something extra to support that
  fully.

 How would this work as a temporary measure:

 class AssetBase
 {
  private byte [] m_data;
  private AssetMetadata m_metadata;

  public UUID FullID
  {
get { return m_metadata.FullID; }
set { m_metadata.FullID = value; }
  }
  // etc for the rest of the properties

  // we have a method to retrieve the AssetMetadata object
  // so we don't also serialize it when sending assets over the wire
  public AssetMetadata getMetadata()
  {
return m_metadata;
  }
  public void setMetadata(AssetMetadata metadata)
  {
m_metadata = metadata;
  }
 }

 Is there a better way to stop the metadata (property) from being
 serialized instead of using the C++-style accessor and mutator?

 I can commit this in about 12 hours if it would work. Comments welcome.

 Thanks,
 Mike
  ___
 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] Please do not revert fixes without careful comtemplation

2009-02-16 Thread Tommi Laukkanen
Plus you could use those hashes to distribute the assets to several backed
databases in similar manner as hashmap works. If a database becomes too full
you can always split it to sub databases and move assets there in analogy
with hashmap internal datastructure. Basicly all hashmap performance math
and algorithms should apply. Do you think this could be workable way of
doing asset storage distribution?

regards,
Tommi

On Mon, Feb 16, 2009 at 3:21 PM, Frisby, Adam a...@deepthink.com.au wrote:

 Hence me suggesting stronger hashes - there's no known attacks on anything
 above or equal to 160bit, plus to calculate an attack you'd have to have the
 hash of the original to begin with, which shouldn't be something revealed to
 an end user.

 Adam

  -Original Message-
  From: opensim-dev-boun...@lists.berlios.de [mailto:opensim-dev-
  boun...@lists.berlios.de] On Behalf Of Melanie
  Sent: Monday, 16 February 2009 5:26 AM
  To: opensim-dev@lists.berlios.de
  Subject: Re: [Opensim-dev] Please do not revert fixes without careful
  comtemplation
 
  I see the potential of targeted MD5 collisions as a way to obtain
  script sources.
  A saves a script.
  B creates a targeted collision, which will result in creation of an
  inventory item refering to A. The data B saves is ignored because of
  hash equality
  B then reopens the object and receives A's script source.
 
  Melanie
 
 
  Frisby, Adam wrote:
   You do realise you could just not update the asset. If the hash is
  the same, then you can just completely ignore the save/update request.
  
   That being said, even a targeted collision on MD5 is a 2^58 chance,
  on SHA256 it's well over 2^128 which makes it pretty much impossible.
  Frankly it's not something worth concerning oneself over.
  
   Adam
  
   -Original Message-
   From: opensim-dev-boun...@lists.berlios.de [mailto:opensim-dev-
   boun...@lists.berlios.de] On Behalf Of Melanie
   Sent: Monday, 16 February 2009 4:45 AM
   To: opensim-dev@lists.berlios.de
   Subject: Re: [Opensim-dev] Please do not revert fixes without
  careful
   comtemplation
  
   Again, I'd like to stress that I believe this is too dangerous to do
   for anything other than textures.
   It is also not really needed for things other than textures, since
   the other assets are comparatively small, textural data.
  
   I would not want to risk even the smallest chance of a hash
   collision on script source.
  
   Melanie
  
   Stefan Andersson wrote:
Coming in a bit from the side here,
   
   
   
we have, for some time, discussed to separate out the binary blog
  out
   of the metadata for an entirely different reason, namely to be able
  to
   weed out binary duplicates.
   
   
If there was a way for us to separate out the binary parts, into
   something like 'binaryassetId, hashData[256], binarydata' and then
  just
   have the asset table referencing that row, I think it would help a
  lot.
   
   
I realize it's a separate discussion, just chipping in my two
  cents.
   
   
Best regards,
Stefan Andersson
Tribal Media AB
   
   
   
   
   
   
Date: Sat, 14 Feb 2009 17:49:22 +0200
From: tommi.s.e.laukka...@gmail.com
To: mma...@gmail.com
CC: opensim-dev@lists.berlios.de
Subject: Re: [Opensim-dev] Please do not revert fixes without
  careful
   comtemplation
   
   
Hello,
   
On second though we could keep the current structure and expose
  all
   fields also through AssetBase properties. Then we could save / load
  the
   AssetBase with nhibernate as a single object and leave out the
  Metadata
   property from NHibernate mapping. Does this sound good?
   
regards,
Tommi
   
   
On Sat, Feb 14, 2009 at 5:06 PM, Mike Mazur mma...@gmail.com
  wrote:
   
Hi,
   
On Sat, Feb 14, 2009 at 4:05 PM, Tommi Laukkanen
   
tommi.s.e.laukka...@gmail.com wrote:
   
I was talking with mikkopa and he suggested we should create two
   tables to
cover AssetBase to solve this issue properly. Namely
  AssetMetadata
   for
metadata information and AssetData for blobs to avoid situation
   where we end
up accessing also the blob data just to read metadata.
   
I was hoping not to have to do that.
   
It should be straightforward to support the current
AssetBase/AssetMetadata composition in the existing OpenSim data
layers, but as sdague warned me earlier, by mapping multiple
  classes
to one table I was entering a world of pain. Seems that's exactly
what's happening with NHibernate.
   
The reason I introduced the AssetMetadata class is to supply
  metadata
information only for some requests that Cable Beach, the new asset
server, supports. Now I realize that this was probably a premature
optimization.
   
Instead of modifying the DB schema, we could have AssetBase
  inherit
from AssetMetadata, as I outlined before[1]. Alternatively, we
  could
get rid of AssetMetadata altogether

Re: [Opensim-dev] Please do not revert fixes without careful comtemplation

2009-02-16 Thread Melanie
Hello,

that was a typo. The correct word was textual. All asset types 
besides textures are text.

Melanie

Charles Krinke wrote:
 Sorry, the other assets are not just small texture data. We have 
 terrainImages, amongst other things.
 
 Our assets table in OpenSim contains lots of things including the infamouse 
 blank, so lets look at it in total and not just from the script viewpoint. 
 
 Course with scripts themselves, we have every edited version of every edited 
 script in addition to every change of every other asset complicating the 
 problem.
 
 Charles
 
 
 
 
 
 From: Melanie mela...@t-data.com
 To: opensim-dev@lists.berlios.de
 Sent: Monday, February 16, 2009 4:44:56 AM
 Subject: Re: [Opensim-dev] Please do not revert fixes without careful 
 comtemplation
 
 Again, I'd like to stress that I believe this is too dangerous to do 
 for anything other than textures.
 It is also not really needed for things other than textures, since 
 the other assets are comparatively small, textural data.
 
 I would not want to risk even the smallest chance of a hash 
 collision on script source.
 
 Melanie
 
 Stefan Andersson wrote:
 Coming in a bit from the side here,
 
  
 
 we have, for some time, discussed to separate out the binary blog out of the 
 metadata for an entirely different reason, namely to be able to weed out 
 binary duplicates.
 
 
 If there was a way for us to separate out the binary parts, into something 
 like 'binaryassetId, hashData[256], binarydata' and then just have the asset 
 table referencing that row, I think it would help a lot.
  
 
 I realize it's a separate discussion, just chipping in my two cents.
 
 
 Best regards,
 Stefan Andersson
 Tribal Media AB
 
 
 
  
 
 
 Date: Sat, 14 Feb 2009 17:49:22 +0200
 From: tommi.s.e.laukka...@gmail.com
 To: mma...@gmail.com
 CC: opensim-dev@lists.berlios.de
 Subject: Re: [Opensim-dev] Please do not revert fixes without careful 
 comtemplation
 
 
 Hello,
  
 On second though we could keep the current structure and expose all fields 
 also through AssetBase properties. Then we could save / load the AssetBase 
 with nhibernate as a single object and leave out the Metadata  property from 
 NHibernate mapping. Does this sound good?
  
 regards,
 Tommi
 
 
 On Sat, Feb 14, 2009 at 5:06 PM, Mike Mazur mma...@gmail.com wrote:
 
 Hi,
 
 On Sat, Feb 14, 2009 at 4:05 PM, Tommi Laukkanen
 
 tommi.s.e.laukka...@gmail.com wrote:
 
 I was talking with mikkopa and he suggested we should create two tables to
 cover AssetBase to solve this issue properly. Namely AssetMetadata for
 metadata information and AssetData for blobs to avoid situation where we end
 up accessing also the blob data just to read metadata.
 
 I was hoping not to have to do that.
 
 It should be straightforward to support the current
 AssetBase/AssetMetadata composition in the existing OpenSim data
 layers, but as sdague warned me earlier, by mapping multiple classes
 to one table I was entering a world of pain. Seems that's exactly
 what's happening with NHibernate.
 
 The reason I introduced the AssetMetadata class is to supply metadata
 information only for some requests that Cable Beach, the new asset
 server, supports. Now I realize that this was probably a premature
 optimization.
 
 Instead of modifying the DB schema, we could have AssetBase inherit
 from AssetMetadata, as I outlined before[1]. Alternatively, we could
 get rid of AssetMetadata altogether and store everything in AssetBase
 as before, splitting out the metadata sometime in the future when a
 use case warrants it.
 
 What do you think?
 
 Thanks,
 Mike
 
 
 [1] https://lists.berlios.de/pipermail/opensim-dev/2009-February/004918.html
 
 
 
 
 
 
 ___
 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] Please do not revert fixes without careful comtemplation

2009-02-16 Thread Melanie
No. Terrain images are textures. They are assets referring to jp2 
streams. That makes them textures. And, AFAIK, all other assets are 
text.

Melanie

Charles Krinke wrote:
 I am so sorry that we are having communications difficulties.
 
 Terrain Images, are, I believe, neither textual nor text.
 
 That was just an example.
 
 The point is that we need to be careful and consider all the various assets 
 which include a lot more then textures and scripts.
 
 Charles
 
 
 
 
 
 From: Melanie mela...@t-data.com
 To: opensim-dev@lists.berlios.de
 Sent: Monday, February 16, 2009 8:23:16 AM
 Subject: Re: [Opensim-dev] Please do not revert fixes without careful 
 comtemplation
 
 Hello,
 
 that was a typo. The correct word was textual. All asset types 
 besides textures are text.
 
 Melanie
 
 Charles Krinke wrote:
 Sorry, the other assets are not just small texture data. We have 
 terrainImages, amongst other things.
 
 Our assets table in OpenSim contains lots of things including the infamouse 
 blank, so lets look at it in total and not just from the script viewpoint. 
 
 Course with scripts themselves, we have every edited version of every edited 
 script in addition to every change of every other asset complicating the 
 problem.
 
 Charles
 
 
 
 
 
 From: Melanie mela...@t-data.com
 To: opensim-dev@lists.berlios.de
 Sent: Monday, February 16, 2009 4:44:56 AM
 Subject: Re: [Opensim-dev] Please do not revert fixes without careful 
 comtemplation
 
 Again, I'd like to stress that I believe this is too dangerous to do 
 for anything other than textures.
 It is also not really needed for things other than textures, since 
 the other assets are comparatively small, textural data.
 
 I would not want to risk even the smallest chance of a hash 
 collision on script source.
 
 Melanie
 
 Stefan Andersson wrote:
 Coming in a bit from the side here,
 
  
 
 we have, for some time, discussed to separate out the binary blog out of 
 the metadata for an entirely different reason, namely to be able to weed 
 out binary duplicates.
 
 
 If there was a way for us to separate out the binary parts, into something 
 like 'binaryassetId, hashData[256], binarydata' and then just have the 
 asset table referencing that row, I think it would help a lot.
  
 
 I realize it's a separate discussion, just chipping in my two cents.
 
 
 Best regards,
 Stefan Andersson
 Tribal Media AB
 
 
 
  
 
 
 Date: Sat, 14 Feb 2009 17:49:22 +0200
 From: tommi.s.e.laukka...@gmail.com
 To: mma...@gmail.com
 CC: opensim-dev@lists.berlios.de
 Subject: Re: [Opensim-dev] Please do not revert fixes without careful 
 comtemplation
 
 
 Hello,
  
 On second though we could keep the current structure and expose all fields 
 also through AssetBase properties. Then we could save / load the AssetBase 
 with nhibernate as a single object and leave out the Metadata  property 
 from NHibernate mapping. Does this sound good?
  
 regards,
 Tommi
 
 
 On Sat, Feb 14, 2009 at 5:06 PM, Mike Mazur mma...@gmail.com wrote:
 
 Hi,
 
 On Sat, Feb 14, 2009 at 4:05 PM, Tommi Laukkanen
 
 tommi.s.e.laukka...@gmail.com wrote:
 
 I was talking with mikkopa and he suggested we should create two tables to
 cover AssetBase to solve this issue properly. Namely AssetMetadata for
 metadata information and AssetData for blobs to avoid situation where we 
 end
 up accessing also the blob data just to read metadata.
 
 I was hoping not to have to do that.
 
 It should be straightforward to support the current
 AssetBase/AssetMetadata composition in the existing OpenSim data
 layers, but as sdague warned me earlier, by mapping multiple classes
 to one table I was entering a world of pain. Seems that's exactly
 what's happening with NHibernate.
 
 The reason I introduced the AssetMetadata class is to supply metadata
 information only for some requests that Cable Beach, the new asset
 server, supports. Now I realize that this was probably a premature
 optimization.
 
 Instead of modifying the DB schema, we could have AssetBase inherit
 from AssetMetadata, as I outlined before[1]. Alternatively, we could
 get rid of AssetMetadata altogether and store everything in AssetBase
 as before, splitting out the metadata sometime in the future when a
 use case warrants it.
 
 What do you think?
 
 Thanks,
 Mike
 
 
 [1] https://lists.berlios.de/pipermail/opensim-dev/2009-February/004918.html
 
 
 
 
 
 
 ___
 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

Re: [Opensim-dev] Please do not revert fixes without careful comtemplation

2009-02-16 Thread Melanie
Yes, I did forget sounds. Probably because they never reached 
critical mass on any system I have anything to do with. Though, a 
lot seem to exist, judged by the number of gestures.
As for images, I call them all textures, because any image could 
be used as a texture. They are all jp2 steams, so even though they 
may have a different purpose from covering prims, they are 
technically identical in storage format and type of content, and 
would be handled the same.

Melanie

Justin Clark-Casey wrote:
 Melanie wrote:
 No. Terrain images are textures. They are assets referring to jp2 
 streams. That makes them textures. And, AFAIK, all other assets are 
 text.
 
 Other non-text assets are images that aren't textures and sounds.
 
 
 Melanie
 
 Charles Krinke wrote:
 I am so sorry that we are having communications difficulties.

 Terrain Images, are, I believe, neither textual nor text.

 That was just an example.

 The point is that we need to be careful and consider all the various assets 
 which include a lot more then textures and scripts.

 Charles




 
 From: Melanie mela...@t-data.com
 To: opensim-dev@lists.berlios.de
 Sent: Monday, February 16, 2009 8:23:16 AM
 Subject: Re: [Opensim-dev] Please do not revert fixes without careful 
 comtemplation

 Hello,

 that was a typo. The correct word was textual. All asset types 
 besides textures are text.

 Melanie

 Charles Krinke wrote:
 Sorry, the other assets are not just small texture data. We have 
 terrainImages, amongst other things.

 Our assets table in OpenSim contains lots of things including the 
 infamouse blank, so lets look at it in total and not just from the 
 script viewpoint. 

 Course with scripts themselves, we have every edited version of every 
 edited script in addition to every change of every other asset 
 complicating the problem.

 Charles




 
 From: Melanie mela...@t-data.com
 To: opensim-dev@lists.berlios.de
 Sent: Monday, February 16, 2009 4:44:56 AM
 Subject: Re: [Opensim-dev] Please do not revert fixes without careful 
 comtemplation

 Again, I'd like to stress that I believe this is too dangerous to do 
 for anything other than textures.
 It is also not really needed for things other than textures, since 
 the other assets are comparatively small, textural data.

 I would not want to risk even the smallest chance of a hash 
 collision on script source.

 Melanie

 Stefan Andersson wrote:
 Coming in a bit from the side here,

  

 we have, for some time, discussed to separate out the binary blog out of 
 the metadata for an entirely different reason, namely to be able to weed 
 out binary duplicates.


 If there was a way for us to separate out the binary parts, into 
 something like 'binaryassetId, hashData[256], binarydata' and then just 
 have the asset table referencing that row, I think it would help a lot.
  

 I realize it's a separate discussion, just chipping in my two cents.


 Best regards,
 Stefan Andersson
 Tribal Media AB



  


 Date: Sat, 14 Feb 2009 17:49:22 +0200
 From: tommi.s.e.laukka...@gmail.com
 To: mma...@gmail.com
 CC: opensim-dev@lists.berlios.de
 Subject: Re: [Opensim-dev] Please do not revert fixes without careful 
 comtemplation


 Hello,
  
 On second though we could keep the current structure and expose all 
 fields also through AssetBase properties. Then we could save / load the 
 AssetBase with nhibernate as a single object and leave out the Metadata  
 property from NHibernate mapping. Does this sound good?
  
 regards,
 Tommi


 On Sat, Feb 14, 2009 at 5:06 PM, Mike Mazur mma...@gmail.com wrote:

 Hi,

 On Sat, Feb 14, 2009 at 4:05 PM, Tommi Laukkanen

 tommi.s.e.laukka...@gmail.com wrote:

 I was talking with mikkopa and he suggested we should create two tables 
 to
 cover AssetBase to solve this issue properly. Namely AssetMetadata for
 metadata information and AssetData for blobs to avoid situation where we 
 end
 up accessing also the blob data just to read metadata.
 I was hoping not to have to do that.

 It should be straightforward to support the current
 AssetBase/AssetMetadata composition in the existing OpenSim data
 layers, but as sdague warned me earlier, by mapping multiple classes
 to one table I was entering a world of pain. Seems that's exactly
 what's happening with NHibernate.

 The reason I introduced the AssetMetadata class is to supply metadata
 information only for some requests that Cable Beach, the new asset
 server, supports. Now I realize that this was probably a premature
 optimization.

 Instead of modifying the DB schema, we could have AssetBase inherit
 from AssetMetadata, as I outlined before[1]. Alternatively, we could
 get rid of AssetMetadata altogether and store everything in AssetBase
 as before, splitting out the metadata sometime in the future when a
 use case warrants it.

 What do you think?

 Thanks,
 Mike


 [1] 
 https://lists.berlios.de/pipermail/opensim-dev/2009-February/004918

Re: [Opensim-dev] Please do not revert fixes without careful comtemplation

2009-02-16 Thread Melanie
And that I am in 100% agreement on.

Melanie

Charles Krinke wrote:
 Well, it really doesnt matter what one calls them. Binary data, text, 
 whatever.
 
 The point is that we have a number of issues with our assets table in OpenSim 
 that a bit of thought would help.
 
 1. We have a significant number of assets whose name is blank that are 
 created with a default constructor. And I suspect are never accessible.
 2. We have a significant number of assets of each and every edit of terrain, 
 where only the very last one is accessible.
 3. We have a significant number of assets of each and every text edit for 
 each and every textual assets. Where only the last one should be accessible.
 
 Its a bit like collecting every scrap of paper ever written with either text 
 or binary glyphs and putting them in a big filing cabinet.
 
 After a while, finding the ones that are interesting in a timely manner 
 starts to get a little challenging.
 
 Charles
 
 
 
 
 
 From: Melanie mela...@t-data.com
 To: opensim-dev@lists.berlios.de
 Sent: Monday, February 16, 2009 4:43:53 PM
 Subject: Re: [Opensim-dev] Please do not revert fixes without careful 
 comtemplation
 
 Yes, I did forget sounds. Probably because they never reached 
 critical mass on any system I have anything to do with. Though, a 
 lot seem to exist, judged by the number of gestures.
 As for images, I call them all textures, because any image could 
 be used as a texture. They are all jp2 steams, so even though they 
 may have a different purpose from covering prims, they are 
 technically identical in storage format and type of content, and 
 would be handled the same.
 
 Melanie
 
 Justin Clark-Casey wrote:
 Melanie wrote:
 No. Terrain images are textures. They are assets referring to jp2 
 streams. That makes them textures. And, AFAIK, all other assets are 
 text.
 
 Other non-text assets are images that aren't textures and sounds.
 
 
 Melanie
 
 Charles Krinke wrote:
 I am so sorry that we are having communications difficulties.

 Terrain Images, are, I believe, neither textual nor text.

 That was just an example.

 The point is that we need to be careful and consider all the various 
 assets which include a lot more then textures and scripts.

 Charles




 
 From: Melanie mela...@t-data.com
 To: opensim-dev@lists.berlios.de
 Sent: Monday, February 16, 2009 8:23:16 AM
 Subject: Re: [Opensim-dev] Please do not revert fixes without careful 
 comtemplation

 Hello,

 that was a typo. The correct word was textual. All asset types 
 besides textures are text.

 Melanie

 Charles Krinke wrote:
 Sorry, the other assets are not just small texture data. We have 
 terrainImages, amongst other things.

 Our assets table in OpenSim contains lots of things including the 
 infamouse blank, so lets look at it in total and not just from the 
 script viewpoint. 

 Course with scripts themselves, we have every edited version of every 
 edited script in addition to every change of every other asset 
 complicating the problem.

 Charles




 
 From: Melanie mela...@t-data.com
 To: opensim-dev@lists.berlios.de
 Sent: Monday, February 16, 2009 4:44:56 AM
 Subject: Re: [Opensim-dev] Please do not revert fixes without careful 
 comtemplation

 Again, I'd like to stress that I believe this is too dangerous to do 
 for anything other than textures.
 It is also not really needed for things other than textures, since 
 the other assets are comparatively small, textural data.

 I would not want to risk even the smallest chance of a hash 
 collision on script source.

 Melanie

 Stefan Andersson wrote:
 Coming in a bit from the side here,

  

 we have, for some time, discussed to separate out the binary blog out of 
 the metadata for an entirely different reason, namely to be able to weed 
 out binary duplicates.


 If there was a way for us to separate out the binary parts, into 
 something like 'binaryassetId, hashData[256], binarydata' and then just 
 have the asset table referencing that row, I think it would help a lot.
  

 I realize it's a separate discussion, just chipping in my two cents.


 Best regards,
 Stefan Andersson
 Tribal Media AB



  


 Date: Sat, 14 Feb 2009 17:49:22 +0200
 From: tommi.s.e.laukka...@gmail.com
 To: mma...@gmail.com
 CC: opensim-dev@lists.berlios.de
 Subject: Re: [Opensim-dev] Please do not revert fixes without careful 
 comtemplation


 Hello,
  
 On second though we could keep the current structure and expose all 
 fields also through AssetBase properties. Then we could save / load the 
 AssetBase with nhibernate as a single object and leave out the Metadata  
 property from NHibernate mapping. Does this sound good?
  
 regards,
 Tommi


 On Sat, Feb 14, 2009 at 5:06 PM, Mike Mazur mma...@gmail.com wrote:

 Hi,

 On Sat, Feb 14, 2009 at 4:05 PM, Tommi Laukkanen

 tommi.s.e.laukka...@gmail.com wrote:

 I was talking with mikkopa and he suggested

Re: [Opensim-dev] Please do not revert fixes without careful comtemplation

2009-02-14 Thread Tommi Laukkanen
Hello,

On second though we could keep the current structure and expose all fields
also through AssetBase properties. Then we could save / load the AssetBase
with nhibernate as a single object and leave out the Metadata  property from
NHibernate mapping. Does this sound good?

regards,
Tommi

On Sat, Feb 14, 2009 at 5:06 PM, Mike Mazur mma...@gmail.com wrote:

 Hi,

 On Sat, Feb 14, 2009 at 4:05 PM, Tommi Laukkanen
 tommi.s.e.laukka...@gmail.com wrote:
  I was talking with mikkopa and he suggested we should create two tables
 to
  cover AssetBase to solve this issue properly. Namely AssetMetadata for
  metadata information and AssetData for blobs to avoid situation where we
 end
  up accessing also the blob data just to read metadata.

 I was hoping not to have to do that.

 It should be straightforward to support the current
 AssetBase/AssetMetadata composition in the existing OpenSim data
 layers, but as sdague warned me earlier, by mapping multiple classes
 to one table I was entering a world of pain. Seems that's exactly
 what's happening with NHibernate.

 The reason I introduced the AssetMetadata class is to supply metadata
 information only for some requests that Cable Beach, the new asset
 server, supports. Now I realize that this was probably a premature
 optimization.

 Instead of modifying the DB schema, we could have AssetBase inherit
 from AssetMetadata, as I outlined before[1]. Alternatively, we could
 get rid of AssetMetadata altogether and store everything in AssetBase
 as before, splitting out the metadata sometime in the future when a
 use case warrants it.

 What do you think?

 Thanks,
 Mike


 [1]
 https://lists.berlios.de/pipermail/opensim-dev/2009-February/004918.html

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


Re: [Opensim-dev] Please do not revert fixes without careful comtemplation

2009-02-13 Thread Tommi Laukkanen
Here is the mantis in question:
http://opensimulator.org/mantis/view.php?id=3122

regards,
Tommi

On Fri, Feb 13, 2009 at 7:25 PM, Dahlia Trimble dahliatrim...@gmail.comwrote:

 Is there a specific commit or mantis which this is addressing? I'm not
 aware of which events your message applies to, but I can say in general that
 I've only seen a code revert when the original changes  cripple
 functionality for other users or imposes a needless barrier on further
 development, and then the revert only happens after consultation with others
 had occurred.
 This is also a fast moving project with many modifications made to the
 source tree from many authors. Usually if a revert is required it needs to
 happen quickly otherwise it becomes increasingly difficult to restore the
 code back to a condition where it would be had the changes not been applied.
 If the author of the changes had not been available at the time of the
 decision to revert then notes are added to the mantis containing the patches
 explaining the situation to the author.

   On Fri, Feb 13, 2009 at 8:12 AM, Tommi Laukkanen 
 tommi.s.e.laukka...@gmail.com wrote:

   Dear all
 If you decide to revert fixes the least you can do is to look into them in
 detail and run the unit tests to make sure that the revert does not make
 situation worse.

 This is also part of mutual respect between developers. Some of us are new
 in the project. Some of us are inexperienced. But all of us have intellect
 and feelings. Optimally if you find a problem which does not cause problems
 in the production it is best that the person in blame is given advice and
 gets to fix the issue himself.

 This is a large project and we should appreciate everyone who contributes.
 Motivation is a fragile thing and we should give our peers all the courtesy
 we can. Let us make the community more enjoyable to everyone.

 sincerely,
 Tommi

 ___
 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] Please do not revert fixes without careful comtemplation

2009-02-13 Thread Justin Clark-Casey
Let us assume the best of each other and see what mikem has to say about this 
first.

We should look to resolve any issues like this amicably.


Tommi Laukkanen wrote:
 Here is the mantis in question: 
 http://opensimulator.org/mantis/view.php?id=3122
  
 regards,
 Tommi
 
 On Fri, Feb 13, 2009 at 7:25 PM, Dahlia Trimble dahliatrim...@gmail.com 
 mailto:dahliatrim...@gmail.com wrote:
 
 Is there a specific commit or mantis which this is addressing? I'm
 not aware of which events your message applies to, but I can say in
 general that I've only seen a code revert when the original changes
  cripple functionality for other users or imposes a needless barrier
 on further development, and then the revert only happens after
 consultation with others had occurred.
 
 This is also a fast moving project with many modifications made to
 the source tree from many authors. Usually if a revert is required
 it needs to happen quickly otherwise it becomes increasingly
 difficult to restore the code back to a condition where it would be
 had the changes not been applied. If the author of the changes had
 not been available at the time of the decision to revert then notes
 are added to the mantis containing the patches explaining the
 situation to the author.
 
 On Fri, Feb 13, 2009 at 8:12 AM, Tommi Laukkanen
 tommi.s.e.laukka...@gmail.com
 mailto:tommi.s.e.laukka...@gmail.com wrote:
 
 Dear all
 
 If you decide to revert fixes the least you can do is to look
 into them in detail and run the unit tests to make sure that the
 revert does not make situation worse.
  
 This is also part of mutual respect between developers. Some of
 us are new in the project. Some of us are inexperienced. But all
 of us have intellect and feelings. Optimally if you find a
 problem which does not cause problems in the production it is
 best that the person in blame is given advice and gets to fix
 the issue himself.
  
 This is a large project and we should appreciate everyone who
 contributes. Motivation is a fragile thing and we should give
 our peers all the courtesy we can. Let us make the community
 more enjoyable to everyone.
  
 sincerely,
 Tommi
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de mailto:Opensim-dev@lists.berlios.de
 https://lists.berlios.de/mailman/listinfo/opensim-dev
 
 
 
 ___
 Opensim-dev mailing list
 Opensim-dev@lists.berlios.de mailto: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


-- 
justincc
Justin Clark-Casey
http://justincc.wordpress.com
___
Opensim-dev mailing list
Opensim-dev@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/opensim-dev


Re: [Opensim-dev] Please do not revert fixes without careful comtemplation

2009-02-13 Thread Mike Mazur
Hello,

On Sat, Feb 14, 2009 at 1:12 AM, Tommi Laukkanen
tommi.s.e.laukka...@gmail.com wrote:
 If you decide to revert fixes the least you can do is to look into them in
 detail and run the unit tests to make sure that the revert does not make
 situation worse.

 This is also part of mutual respect between developers. Some of us are new
 in the project. Some of us are inexperienced. But all of us have intellect
 and feelings. Optimally if you find a problem which does not cause problems
 in the production it is best that the person in blame is given advice and
 gets to fix the issue himself.

 This is a large project and we should appreciate everyone who contributes.
 Motivation is a fragile thing and we should give our peers all the courtesy
 we can. Let us make the community more enjoyable to everyone.

First, let me apologize for any disrespect you feel, it's definitely
unintentional.

Second, I need to apologize for ignoring the NHibernate unit tests. My
testing script runs whatever is in .nant/local.include and
.nant/bamboo.build, and it appears OpenSim.Data.NHibernate.Tests.dll
is listed in neither of those. Once the NHibernate tests pass, they
should probably be included. Of course this is no excuse for not
looking for the NHibernate tests sooner.

Finally, you may notice in the commit message that the patch came from
another contributor attached to
http://opensimulator.org/mantis/view.php?id=3080 who was having issues
with NHibernate on startup. I believe this qualifies as a problem in
production. The patch fixed that issue. Naturally, had I run the tests
like I should have, I would have noticed they fail, and left a comment
for the author of the patch accordingly.

Please don't regard this as a personal attack. In fact, the commit of
the patch was mainly in response to
http://opensimulator.org/mantis/view.php?id=3080 rather than imposing
my fix to http://opensimulator.org/mantis/view.php?id=3122.

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


Re: [Opensim-dev] Please do not revert fixes without careful comtemplation

2009-02-13 Thread Tommi Laukkanen
Hello Mike,

Thank you for your professional reply. I have tried to reach you in irc
immediately after you first commented the mantis but we seem to be in
different time zones.

The NHibernate unit tests are not in the build as the system is still in
experimental state. We have not tried to push them into build yet to avoid
hindering the OpenSim development before there is clear indication that
NHibernate storage is complete and mature enough to be used in production
systems. Currently we are intentionally playing catchup with rest of the
systems.

I was talking with mikkopa and he suggested we should create two tables to
cover AssetBase to solve this issue properly. Namely AssetMetadata for
metadata information and AssetData for blobs to avoid situation where we end
up accessing also the blob data just to read metadata.  He thought you had
something like this in mind when you moved metadata fields to aggregate
object. This approach would also fix the double id issue which is caused by
the fact that nhibernate to my best knowledge does not support reading
object primary id from aggregate object.

I apologize if I overreacted. It is hard for me to read people and
intentions in online environments.

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