NAME
Data::Fallback::Daemon - a daemon for Data::Fallback
DESCRIPTION
Data::Fallback works great at finding data at the fastest place you tell it, but what happens when you keep asking for the same data repeatedly? Well, Data::Fallback::Daemon allow to cache in memory the data, and a simple protocol for retrieving it.
TYPICAL USAGE
Having one database box and n client boxes doesn't scale too hot for n very large. However, one database box and n client boxes each running their own Data::Fallback::Daemon scales well for large n. So, typical usage in my view is to have local daemons running on each client box.
DBI EXAMPLE
This example requires DBI and DBD::mysql to be installed on the box.
#!/usr/bin/perl -w
use strict;
use Data::Fallback;
use Data::Fallback::Daemon;
# first we set up a simple Data::Fallback::Daemon object
my $self = Data::Fallback::Daemon->new({
# you can change the port if you like
port => '20203',
# reverse_lookups can take awhile when you aren't connected to the web,
# so I just turn them off for testing purposees
reverse_lookups => '',
# we need to include a Data::Fallback object
fallback => Data::Fallback->new(),
});
# this is just a dumb test server that I can't guarantee will be up
# generally, db is an array ref of your connection info
my $db = ["DBI:mysql:database=fallback;host=spack.net;port=7777", "fallback", ""];
# loaded_list is a hash ref of all the lists you want to have the daemon maintain
# the hash key state is how the list is referenced
$self->{fallback}{loaded_list} = {
state => [
{
content => '/tmp/fallback/state_$primary_key',
package => 'ConfFile',
accept_update => 'group',
},
{
db => $db,
content => 'SELECT * FROM state WHERE id = ?',
package => 'DBI',
},
],
};
# all set up, just need to run
$self->run();
THANKS
Thanks to Paul Seamons for Net::Server and for helping me set up this simple daemon.
AUTHOR
Copyright 2001-2002, Earl J. Cahill. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Address bug reports and comments to: cpan@spack.net.
When sending bug reports, please provide the version of Data::Fallback, the version of Perl, and the name and version of the operating system you are using.