[mythtv] [PATCH] revised/added protocol extension patch -- ignore last one

Geoff O'Callaghan geoffocal at optushome.com.au
Mon May 2 02:16:44 UTC 2005


Isaac Richards wrote:
> On Sunday 01 May 2005 03:32 pm, Brad Templeton wrote:
> 
>>On Sun, May 01, 2005 at 01:45:01PM -0400, Noone wrote:
>>
>>>It is a step in the right direction imho.  Since the end result would
>>>also be the backend caches much of the commonly requested data (recorded
>>>list, guide data, ICONS, etc.), the hit shouldn't be that bad.
>>
>>I don't know about the insides of mysql, but surely it caches data of
>>common queries, no?  And far better than an intermediate backend could do
>>because the intermediate backend is not aware of possible writes to the
>>data by other sources (including in some cases itself.)
> 
> 
> Exactly.  mysql does a pretty good job of caching things properly, so repeated 
> queries are damn quick - especially for simple stuff from the settings table.  
> Doesn't make sense to me to recreate all that in the backend.  Might as well 
> just write your own DB at that point.
> 
> 
>>I remain curious on the strong goal here.  I mean yes, there can always
>>be value in extra levels of abstraction, but your talking raw SQL
>>and getting back only slightly modified query results so little abstraction
>>is being added.
>>
>>Is it that sql query libraries are not available for some clients?  Is it
>>that they are too expensive?  Is it that they are too hard to code for?
> 
> 
> My questions as well, every time this is brought up.  libmysqlclient's just a 
> cross-compile away for almost any platform.  It's tiny, too - if a platform's 
> that starved for RAM, it's not going to be capable of displaying much of a 
> UI, either.
>

Sorry, wasn't much I could snip there as it's all relevant.  I'm a noob 
here so apologies :-)  I think both points of view are valid.  MySQL 
obviously does aggressively caching, but I also think myth could benefit 
from caching of application objects.

ie.  The f/e talks to the b/e in terms of 'application objects' rather 
than SQL objects.  These objects are 'cached' using an application 
caching layer which in turn sits on top of the DB layer.  The advantages 
is that the f/e and b/e can use a simple application cache using 
something like 'object invalidation' (eg someone has modified the tables 
directly which means the b/e invalidates the object which in turn allows 
the f/e to tell that things have changed with a small exchange of data) 
to keep in sync and the b/e can worry about the SQL objects and allows 
simpler integration of additional DB layers such as Berkeley DB or 
postgresql etc.

That probably didn't make a great deal of sense ;-) but I can try harder 
if required ...

Note: I've only just started looking at the mythtv code so I might be 
talking out my butt ....


-goc-



More information about the mythtv-dev mailing list