[01:35] *** eikenberry has joined #kamaelia
[04:21] *** salmon_ has joined #kamaelia
[05:13] *** Uraeus has joined #kamaelia
[05:53] *** Uraeus has joined #kamaelia
[08:02] *** MS- has parted #kamaelia
[09:17] *** MS- has joined #kamaelia
[09:19] < MS-> greetings
[09:24] < Lawouach_> afternoon
[09:29] < Lawouach_> http://www.catonmat.net/blog/wp-content/plugins/wp-downloadMonitor/user_uploads/screen.cheat.sheet.txt < -- my new best bookmark :)
[10:29] *** MS- clicks
[10:29] < MS-> Oh that's handy
[10:44] < Lawouach_> indeed
[11:11] < Lawouach_> I've spent a few days investigating a really odd issue with some of my XMPP clients running on our servers
[11:12] < Lawouach_> Quite regularly (but not precisely at the period interval), we would see high CPU times usage
[11:12] < Lawouach_> Meaning the OS was spending lots of time within the process even though the CPU wasn't usually doing much
[11:13] < Lawouach_> I though I had a bug in my code, then was worried it could be Kamaelia
[11:13] < Lawouach_> Now I'm leaning towards the logging package
[11:13] < Lawouach_> I'm using rotating logs
[11:13] < Lawouach_> and I've witnessed those peaks usually around the time the rotation occurs
[11:14] < Lawouach_> I've disabled the logs to see if my theory is right
[11:14] < Lawouach_> if so then... lame lame logging module :/
[12:11] *** MS- reads scrollback
[12:11] < MS-> "Quite regularly (but not precisely at the period interval), we would see high CPU times usage"
[12:11] < MS-> The garbage collector ?
[12:12] < Lawouach_> We still consider that option yes
[12:12] < Lawouach_> But it's tricky to track down
[12:13] < MS-> Indeed.
[12:52] < MS-> Oooh, just identified an interesting side effect of threaded components which can allow them to burn more CPU than they should.
[12:52] < MS-> It's a logical burn, but unexpected
[12:52] < MS-> If you're using self.pause() in a threaded component to sleep for a given time
[12:53] < MS-> And send out messages periodically
[12:53] < MS-> That works OK if the consumer is consuming them slower than you're sending
[12:53] < MS-> since then you'll sleep
[12:53] < MS-> However, given a message being removed from an outbox (by the recipient) causes a component to unpause
[12:54] < MS-> then if you're sending messages when awoken from that pause
[12:54] < MS-> then you can go into a CPU burn
[12:54] < MS-> It's not a particularly massive problem, but is an interesting edge case.
[12:55] < Lawouach_> I see
[12:56] < Lawouach_> I have to come dislike threaded component even though I do understand they are required in some circumstances
[12:56] < Lawouach_> I much prefer generator based components
[12:56] < MS-> Likewise. I'm doing something which is time related here hence looking at it
[12:57] < MS-> I'm beginning to think though that threaded components as a concept is a nice idea, but a threadedchassis is a better one
[12:59] < Lawouach_> My main concern about them is not so much about the implementation but that they feel less well-behaved than regular components
[12:59] < Lawouach_> With potential side-effects like the one you mention
[12:59] < Lawouach_> It's hard to trust them
[12:59] < Lawouach_> :)
[13:00] < MS-> Well, they are harder to trust - they're running potentially truly in parallel in a shared memory space, which is akin to playing with fire
[13:00] < MS-> But that's threads for you :)
[13:02] < Lawouach_> :)
[13:04] *** salmon_ has joined #kamaelia
[15:10] *** chumpalump has joined #kamaelia
[16:38] < MS-> Right, hometime. back online later this evening. Plan is to continue reviewing the HTTP improvements.
[16:38] *** MS- is hungry :)
[16:38] < MS-> cya
[16:38] *** MS- has parted #kamaelia
[19:03] *** salmon_ has joined #kamaelia
[19:54] *** MS- has joined #kamaelia
[19:54] < MS-> evening
[21:10] *** MS- has parted #kamaelia