design question

Kev kevin.p.dwyer at gmail.com
Mon May 3 19:29:18 EDT 2010


Tim Arnold wrote:

> This is a question about system design I guess. I have a django
> website that allows users to change/view configuration details for
> documentation builds. The database is very small. The reason I'm using
> a database in the first place is to make it easy for users to change
> the configuration of their builds. Django makes that easy and I can go
> on to other problems, like actually building the documentation.
>
> During a build, I query the configuration database at different times
> to get the configuration I need, which results in several calls to the
> database at different points of the build process.
>
> It doesn't feel right that I'm making these calls at different times.
> I *could* make a single big call at the beginning of the build,
> basically serializing all the config data I could need into a
> dictionary or maybe a json structure. And just pass that structure
> around as needed during the build, with no more database calls needed.
>
> These builds take from a few minutes to an hour or so, with the time
> spent making db calls almost insignificant. So if time isn't a
> problem, am I wringing my hands over something that really doesn't
> matter much? I guess it just doesn't feel like the right thing to me.
>
> thanks,
> --Tim

Hello Tim,

Given the times that you've quoted for the documentation builds, a few 
microseconds here and there for database queries doesn't really matter.

The Django docs, as it happens, look favourably on doing one query up
front,
(http://docs.djangoproject.com/en/1.1/topics/db/optimization/#topics-db-optimization),
but they also recommend profiling first, which would presumably
highlight the insignificance of your queries compared with the duration
of the builds.

So I think the upshot is don't worry about it, or if you must,
accept that you're worrying more about aesthetics than anything else
(not that aesthetics aren't important).

Cheers,

Kev





More information about the Python-list mailing list