tags:

views:

37

answers:

2

So the current setup where I work bugs me, but I can't think of anything much better for where to store settings that are used facility-wide(~200 people). Right now they have the settings sitting within an XML file that gets poled by lots of different programs when needed. The natural alternative is to put the data in a DB. They also make use of environment variables for some of the very highly-used data points. Any thoughts on what would be better?

I figure the DB solution with a dedicated module to interract with the DB would do the trick, but maybe that's too much for settings like this?

+1  A: 

I don't like my applications communicating with a database for things that it uses frequently. So if you do decide to put them there for centralization reasons (and nice UI's over them) then I suggest using something like MemCached Win32 or Velocity to sit between your application and the settings that it needs. This way it is a network hop out to a memory store rather than a network hop out to a query! And you can install MemCached on all of your app servers to avoid the network hop if you are so inclined!

Andrew Siemer
I like the memcached idea. Definitely opens up things so that I can make the data model more complicated (a la DB), while being very quick. Sweet!
+1  A: 

I think the answer to your question depends on how often these settings are changed. If these settings are changed frequently and the requests to change these settings are intiated by your end-users, I would build a database solution that provided a console to offload the work to your users. However if these settings are maintained by your IT department or are mission critical or just don't change much, then I think centralized XML file(s) would be fine.

Achilles
Ya, the changes are pretty minimal. At most a couple times a day.