User:Babbage Linden/Office Hours/2008 11 05

From Second Life Wiki
Jump to navigation Jump to search

Transcript of Babbage Linden's office hours:

[7:57] Babbage Linden: afternoon

[7:58] Nock Forager: Hi Babbage

[7:58] Chaley May: hi

[7:58] Chaley May: your from europe?

[7:58] Chaley May: its morning in america

[7:58] Babbage Linden: i'm in brighton

[7:58] Babbage Linden: in the uk

[7:58] Chaley May: im in the uk too

[7:59] Babbage Linden: let me ping the various groups

[7:59] Cale Flanagan: hi

[7:59] Nock Forager: Hi Cale

[8:00] Cale Flanagan: a hole:)

[8:02] Babbage Linden: ok, let's get started

[8:02] Babbage Linden: on the mono front we've fixed an important security issue this week

[8:02] Babbage Linden: which i can't talk about, but it should be in 1.25 server

[8:02] Babbage Linden: that's about it for new scripting code in the works

[8:03] Babbage Linden: we've been doing a lot of thinking about whether we can apply script limits to open spaces too

[8:03] Nock Forager: Applying limits on OS is not hard?

[8:04] Babbage Linden: the framework is currently being used to limit public urls#

[8:04] Chaley May: it would need to be able to decide which scripts are important and need to run

[8:04] Babbage Linden: in http in on the preview grid

[8:04] WolfPup Lowenhar: well if the open space sims use only 1/4 of a processor then wouldn't it be able to use only 1/4 the normal scripts?

[8:04] Babbage Linden: we're looking at extending it to limit script memory

[8:04] Babbage Linden: so the region would have a pool of script memory

[8:04] Babbage Linden: that would be divided between parcels in the same way that prims are allocated

[8:05] Chaley May: what about scripts for payments

[8:05] Chaley May: might they be prevened from working

[8:05] Babbage Linden: and would exhibit the same behaviour as prims when the limits are met

[8:05] Chaley May: when they are most needed

[8:05] Babbage Linden: you might not be able to rez an object because there aren't enough prims available

[8:06] Babbage Linden: or because there isn't enough script memory available for the scripts inside

[8:06] Babbage Linden: it's been needed in second life for a long time

[8:06] Babbage Linden: as currently you can keep adding scripts until the simulator starts swapping

[8:06] Babbage Linden: which badly impacts the performance of all the regions on the host

[8:06] WolfPup Lowenhar: i thought OS sims were strictly ment for resedentual

[8:06] Babbage Linden: as regions move between hosts

[8:07] Babbage Linden: you can have your region run fine one day

[8:07] Zep Palen: Do we just drop our 10 cents when we want ? Or are there some management of the questions ?

[8:07] Babbage Linden: and then badly the next when it happens to be running on a host that has too many scripts

[8:07] Babbage Linden: and is causing the host to swap

[8:07] Babbage Linden: it's even easier to have this situation with open spaces

[8:07] Babbage Linden: as you have 16 regions on the same host

[8:08] Babbage Linden: so the memory is shared between more regions

[8:08] Babbage Linden: and there's a greater chance that someone on your host will be using too much memory

[8:08] Babbage Linden: so, this is something we've been planning for a long time

[8:08] Babbage Linden: but we may give it a higher priority now that we're having even worse problems with open spaces

[8:09] Babbage Linden: a nice benefit of script memory pools is that mono scripts would be able to use as much memory as is available

[8:09] Babbage Linden: so, if you have a large parcel

[8:09] Babbage Linden: you could have a single script

[8:09] Babbage Linden: which requests a large amount of memory

[8:10] Babbage Linden: instead of being limited to 64KB

[8:10] Chaley May: that sounds good

[8:10] Babbage Linden: which I know a lot of scripters would like to see

[8:10] WolfPup Lowenhar: what if you build say a house that has mutiple scripts running in it?

[8:10] Babbage Linden: really large scripts wouldn't be easy to move around

[8:10] Chaley May: but perfect for severs

[8:10] Chaley May: servers

[8:10] Babbage Linden: as they would create a lot of network traffic and serilalized data

[8:10] Imaze Rhiano: any estimates how much memory would be available in normal class 5 server (not open space) 512 sqm parcel?

[8:11] Chaley May: which dont need to move

[8:11] Babbage Linden: but if you have a static script that sits in the region

[8:11] Babbage Linden: it wouldn't be a problem

[8:11] Babbage Linden: we're currently running some analysis of the current memory usage

