Chat log from the meeting on 2007-11-27

[11:01] Teravus Ousley: new people seem to be less gray to me

[11:01] Neas Bade: yes, agreed

[11:01] Kurt Stringer: Heoo all

[11:02] Kurt Stringer: lol

[11:02] Teravus Ousley: Hai Kurt

[11:02] Justin Clark-Casey: hey kurt

[11:02] Kurt Stringer: hello all

[11:02] Neas Bade: hey

[11:02] Adam Frisby: lo

[11:04] Teravus Ousley: 0x0 textures.. asset server is definately hosed

[11:04] Teravus Ousley:.

[11:04] Adam Frisby: Woot

[11:04] Adam Frisby: Just like the main grid. :D

[11:05] Neas Bade: yeh, we need to get this off of the grid asset server, which is just very broken right now

[11:06] Adam Frisby: Or add in a bit of intelligent caching

[11:06] Adam Frisby: a sim should have a copy of every texture in prims in it

[11:06] Adam Frisby: err on prims

[11:06] Adam Frisby: ditto for common assets, eg the moon / sun, etc.

[11:09] More Wright: is no one talking, or can I just not hear anything?

[11:09] Teravus Ousley: no one is talking

[11:09] Teravus Ousley: we're all changing our appearance :P

[11:09] Adam Johnson: We are telling secrets about you ;)

[11:09] Teravus Ousley:.

[11:09] Adam Frisby: Heh

[11:09] Neas Bade: :)

[11:09] More Wright: ahh cool

[11:10] Adam Frisby: All secrets about me, like how I'm going to completely stack myself on the slopes in Japan this weekend, courtesy of Adam.

[11:10] Adam Frisby: hehe

[11:10] More Wright: you two going sking?

[11:10] Adam Frisby: Yeah

[11:10] More Wright: and the rest of us wasn't invited?

[11:10] Adam Johnson: yeah, gonna hopefully not break my neck. ;)

[11:11] Adam Johnson: You are all welcome anytime. :P

[11:11] Adam Frisby: Well, if your in Japan. hehe.

[11:11] Adam Johnson: Indeed. haha

[11:12] Adam Frisby: Anyway

[11:12] Adam Frisby: Agenda?

[11:12] Neas Bade: I had some proposals on the list

[11:12] Neas Bade: given that Adam J is here, I'd suggest we start with the packet overhead findings the 3Di team found

[11:13] Neas Bade: I think that would be very interesting

[11:13] Adam Johnson: Heh, sure.

[11:13] Teravus Ousley: very reasonable

[11:13] Adam Johnson: Though it is opening a fun topic involving libsl.

[11:13] Neas Bade: opening fun topics is always allowed :)

[11:13] Adam Johnson: Well, do we push on with .3 of libsl, or completely do away with it?

[11:14] Adam Frisby: I had a chat with Adam earlier this evening about that latter option -- having classes of each packets may be a very inefficient way of handling things.

[11:14] Adam Frisby: It might be better to have a: byte[] buildXYZPacket(A, B, C, D); function for every packet.

[11:15] Teravus Ousley: shh, nobody type.. .. my boss is looking over my shoulder.. j/k

[11:16] Adam Frisby: Hehe

[11:16] Adam Johnson: So, I guess the big question on 3DI's end would be, how much work will each option involve.

[11:16] Neas Bade: right

[11:17] Neas Bade: I think the issue that was hit with a previous attempt at 0.3 update was a bunch of fields got marked private that busted opensim

[11:17] Adam Frisby: 90% of libsls codebase is generated procedurally by another application, we should be able to modify that to produce the buildPacket equivilents pretty easily.

[11:18] Adam Frisby: But, there is extra stuff which we use like their layerdata encoder/decoders.

[11:18] Teravus Ousley: They also have 'all' of their packets in one CS file.. _packets.cs

[11:18] More Wright: that is what is built precedurally

