User:Enkidu Linden/Office Hours/2010-05-27

From Second Life Wiki
Jump to navigation Jump to search

List of Attendees

Transcript

[11:04] Enkidu Linden: hi everyone!
[11:12] Enkidu Linden: hey there
[11:12] Morgaine Dinova: Hi Enki!
[11:13] Enkidu Linden: looks like i left last week's sign up a bit too long
[11:13] Morgaine Dinova: Oh dear, lol
[11:13] Enkidu Linden: oh cool pumpkin!
[11:13] Xugu Madison: Hi, sorry I'm late!
[11:14] Morgaine Dinova: Hiya Xu!
[11:14] Enkidu Linden: s'ok
[11:14] Xugu Madison: how are you two doing?
[11:14] Morgaine Dinova: Yeah that's a nice av of Xugu's
[11:14] Enkidu Linden: i have the same problem with sitting
[11:14] Xugu Madison: Grendel's Children, would ya believe. Love their stuff, it can be a little mixed, but it's all cheap :)
[11:15] Enkidu Linden: cool
[11:15] Morgaine Dinova: I'm busy with some local work, just thought I'd come listen. But since it's kinda empty, I guess I'd better contribute :P
[11:15] Enkidu Linden: i have a bunch of stuff from grendel's
[11:15] Morgaine Dinova: I'll advertise in Groupies
[11:15] Enkidu Linden: well i was going to chat about caching this week
[11:15] Xugu Madison: Still trying to make things go faster, eh, Enkidu? :)
[11:16] Enkidu Linden: always a goal!
[11:16] Xugu Madison: World's only speed-demon jellyfish
[11:17] Enkidu Linden: i have sub-light tentacles
[11:17] Xugu Madison: that's.. good....
[11:18] Enkidu Linden: good for getting a beer during commercial breaks
[11:18] Enkidu Linden: caching's kind of a big subject
[11:19] Xugu Madison: hey Robin!
[11:19] Robin Cornelius: Hi
[11:19] Morgaine Dinova: Hi Robin :-)
[11:20] Enkidu Linden: hi there!
[11:20] Morgaine Dinova: So what are the various bits in the caching puzzle?
[11:20] Enkidu Linden: they are many and sundry
[11:21] Enkidu Linden: actually, we recently released some changes to caching on secondlife.com
[11:21] Enkidu Linden: so i'll start there
[11:21] Morgaine Dinova: Cool
[11:21] Enkidu Linden: oh hey, before i begin
[11:21] Enkidu Linden: last time there was some discussion about search problems
[11:22] Enkidu Linden: i was hearing some prety concerning stuff, so i talked to some people about it
[11:22] Enkidu Linden: that kicked off a rather wide internal discussion about search
[11:23] Enkidu Linden: culminating in this: http://blogs.secondlife.com/community/technology/blog/2010/05/25/a-step-forward-for-second-life-search
[11:23] Morgaine Dinova: Good :-)
[11:23] Morgaine Dinova: Hi Dahlia :-)
[11:23] Dahlia Trimble: hi :)
[11:25] Xugu Madison: Good to see search improvements :)
[11:25] Enkidu Linden: it turns out that there are a couple of wiki articles that should help explain how to deal with the dramatic changes to search recently
[11:25] Enkidu Linden: http://wiki.secondlife.com/wiki/Linden_Lab_Official:Search_Guidelines
[11:25] Enkidu Linden: http://wiki.secondlife.com/wiki/Linden_Lab_Official:Search_FAQ
[11:25] Robin Cornelius: Will be interesting to see the effect of search changes on some of the merchants who have seen a massive decrease in traffic, if that goes back up then thats a metric that things might be working somewhat again
[11:26] Dahlia Trimble: search is changing again?
[11:26] Enkidu Linden: yeah, i agree
[11:26] Robin Cornelius: the GSA was upgraded and some other tweaks i believe Dahlia
[11:27] Enkidu Linden: they're still working on a number of things related to search
[11:27] Enkidu Linden: as the blog post describes
[11:27] Dahlia Trimble: GSA?
[11:27] Robin Cornelius: Google Search Aplicance
[11:27] Enkidu Linden: google search appliances
[11:27] Dahlia Trimble: ah
[11:27] Enkidu Linden: this is part of why there was such a big shift
[11:28] Dahlia Trimble: dunno if it's related to search or not, but I've had a slight uptick in sales in the last couple weeks
[11:28] Robin Cornelius: i would also imagine that the amount ot text to weight searchs on, is not a lot, which makes ranking a real difficulity
[11:28] Enkidu Linden: yeah, that is very true
[11:29] Enkidu Linden: most people like searching with google, but we forget that the quality of google's search result has steadily improved over ten years
[11:30] Enkidu Linden: in a sense, we transitioned everyone across those improvements all at once
[11:30] Robin Cornelius: google also use extra metrics, click throughs and links from other sites etc, all lacking here somewhat, with dwell being too easy to game
[11:30] Enkidu Linden: yep
[11:30] Enkidu Linden: those are real issues for us in terms of tuning the GSAs
[11:31] Enkidu Linden: but i don't know much about it myself
[11:32] Enkidu Linden: at any rate, just wanted to let you all know you were heard
[11:32] Robin Cornelius: ;-)
[11:32] Enkidu Linden: ok, so, caching!
[11:33] Dahlia Trimble: I miss the old search UI, I used to be able to search on partial names for people
[11:33] Morgaine Dinova: How is GSA integrated into SL? The regular Google uses spiders to examine the whole web and then ranks that data, but how would a Google appliance access your non-web stuff, like groups, people, etc?
[11:33] Dahlia Trimble: which is really helpful if I cant remember the exact spelling
[11:33] Robin Cornelius: just parse the database and inject
[11:34] Morgaine Dinova: The GSA trawls your database?
[11:34] Robin Cornelius: i would imagine you export what you want and import it
[11:34] Enkidu Linden: that's a great question. i believe we create documents for the gsas to crawl
[11:34] Enkidu Linden: it'd be nice if the search team did office hours since this is such a hot topic
[11:35] Morgaine Dinova: Yeah
[11:35] Enkidu Linden: perhaps i can encourage one of them to come next week
[11:35] Dahlia Trimble: maybe thats why they dont ;)
[11:35] Robin Cornelius: would be interesting, i've been imvolved in search related things recently
[11:36] Morgaine Dinova: The GSA is a generic product, so it wouldn't be expected to be able to examine databases and the like. Your explanation makes sense --- that you give the GSA what Google expects, websites :P
[11:36] Enkidu Linden: i'll ask around and see if i can find someone
[11:37] Enkidu Linden: so, cache changes
[11:37] Robin Cornelius: i believe you need to give it data that is grouped in to text search columns and properties. text search is used for the full text matching and properties are assolciated data returned with match queries
[11:37] Morgaine Dinova: Enki: that would be very cool if you could invite some Search people for a special chat in your OH, yeah
[11:37] Robin Cornelius: hehe sorry... caching ;-p
[11:37] Morgaine Dinova: Pretty hard to get us off Search, huh ^_^
[11:38] Enkidu Linden: basically we enabled sane defaults for expiry based on mime types
[11:38] Enkidu Linden: a lot of things like css and js files were just not cached. no caching http headers were sent
[11:39] Enkidu Linden: so we finally managed to turn that stuff on
[11:39] Enkidu Linden: our preliminary report suggests we're getting between 45 and 50% improvement in time to page load
[11:40] Enkidu Linden: for hot caches, of course
[11:41] Enkidu Linden: hot caches are like hot tubs. ahhhhhhhhhhh so refreshing!
[11:41] Morgaine Dinova: Do these caches have size constraints that force flush prior to expiry, ever?
[11:41] Xugu Madison: I thought CSS/JS were cached by default when sent over HTTP...
[11:41] Enkidu Linden: yes, they do
[11:41] Xugu Madison: (as opposed to HTTPS)
[11:41] Enkidu Linden: that depends entirely on the browser, xugu
[11:42] Enkidu Linden: i was just going to drop this: http://www.stevesouders.com/blog/2010/04/26/call-to-improve-browser-caching/
[11:42] Xugu Madison: Interesting, had assumed they all tended to be the same. I know we stuff Cache-Control: public on a lot of stuff we serve, but that's because it's over HTTPS
[11:42] Xugu Madison: (using HTTPS for integrity, not security)
[11:42] Enkidu Linden: some interesting recent findings that suggest browser caches are marvelously underutilized
[11:42] Morgaine Dinova: That's bad news. We have the same situation in the viewer after all --- the 1GB limit is impossibly low, as a result of which the cache is almost non-operational --- we reload our own home zones multiple times a day.
[11:43] Enkidu Linden: yeah, if souders is correct, it's a significant mitigating factor
[11:43] Morgaine Dinova: If the web cache is similarly size limited, it's going to work very poorly.
[11:43] Enkidu Linden: there's a similar default limit
[11:43] Enkidu Linden: although it's way, way smaller
[11:43] Enkidu Linden: Internet Explorer: 8-50 MB