[8:11] WolfPup Lowenhar: ok so that would not afect people that built say houses that have mutiple window titning scripts?

[8:11] Babbage Linden: we want to know the 50th, 95th and 99th %iles

[8:12] Babbage Linden: so we can pick values that won't impact many people on full sims

[8:12] Babbage Linden: then we'll work out good limits from there and the available memory

[8:12] Babbage Linden: full regions on class 5 sims get about 800MB each

[8:13] Babbage Linden: for everything, including scripts, physics and object transport and updates

[8:13] Babbage Linden: so we also need to work out how the script memory budget would impact the other systems

[8:13] Babbage Linden: there's lots of measurement and discussion to be done before we come up with numbers

[8:14] Babbage Linden: but that's most of the work at this point

[8:14] Babbage Linden: as the framework exists for http in public urls already

[8:14] RAND0M Destiny: QUESTION: regions have different hosts/servers or time? How often is the swapping done? Is this done to balance loads or usage issues or?

[8:14] RAND0M Destiny: or=over

[8:14] Babbage Linden: regions normally stay on the same sims

[8:15] Babbage Linden: unless they get restarted

[8:15] Babbage Linden: due to a rolling restart or a crash or other problem

[8:15] Babbage Linden: they can't be tied to a host as we have hardware failures fairly regularly with ~6000 hosts

[8:15] Arawn Spitteler: Sims being the CPUs in this case, rather than Simulation Servers?

[8:15] RAND0M Destiny: And THEN they would be on a different sim?

[8:16] Babbage Linden: when a software or hardware failure happens a watchdog notices and starts the region on a different sim host

[8:16] RAND0M Destiny: ty

[8:16] Zep Palen: must be the socalled simcrashes

[8:17] Babbage Linden: the changing combinations of hosts makes it difficult to manage performance problems manually

[8:17] Babbage Linden: although you could have a word with your neighbour if they were running many scripts on a parcel

[8:17] Babbage Linden: it's difficult if you don't know who your neighbours are

[8:17] Babbage Linden: or if they keep changing

[8:18] WolfPup Lowenhar: true

[8:18] WolfPup Lowenhar: or if they are not on when you are

[8:18] Cale Flanagan: and its not so easy to find out (no estate script times) for all to read

[8:18] Babbage Linden: yes

[8:18] Arawn Spitteler: Neighbor as in next parcel? They'd feel accused.

[8:18] Babbage Linden: so, i think this work will be a big benefit

[8:19] Babbage Linden: it will improve performance of simulators

[8:19] Chaley May: so if a person tps into a region/parcel thats allready using its max scripts then the avatars scripts will all be offline?

[8:19] Babbage Linden: as they will swap less often

[8:19] Babbage Linden: and it will allow large scripts down the road

[8:19] Imaze Rhiano: any plans to improve general performance tools for scripts and others? like providing script usage time for your own attachments or maybe how much performance problems you hair causes.

[8:19] Babbage Linden: so, as well as dividing some of the script memory by parcel for scripts in world

[8:20] Babbage Linden: we will allocate some script memory for avatars

[8:20] Babbage Linden: on a per avatar basis

[8:20] Babbage Linden: the avatar pool will be constant

[8:20] Malkavyn Eldritch: hell all

[8:20] Babbage Linden: so you will be able to keep your scripts running wherever you go

[8:20] Malkavyn Eldritch: *hello

[8:20] Babbage Linden: if you can tp in to a region

[8:20] Babbage Linden: then your attached scripts will be able to run there

[8:20] Chaley May: wish LL let us store information in other ways than using memory

[8:21] WolfPup Lowenhar: but what if you tp into a place that has a lot of avtars and the script memory for them is maxed?

[8:21] RAND0M Destiny: Huh! Would like the capability like buying and selling Carbon credits in RL ..buying and selling prim/script limits in SL!

[8:21] Babbage Linden: there will be ll* calls to find the available memory

[8:21] Babbage Linden: if you'd like to see how this is likely to work

[8:21] Babbage Linden: play with the http in beta on the preview grid

[8:22] Babbage Linden: scripts can request urls

[8:22] Babbage Linden: and ask for the available urls

[8:22] Babbage Linden: if you make an object that displays the available urls somehow

[8:22] Babbage Linden: then attach it

[8:22] Babbage Linden: or rez it in different parcels

[8:22] Babbage Linden: you'll get a feel for how this is likely to work

[8:22] Babbage Linden: but all of this is in discussion at the moment

[8:23] Babbage Linden: so we haven't started working on it

[8:23] Babbage Linden: or agreed that this is definitely going to happen