[11:18] Adam Johnson: and the openjpeg bits as well.

[11:19] Adam Frisby: True, although I made the suggestion to p0pe about moving their OpenJpeg to a seperate project called OpenJpeg.net or something

[11:19] More Wright: they as far as I know have a application that takes the message_template file and produces the _packet.cs file from it

[11:19] Adam Frisby: since there's more than just libsl using that now

[11:19] Adam Johnson: True

[11:20] Adam Frisby: Hrrm

[11:20] Teravus Ousley: odd, does the message template have enough information to do that?

[11:20] Adam Frisby: These performance issues -- they should be hitting libsl too right?

[11:20] Adam Frisby: Tervaus: yes.

[11:20] Adam Johnson: They are actually..

[11:20] Adam Frisby: libsl might appreciate switching to buildPacket equivilents internally if we can demonstrate a big performance increase.

[11:20] Teravus Ousley wonders what message template they are looking at :P

[11:20] Adam Johnson: I notice these spikes on login/teleports in MovableLife

[11:21] More Wright: Tervaus, the one included with the SL client

[11:21] Adam Frisby: msg_template.msg

[11:21] Adam Frisby: Open it in notepad

[11:21] Teravus Ousley: hmm.. I did.. but it didn't seem to have enough info specifically on packet payloads.

[11:21] Teravus Ousley shrugs..

[11:21] Teravus Ousley: maybe they figured out something..

[11:22] Adam Frisby: We dont use anything more complex than msg_template in opensim itself

[11:22] Teravus Ousley: anyway.. different topic.. back to performance

[11:22] Adam Frisby: we have to figure out the payloads too

[11:23] Adam Johnson: Indeed.

[11:23] Teravus Ousley: so the main bog is not dealing with them as byte arrays the majority of the time?

[11:25] Adam Johnson: The main bog is coming from GC, because we keep creating new packets and never reuse them.

[11:25] Adam Frisby: Hrrm.

[11:25] Adam Frisby: Create a circular list of each packet type for re-use. Mark as "in use" / "not in use"?

[11:25] Adam Johnson: On login the number of packets created is pretty huge.. and if you check out heapbuddy, you can see that the GC is pretty intense at that point.

[11:25] Adam Frisby: after it's been sent, reset the use flag

[11:25] Teravus Ousley: Adam beat me to it :P

[11:26] Adam Frisby: Question: did you guys find any other performance issues while you were profiling?

[11:27] Adam Johnson: So far, that was the only one that we have found.. but I think we need to do some more analyzing.

[11:27] Adam Johnson: and, it would be good to have a custom profiler created...

[11:27] Adam Frisby: I've got one I've got semi-completed, the catch is it's windows-only since it relies on WMI to get profiling information.

[11:27] Adam Johnson: That would still be of use to us I think.

[11:28] Adam Frisby: Alright, I'll send you guys a copy -- it's designed for grid information mainly.

[11:28] Adam Frisby: health / status / etc.

[11:28] Adam Johnson: Okay great, we have been mainly dealing with sandbox, but will be doing some grid tests shortly.

[11:30] Adam Frisby: Alright, well - seems like we should look at re-using rather than disposing of packets

[11:30] Adam Frisby: MW: This is probably something you have the most experience with, how long do you think it will take?

[11:30] Adam Johnson: Yep, I think it will fix a lot of the login cap problems

[11:31] Neas Bade: it would be good to get some statistic counts on packet types being used. Teravus, does the throttling code keep track of that at the moment?

[11:31] Teravus Ousley: It keeps track of only the general types used for throttling

[11:31] Teravus Ousley: .. and only in the amount necessary to make sure the throttles are honored

[11:32] Teravus Ousley lists the throttle types..

[11:32] Adam Frisby: Hrrm, I wouldnt mind seeing that charted, since I think a few of the types (eg land) come in big spikes.

