FarmBalance - make nice balance in Farming System regarding data, traffics, etc..
#- use OLTP to determine new user's farm use FarmBalance; my $farms = 4; #- write farm number of systems my $stats = { #- give system stats. 'a_table_rows' => [1000, 700, 629, 800], 'b_table_rows' => [300, 70, 26, 200], 'server_tps' => [1000, 300, 5, 200], }; my $input = { #- give new commer's data and traffic, estimated. #- if undefined, filled by average values of stats. 'a_table_rows' => 20, 'b_table_rows' => 33, 'server_tps' => 10, }; my $df = FarmBalance->new( farms => $farms, stats => $stats, input => $input, ); $df->report($df->{stats}); #- report before adding new user $df->define_farm; print "DefineNode:" , $df->{effective_farm} , "\n"; #- best farm to insert. $df->report($df->{stats}); #- report after adding user. #- when use in data migration. use FarmBalance; my $farms = 4; my $src = 'migration.tsv'; #- like "uid100\t20\t22\t5..." my $stats = { #- give new system stats. 'a_table_rows' => [0, 0, 0, 0], 'b_table_rows' => [0, 0, 0, 0], 'server_tps' => [0, 0, 0, 0], }; my $df = FarmBalance->new( farms => $farms, stats => $stats, ); open (IN, $file ); while ( <IN> ) { chomp; my ( $row, $keyA, $keyB, $keyC ) = split (/\t/, $_); my $input = +{ 'a_table_rows' => $keyA, 'b_table_rows' => $keyB, 'server_tps' => $keyC, }; $df->{input} = $input; $df->define_farm; print "Row: $row => DefineNode:" , $df->{effective_farm} , "\n"; #- Insert data to above node. } close(IN);
FarmBalance is useful tool to reduce variability in Web Farming System. In many web sites, engineers uses many application-servers and database-servers to handle too much transacions and too may data. Deciding farm to insert new user and new data, often Hashing logic or residual calculation is used. But it often results in variability of data rows in DB and server traffic.
Using FarmBalance and giving it Server Stats ( ex. data rows, transactions, server resources from system infromations), your farming system will be in nice balance.
FarmBalance calculates effect to reduce standard deviation, supposing new user added to each nodes in estimated values. And, chose most effective farm.
DUKKIE(Masataka Koduka) <dukkie@cpan.org>
with helps from H.Fujimiya, K.Moriyama and Y.Kanda.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
To install FarmBalance, copy and paste the appropriate command in to your terminal.
cpanm
cpanm FarmBalance
CPAN shell
perl -MCPAN -e shell install FarmBalance
For more information on module installation, please visit the detailed CPAN module installation guide.