[mythtv] Watching Live TV & method TV::GetChannelInfo getting called every second

Tako Schotanus quintesse at palacio-cristal.com
Thu Jul 15 15:18:34 EDT 2004

Buechler, Mark R wrote:

> The problem is you don't want it cached and at the same time update 
> every second - what would be the point? You would only be as up to 
> date as your cache which could be several seconds off. Maybe a better 
> way would be to on every channel change pull in 2 (or more) hours of 
> information and only check again after 2 hours for updates. Then you 
> could update at the times when the schedule changes.
> - Mark.
> ------------------------------------------------------------------------
> *From:* Tako Schotanus [mailto:quintesse at palacio-cristal.com]
> *Sent:* Thursday, July 15, 2004 2:10 PM
> *To:* Development of mythtv
> *Subject:* Re: [mythtv] Watching Live TV & method TV::GetChannelInfo 
> getting called every second
> Isaac Richards wrote:
>>On Thursday 15 July 2004 12:43 pm, Buechler, Mark R wrote:
>>>Admittedly, I'm working with a two day old copy of CVS but I've seen this
>>>for a few weeks now. I see on my backend mysqld running at 45-55% CPU and
>>>the frontend taking more CPU than it should as well. I tracked it down to a
>>>SQL statement running every second getting channel information while
>>>watching live TV.
>>>I was wondering if anyone might know why
>>LCD info updater.  I didn't realize it was going every second, I'll bump it up 
>>a lot, or actually, now that I look at this, I don't think it's thread safe 
>>at all..
> Sorry, had no idea that GetChannelInfo would hit the database so much.
> It did this every second so you could see program info changes while 
> watching live tv.
> So now I've got two questions because I really want this to work (and 
> I'm not the only one for sure).
> 1. Is there a way to get this channel information without hitting the 
> database so much? (Is there a function that does local caching of the 
> results for eample?)
> 2. Why isn't it thread-safe? I tried to model the LCD code as much as 
> possible on the OSD code thinking that if it was okay to update the 
> OSD it would probably be okay to update the LCD as well. But if you 
> can tell me where/how it can go wrong I'll fix it (or at least try to).
> Cheers,
>  -Tako

When I say caching I don't mean the method should just mindlessly return 
what it returned before, the method takes a date/time argument so it 
could easily check that the requested information is not in the cache of 
previously requested programs and request that info from the backend 
server. A timeout in the cache could make sure that once every so many 
hours the info would be flushed.

But anyway, such a method doesn't exist and it will be much more work to 
make such a caching mechanism than just switching the timer to 1 minute 
like Isaac suggested, so I guess I'll just do that :-)


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mythtv.org/pipermail/mythtv-dev/attachments/20040715/5cee4fff/attachment.html

More information about the mythtv-dev mailing list