[11:32] Teravus Ousley: Land packets.. wind packets, cloud packets, asset packets, texture packets, task packets, ..

[11:32] Teravus Ousley: Resend packets..

[11:33] Teravus Ousley: You could easily hook a routine to find out how much of which.

[11:34] Neas Bade: if no one else is diving in there, I will. It would be a good excuse to actually get more wrapped up in the throttle code

[11:34] Neas Bade: on a first pass, those statistics will at least show us if there are a few packet types that we could reuse that would save us a lot

[11:34] Teravus Ousley: I'm sure the throttle can also be optimized

[11:34] Teravus Ousley: :D

[11:35] Adam Johnson: We did notice you could cearly see the throttling working when examing the heapbuddy info

[11:35] Adam Johnson: clearly even

[11:36] Adam Frisby: Hrrm.

[11:36] Teravus Ousley: that code is in two parts.. ClientView.cs.. and in ClientView.PacketQueue

[11:36] Adam Frisby: Adam: were these tests done under a Debug or Release version out of curiosity?

[11:36] Teravus Ousley: .. the part in ClientView.PacketQueue is in the method, 'OutPacket'

[11:37] Adam Johnson: version of what?

[11:37] Teravus Ousley: the part in ClientView is in throttle_Timer_Elapsed

[11:37] Adam Frisby: Was it compiled under a debug or release version?

[11:38] Justin Clark-Casey: hi nebadon

[11:38] Adam Johnson: Ah, not sure.. Will ask Johan tomorrow for you though.

[11:38] Teravus Ousley: Hey nebadon. I think the asset server is hosed... if you have not already reset it.

[11:38] Adam Frisby: If it was under Debug, think you could ask him what the performance is like under a Release?

[11:38] Adam Frisby: thanks. :)

[11:38] Nebadon Izumi: i havent looked

[11:38] Nebadon Izumi: i havnet seen textures here in while now

[11:38] Adam Johnson: MW, you there?

[11:38] Nebadon Izumi: its been a few days since ive seen the textures load here

[11:41] Teravus Ousley wonders if we're disecting the clientview code now :D

[11:41] Neas Bade: I am, sorry got distracted :)

[11:42] Adam Johnson: No problem.. So do you have a kind of guestimate of how much work is involved with ditching libsl?

[11:43] Neas Bade: I think that's a confident no

[11:44] Adam Frisby: Heh yeah

[11:44] Nebadon Izumi: neas last week you said we should be using Sqlite over Grid Assets

[11:44] Nebadon Izumi: i did some testing on my grid

[11:44] Nebadon Izumi: and i got the exact same results sith sqlite

[11:44] Neas Bade: really?

[11:44] Neas Bade: interesting

[11:44] Neas Bade: I've not seen any drops with asset_database = sqlite

[11:45] Nebadon Izumi: hmm

[11:45] Adam Frisby: We totally need to make ODE primitive bounciness a opensim.ini parameter

[11:45] Nebadon Izumi: i keep freezing up

[11:46] More Wright: Adam Johnson, am here now?

[11:46] Nebadon Izumi: but as i was saying in grid mode for me i had better results with Grid assets than i did with sqlite

[11:46] Nebadon Izumi: sqlite performance seems uber slow in comparison

[11:46] Adam Johnson: Oh, speaking of Physics. chi11ken and I were discussing possibly replacing basic physics with POS, and making it configurable.

[11:46] Neas Bade: well, there is a different issue there

[11:46] Adam Johnson: I think danx0r had similar thoughts about this.

[11:47] Neas Bade: on my todo list to do some ado.net gutting to get sqlite performance up

[11:47] Nebadon Izumi: i was less likely to see textures with sqlite

[11:47] Neas Bade: I think most of the sqlite perf issues is actually the ado.net layer being slow

[11:47] Nebadon Izumi: im talking when 1000's of prims are in the picture

