Hi,

I asked a friend who is a Berkeley DB expert about these locking issues. You can find his blog posting at www.ddanderson.com/myblog/

It starts:

I hear this occasionally - Berkeley DB is unreliable, is prone to lockups, you just can't depend on it. On the other hand, I've been working with BDB customers for several years creating systems that reliably run nonstop storing and retrieving data. Some of these people test by literally pulling the plug during a busy load cycle and making sure their system can come back without loss of data. And they don't have lockups either. So where's the disconnect?


Phil


Nils Kaiser <[EMAIL PROTECTED]>
> we are using a webservice to check if a user agent is a mobile or full > browser. We have to integrate this on the root path of a site to > redirect mobile browsers to a mobile page.

I haven't had an issue with berkeley db since 4.2 , however there are db lock issues and general unpleasantness abound when you have a power failure type reboot

Jeff Pang <[EMAIL PROTECTED]>
 > Just give another suggestion.How about memcached?
 > I think it's also a good and fast cache product.

Memcached is volatile -- power goes / reboot, you lose everything.

"Perrin Harkins" <[EMAIL PROTECTED]>
> It's slower than BerkeleyDB and Cache::FastMmap. If you need your > cache to work across multiple machines, memcached is a good idea. For > a single machine, there's no reason to use it.

with bdb on a single machine, you're still apt to run into time issues from locking by competing apache children on the bdb - i'm not sure how they would measure, but them in addition to the ridiculously small amount of overhead any pageload would create make me thing the backend store is negligible in the greater scheme

personally, i would do something that has the potential to scale to multiple servers:
        write to postgres + memcached
        read from memcached, failover to postgres

if you wanted, you could do a bdb store locally per-machine instead of memcached.

if you're doing bdb, you're stuck with that only working on a single webapp machine -- unless you write a daemon to handle queries to it.

its not as fast as other solutions, but it will take the same amount of time to code and will infinitely scale, so you only do the work 1x.

re: deployment
i think the mod_perl support on the 'enterprise linux' platforms are pretty bad -- they're often way out of date. public distros, like ubuntu, are usually up-to date. freebsd support is the best, much thanks to philip porting to freebsd within minutes of the source code release (btw, freebsd is definitely an 'enterprise level' product ) windows support is pretty good.

i'm pretty sure that the only reason why some distros have better support for mp , is that certain companies who have multiple servers of a given OS find it much easier to manage the port, so they can keep all their internal stuff up-to-date.


Reply via email to