Firefox: 50 MB

[11:44] Robin Cornelius: Morgain, with squid, http-texture and some cache rewrite rules, you can jam all textures via squid
[11:44] Enkidu Linden: we've got squid in the mix here as well
[11:45] Robin Cornelius: yes event queue routinly gets bad gateway responses back from the squid ;-)
[11:45] Morgaine Dinova: Robin: yeah, we can --- but > 99% of users are not going to be running their own Squid :P
[11:45] Xugu MadisonXugu Madison quietly attaches squid to the users
[11:45] Robin Cornelius: appears to be part of the normal opeartion of event queue polling
[11:45] Morgaine Dinova: Haha Xu
[11:46] Xugu Madison: and a few dozen tentacles in, someone tells me that's not what they meant :)
[11:47] Enkidu Linden: tentacles!
[11:48] Xugu Madison: did I derail the conversation, again?
[11:48] Enkidu Linden: we make rather heavy use of squid
[11:49] Enkidu Linden: unfortunately that means we're stuck with squid's oddity
[11:49] Enkidu Linden: but i kind of like it
[11:51] Enkidu Linden: we're also starting to use memcached a lot more
[11:52] Morgaine Dinova: Oh, that's cool. Everyone who reports on their use of memcached seems to praise it extremely highly. I've not used it myself, but have read the docs.
[11:53] Enkidu Linden: the only bad thing i have to say about memcached is that it has a 256 byte limit on keys
[11:53] Enkidu Linden: and you can't use unicode keys
[11:53] Robin Cornelius: a swift recompile could fix that ;-)
[11:54] Enkidu Linden: this isn't all that much of a problem since you can hash the keys but it's still kind of annoying
[11:55] Enkidu Linden: django actually runs you headfirst into key failure because of that limit
[11:55] Xugu Madison: :(
[11:56] Enkidu Linden: one thing i like about memcached is that it's not all that hard to invalidate cache
[11:57] Enkidu Linden: the downside of memcache is that it needs to be used by an application, whereas squid IS the application
[11:58] Dahlia Trimble: is there a way to construct a URL so all cache programs will just pass it thru and not try to cache it?
[11:58] Enkidu Linden: e.g. if django is fronting memcache, your request still has to pass though django
[11:59] Enkidu Linden: sure, you can send a Pragma: no-cache header with the request
[11:59] Enkidu Linden: but that doesn't necessarily touch all caching
[11:59] Dahlia Trimble: ah cool :) *googles....
[12:01] Xugu Madison: "Cache-Control: no-cache" since HTTP/1.1 I thought
[12:01] Enkidu Linden: true true
[12:01] Xugu Madison: I'm not just crazy! Good to know....
[12:01] Enkidu Linden: i'm so glad that's a request and response header
[12:02] Dahlia Trimble: well I want a request to get thru to the server as fast as possible and I dont want any in-between caching programs to search their caches first before passing it
[12:02] Enkidu Linden: what i love about a request cache-control is actually using max-age
[12:02] Enkidu Linden: "give me what you've got in cache but only if it's no older than this"
[12:03] Dahlia Trimble: does it accept 0 or a negative number? lol
[12:03] Enkidu Linden: it does accept 0
[12:03] Xugu Madison: I think it'll take 0..
[12:03] Xugu Madison: Enkidu types faster :(
[12:04] Dahlia Trimble: lol
[12:04] Dahlia Trimble: what I do now is add a random string to the request
[12:04] Xugu Madison: Wouldn't it normally be up to the server side to set Cache-Control or Vary headers to indicate that there's no sense in caching the page, and therefore the cache shouldn't be rummaging around trying to find a match....
[12:04] Enkidu Linden: that's a perfectly fine way to do it from the URL
[12:05] Xugu MadisonXugu Madison nods
[12:05] Dahlia Trimble: but I thought if I could just tell it "dont search your cache" then it may be faster
[12:05] Enkidu Linden: well
[12:05] Enkidu Linden: two threads here
[12:05] Xugu Madison: What's the exact use-case, BTW, Dahlia?
[12:06] Dahlia Trimble: a fast-response event query
[12:06] Enkidu Linden: it's not particularly slow to search a cache in general
[12:06] Enkidu Linden: squid caches in particular are quite fast
[12:06] Dahlia Trimble: a few milliseconds would be noticable
[12:07] Enkidu Linden: really?
[12:07] Xugu Madison: You probably don't want HTTP then....
[12:07] Dahlia Trimble: yep
[12:07] Dahlia Trimble: no choice
[12:07] Dahlia Trimble: http or nothing
[12:08] Xugu Madison: Madness. Madness I say
[12:08] Dahlia Trimble: lol
[12:08] Enkidu Linden: well, you could try sending Pragma: no-cache or Cache-control: no-cache and see if it's faster imperically, but i doubt it
[12:08] Dahlia Trimble: http is madness ;)
[12:09] Xugu Madison: HTTP is a perfectly sensible way of delivering hypertext :P
[12:09] Dahlia Trimble: ya it works for that
[12:09] Enkidu Linden: second thread was about server side stuff
[12:10] Enkidu Linden: it's true that we tend to think of the server as the definitive source of cache policy
[12:10] Enkidu Linden: but i think this is actually an artifact of browser <-> web server use cases
[12:11] Enkidu Linden: if you're calling services, the cache policy should be determined based ont he level of trust between client and server, the properties of the thing to be cached, etc
[12:12] Enkidu Linden: that means for some services it might be perfectly reasonable for the response to ask for a long TTL, but the requests to use cache-control: max-age like i said earlier
[12:12] Dahlia Trimble: I guess one way to avoid caching is to use https
[12:12] Enkidu Linden: i thought you wanted it to be fast!
[12:13] Xugu Madison: HTTPS will massacre your latency
[12:13] Xugu Madison: I think... 150-250ms overhead
[12:13] Dahlia Trimble: I do so https isnt going to work at all :/
[12:13] Dahlia Trimble: gotta run, another meeting. Bye all, ty for the answers :)
[12:14] Enkidu Linden: i think there's another question too, about whether or not you should even be bypassing caches
[12:14] Enkidu Linden: ack
[12:14] Dahlia Trimble: it's ajax like
[12:14] Dahlia TrimbleDahlia Trimble poofs....
[12:14] Enkidu Linden: ok, we're over on time anyway
[12:15] Enkidu Linden: i need to grab some lunch. thanks for stopping buy, you guys!
[12:15] Enkidu Linden: also, by
[12:15] Xugu Madison: thanks for hosting Enki!
[12:15] Morgaine Dinova: Cyu Enkidu :-)
[12:16] Enkidu Linden: have a great week!

Generated with SLog Wikifier