[11:49] Teravus Ousley: yep. I think we'll also have better luck with everything once we get our draw distance based prim update limitor... however it being like this now is good.. because it gives us a chance to really beat our interfaces to smitherenes with load

[11:49] Adam Frisby: Oh --- quick issue actually.

[11:49] Adam Frisby: I'm still getting "Remote Host Closed Connection" issues with remoting under .NET/Win32

[11:50] Adam Frisby: We need to put a reconnect in on the remoting handler --- DeepThink which is near here keeps dropping off the radar

[11:50] Adam Frisby: although opensim.exe is still there & active

[11:50] Nebadon Izumi: yes

[11:50] Nebadon Izumi: my windows server on my mostly linux grid

[11:50] Nebadon Izumi: either crashes all the time

[11:50] Nebadon Izumi: or is not visible when it is running

[11:51] Optik Philtr: my old sindows server use to do that too till i fixed it

[11:51] More Wright: better yet, lets delete all the grid code, then it will force someone to rewrite it and no mater what I think they would have to make a better job ;)

[11:51] Teravus Ousley: There's also likely an issue with events .. and notifying of children agents.

[11:51] Nebadon Izumi: what did you do to fix it?

[11:51] Nebadon Izumi: lol

[11:51] Optik Philtr: I changed over to a hosted tektonic linux box

[11:51] Nebadon Izumi: oh

[11:52] Adam Frisby: haha MW

[11:52] Nebadon Izumi: lol

[11:52] Adam Frisby: Good idea.

[11:52] Adam Johnson: lol

[11:52] Adam Frisby: I'm still massively in favour of rewriting the grid code.

[11:52] Optik Philtr: like was said earlier there are some documented anomolies with ado.net

[11:52] Adam Frisby: I'd like to revive that topic on the mailing lists.

[11:52] Nebadon Izumi: yea from my testing so far OpenSIM seems much more stable on Linux

[11:52] Optik Philtr: documented as in we can see them regularly

[11:52] Adam Frisby: Nebadon: It's probably because it gets more testing under Linux.

[11:52] Adam Frisby: Still only a few of us using it on Windows

[11:53] Nebadon Izumi: yea I have a 1 windows server

[11:53] Adam Johnson: I agree, and would like to put someone on that task, but the suits just don't understand..

[11:53] Neas Bade: well I kept throwing in my $0.02 on the grid stuff :)

[11:53] Optik Philtr: now i still have my stand alone grid services grid on windows...the huge one

[11:53] Optik Philtr: it has no big issues

[11:53] Nebadon Izumi: yea im speaking about Grid Mode

[11:53] Nebadon Izumi: with windows

[11:53] Nebadon Izumi: standalone it runs great

[11:54] More Wright: a topic that isn't for now, but maybe over the next few months is: now that vs 2008 is released and mono 2.2.6 says c# 3.0 is nearly complete, will swapping to c# 3.0 bring anything useful/ that we would like to use?

[11:54] Nebadon Izumi: 2.2.6

[11:54] Nebadon Izumi: ?

[11:54] Adam Frisby: WCF looks potentially nice.

[11:54] Adam Frisby: LinQ does too

[11:54] Neas Bade: I think we'd have to wait until at least June for that

[11:55] Nebadon Izumi: will there be a free version of 2008?

[11:55] Neas Bade: if it doesn't run on the latest ubuntu, the barrier to run on linux is higher than it should be

[11:55] Nebadon Izumi: thats the question

[11:55] Neas Bade: and we're still on 1.2.4 in latest ubuntu

[11:55] More Wright: 1.2.6

[11:55] Nebadon Izumi: you can downloading the 1.2.5.1 installer from the mono-project website

[11:56] Neas Bade: you can, but then you loose a lot of the other linkage to the system

[11:56] Nebadon Izumi: I did it on Sabayon

[11:56] Neas Bade: breaking package management on Linux is like forcing people into dos prompts on windows