[8:23] Babbage Linden: so, that's what we've been up to this week

[8:23] Babbage Linden: in terms of scripting work

[8:24] Babbage Linden: i probably need to go a bit early today

[8:24] Babbage Linden: but has anyone got anything they'd like to talk about?

[8:24] WolfPup Lowenhar: if scripts gould write notecards as well as ered them then information could be stored that way

[8:24] Chaley May: thats why the chat was so fast

[8:24] Chaley May: yes would like to write notecards

[8:24] Babbage Linden: wolf, the way assets work is that every time they change we have to create a new asset with a new id

[8:25] Babbage Linden: so allowing scripts to automatically create assets would be bad news for the asset system

[8:25] Imaze Rhiano: would it be possible to add more complex data structures - like hashtables?

[8:25] WolfPup Lowenhar: even if you just edit the asset?

[8:25] Chaley May: i think you should set up servers to store database for us and make lsl that reads directly from them

[8:25] Chaley May: i hate setting up webpages and mysql

[8:26] Babbage Linden: chaley, that would be a really big new product for us

[8:26] Epictetus Theas: And talk of implementing other scripting languages other than LSL under the new mono framework?

[8:26] Arawn Spitteler: I think servers can be had for a price, or use http-in, on the Beta Grid

[8:26] Chaley May: yes people would pay for it too

[8:26] Babbage Linden: at the moment you can use external web sites

[8:26] Babbage Linden: and there are even people who have set up external web sites especially for acting like lsl data stores

[8:26] Malkavyn Eldritch: what if the notecard existed and then you were just writing data to it?