[11:56] Mircea Kitsune: hi

[11:56] Nebadon Izumi: and it seemed to work well

[11:56] More Wright: and yeah there is a free VS 2008 express already, but yeah if 1.2.6 isn't usable yet for most people it will have to wait

[11:57] Adam Frisby: Speaking of VS 2008

[11:57] Nebadon Izumi: is 1.2.6 even available?

[11:57] Adam Frisby: Anyone here have access to VS 2008 Team Edition?

[11:57] Adam Frisby: I've only got Pro

[11:57] Mircea Kitsune: did the meeting just beginned or is ending?

[11:57] Mircea Kitsune: *begin

[11:57] Adam Frisby: Probably ending soonish

[11:57] Adam Frisby: anyway -- anyone have VS 2008 Team Ed?

[11:57] More Wright: nope

[11:58] Adam Frisby: There's a new "Code Review" function in it which helps isolate bad sections of code

[11:58] Kurt Stringer: nope - Im on express edition

[11:58] Adam Johnson: no

[11:58] Adam Frisby: I'd love for someone to run it across the codebase and then post a copy of the report to the mailing list

[11:58] Nebadon Izumi: I dont even see Mono 1.2.6 available for download on the mono-project website

[11:58] More Wright: there is a 90 day trail of the team edition though

[11:58] Neas Bade: I wonder if it is as good as the gramar checker ;)

[11:58] Neas Bade: mono 1.2.6 isn't released yet

[11:58] Adam Frisby: Neas: well it isolates things like needlessly complex functions & classes

[11:59] Adam Frisby: which, if we at least look at, might be able to nail down some potentially buggy areas of the code.

[11:59] More Wright: Neas Bade, last time I looked mono 1.2.6 was set for a begining of december release

[11:59] Optik Philtr thinks it should be run on the client

[12:00] Kurt Stringer: interesting conversation today - I have to leave now = bye everyone

[12:00] Neas Bade: yeh, got to start diving into packet code

[12:00] Teravus Ousley: bye

[12:00] Mircea Kitsune: too bad i missed it :( anyway, like i said on irc, ill do some teleporting tests soon

[12:00] Justin Clark-Casey: bye kurt

[12:00] Teravus Ousley: It's not that scary really

[12:00] Mircea Kitsune: see ya

[12:00] More Wright: bye

[12:00] Teravus Ousley: .. Just have to understand what it's doing :D

[12:00] Adam Frisby: Yeah I should be heading to bed

[12:01] Adam Johnson: Me too

[12:01] Adam Johnson: Ugh

[12:01] Adam Frisby: need to be up by lunch today. heh, 5AM already

[12:01] Adam Johnson: ditto

[12:01] Teravus Ousley: .. the BlockingQueue is keeping the clientloop thread from sucking up resources.. and managing the traffing inbound and outbound

[12:01] Adam Frisby: Alright, I'll see you guys around later. :)

[12:01] Teravus Ousley: take care Adam :D

[12:01] Teravus Ousley: sleep well

[12:02] Adam Johnson: I'll see you guys tomorrow in irc. :)

[12:02] Teravus Ousley: when there's packets in PacketQueue(the blocking queue).. the clientloop runs

[12:02] Adam Johnson: MW, mind helping us a bit.. we may be starting the process of geting rid of libsl

[12:03] Mircea Kitsune: well im leaving back to my sim now (tries a teleport) see you around :)

[12:04] More Wright: Adam, yeah I'll help all I can, I'm a bit pressed for free time the last few months and is likely to last until january at least but I'll help where I can

[12:04] Adam Johnson: Okay thanks. :)

[12:05] Adam Johnson: Anways, talk to you guys later.

[12:05] Justin Clark-Casey: chhers

[12:08] More Wright: yeah I need to go too, see you in irc

[12:08] Teravus Ousley: k, take care

[12:08] Teravus Ousley poofs also