[8:27] Chaley May: i guess thats why you wouldnt want to do it because you put people out of business :(

[8:27] Arawn Spitteler: Every line added would change the UUID to something new, and forever dedicated.

[8:27] WolfPup Lowenhar: that would be only editing an exisitng asset not creating it

[8:27] Chaley May: but we still need efficient storage

[8:27] Malkavyn Eldritch: um why .. it would just edit the values?

[8:27] Chaley May: and noone would really trust sensitive information to be stored by other people

[8:28] Babbage Linden: wolfpup, editing == creating

[8:28] WolfPup Lowenhar: ok

[8:28] Malkavyn Eldritch: I'm not talking about storing huge db's in there just 5-10 lines of data

[8:28] Malkavyn Eldritch: wow really?

[8:28] Babbage Linden: because we assume assets with the same id don't change

[8:28] Babbage Linden: which allows us to cache assets forever

[8:28] Arawn Spitteler: Each old edition is saved, at the expense of a UUID, and drive space.

[8:28] Malkavyn Eldritch: that sounds very inefficient

[8:29] Arawn Spitteler: Butr, every prim of your hair has a new UUID, every time you cross a sim border.

[8:29] Chaley May: we love storage and want more so we dont have to hog memory storing lots of useless info

[8:29] WolfPup Lowenhar: what if the script say deleted the old one off the servers and then made a new one then?

[8:29] Babbage Linden: malkavyn, it's very efficient

[8:29] Babbage Linden: we need the caching to allow SL to scale

[8:30] Babbage Linden: and then have an asset garbage collector

[8:30] Babbage Linden: that scans references to asset ids

[8:30] Babbage Linden: and deletes assets that aren't referenced

[8:30] Arawn Spitteler: Temprorary Assets might be an idea, saying, "This asset's gonna be gone, next Monday

[8:30] WolfPup Lowenhar: so if we edit a script the uuid changes then?

[8:31] Babbage Linden: yes

[8:31] Babbage Linden: when you click save it creates a new script

[8:31] Babbage Linden: so, you can create a script

[8:31] Grey Tomsen: wow didn't know that

[8:31] Babbage Linden: give a copy to someone

[8:31] Babbage Linden: then change your copy without busting theirs

[8:32] Imaze Rhiano: There has been rumours that string and list functions are slower in Mono than in classic LSL - anyone can confirm or deny those?

[8:32] Malkavyn Eldritch: I would think on the transfer a new UUID would b created

[8:32] Malkavyn Eldritch: *bwe

[8:32] Malkavyn Eldritch: grr.. be

[8:32] Arawn Spitteler: If we want to give something changeable, we give a URL?

[8:32] WolfPup Lowenhar: i though if you cave someone a script it would at that point make a new uuid

[8:32] Babbage Linden: malkavyn, nope, because until the script changes you can share

[8:32] Babbage Linden: you only need to copy on write

[8:32] Babbage Linden: not on transfer

[8:33] Zep Palen: Question: Now that you have added the new detection functions for prims (face etc.). Will you then also concider to make changes to the money event so we can detect which prim/face is payed. This would make it possible to make vending machines with alot lower prims. Especially hair/clothes/skin vendors will be reduced in prims and also save on the resource issue.

[8:34] Arawn Spitteler: So, if you delete incriminating evidence from a notecard, the Porno Police only need to know the UUID of the back edition.

[8:35] Malkavyn Eldritch: Question: some of us for years have requested the ability to change a body item via lsl ... has then been given any thought at all?

[8:35] WolfPup Lowenhar: dang then that means i have a lot of garbage floating around the servers then from moding scripts to work better

[8:35] Malkavyn Eldritch: *this

[8:36] Babbage Linden: wolfpup, it's ok

[8:36] Babbage Linden: don't worry about it ;-)

[8:36] Arawn Spitteler: I think Linden Labs would like an algorhythm, by which to throw things away.

[8:36] Babbage Linden: arawn, that's what the asset garbage collector does

[8:36] Babbage Linden: there is a background process which does the throwing away

[8:37] Babbage Linden: ok, there was a question about other languages

[8:37] Arawn Spitteler: From what CG Says, a thing has to be unreferenced, before it can be archived.

[8:37] Babbage Linden: which we talked about a bit last week

[8:37] WolfPup Lowenhar: i guess theat is why there are some items whe you try to use them and the script have not been use in ages and they no mod ther crash

[8:38] Epictetus Theas: sweet, which languages are on the table for discussion?

[8:38] Malkavyn Eldritch hopes Python

[8:38] Babbage Linden: we have a working internal c# implementation

[8:38] Imaze Rhiano: yay

[8:38] Babbage Linden: and are talking to the opensim devs about making it compatible with what they have

[8:38] Malkavyn Eldritch: oh sweet.. back to the UO coding days

[8:38] Arawn Spitteler: Andrew recommended Python, but C# is the only one I've heard of. Is there a primer for C# or Python?

[8:39] Babbage Linden: python is a lot harder to run in second life

[8:39] Arawn Spitteler: UO?

[8:39] Babbage Linden: it is more dynamic

[8:39] Zep Palen: would say OOP

[8:39] Malkavyn Eldritch: (runuo.com) Ultima Online emu written in C#

[8:39] Babbage Linden: and is harder to sandbox and get running in our environment

[8:39] Babbage Linden: c# will give you most of the things that people have asked for in LSL

[8:39] Malkavyn Eldritch: amen

[8:39] WolfPup Lowenhar: kewl

[8:40] Babbage Linden: arrays, objects, classes, switch statements, exceptions, more primitive types, user defined types

[8:40] Zep Palen: but still the same script memory limits ?

[8:40] Arawn Spitteler: Same Machine

[8:41] Babbage Linden: zep, see the previous discussion about memory lmiits

[8:41] Babbage Linden: you would be able to write a c# script that requested a big memory limit

[8:41] Babbage Linden: and if that memory was available, you would get it

[8:41] WolfPup Lowenhar: actualy if you can compile the script out of world and bring in the object code only then it would be easier to make the scripts mor compact and take less memory

[8:41] Zep Palen: ok. I understand

[8:42] Epictetus Theas: so far, does the internal c# representation optimize bytecode?

[8:42] Chaley May: i think LSL has all it needs except for strage

[8:42] Chaley May: storage

[8:42] Babbage Linden: ok, sorry to cut the discussion short, but i need to head off

[8:43] Imaze Rhiano: bye

[8:43] Zep Palen: thanks for now

[8:43] Epictetus Theas: thanks Babbage!

[8:43] Cale Flanagan: will multiple srcipts act as in c# as project or like parallel programs like today?

[8:43] Grey Tomsen: kk bye

[8:43] Ayumi Cassini: bye bye

[8:43] Babbage Linden: Epictetus, c# is much more optimised than the LSL compiler

[8:43] Nock Forager: Thanks for meeting Babbage.

[8:43] Babbage Linden: hope to see you all next week

[8:43] Babbage Linden: thanks for coming

[8:43] WolfPup Lowenhar: ok tc babbage

[8:43] Chaley May: bye

[8:43] Zep Palen: bye

[8:43] Arawn Spitteler's trying to remember some question: I assume the inventory script compilation is still in progress

[8:44] Babbage Linden: bye!

[8:44] Fake Fitzgerald: thanks Babbage, see you

[8:44] Arawn Spitteler: Hasta la Vista, Babbage