/[webpac2]/trunk/lib/WebPAC/Input.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /trunk/lib/WebPAC/Input.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 6 - (show annotations)
Sat Jul 16 14:44:38 2005 UTC (19 years ago) by dpavlin
File size: 2740 byte(s)
added WebPAC::Input::ISIS

1 package WebPAC::Input;
2
3 use warnings;
4 use strict;
5
6 =head1 NAME
7
8 WebPAC::Input - core module for input file format
9
10 =head1 VERSION
11
12 Version 0.01
13
14 =cut
15
16 our $VERSION = '0.01';
17
18 =head1 SYNOPSIS
19
20 This module will load particular loader module and execute it's functions.
21
22 Perhaps a little code snippet.
23
24 use WebPAC::Input;
25
26 my $db = WebPAC::Input->new(
27 format => 'NULL',
28 config => $config,
29 lookup => $lookup_obj,
30 );
31
32 $db->open('/path/to/database');
33 print "database size: ",$db->size,"\n";
34 while (my $row = $db->fetch) {
35 ...
36 }
37 $db->close;
38
39 =head1 FUNCTIONS
40
41 =head2 new
42
43 Create new input database object.
44
45 my $db = new WebPAC::Input( format => 'NULL' );
46
47 =cut
48
49 sub new {
50 my $class = shift;
51 my $self = {@_};
52 bless($self, $class);
53
54 $self ? return $self : return undef;
55 }
56
57 =head1 MEMORY USAGE
58
59 C<low_mem> options is double-edged sword. If enabled, WebPAC
60 will run on memory constraint machines (which doesn't have enough
61 physical RAM to create memory structure for whole source database).
62
63 If your machine has 512Mb or more of RAM and database is around 10000 records,
64 memory shouldn't be an issue. If you don't have enough physical RAM, you
65 might consider using virtual memory (if your operating system is handling it
66 well, like on FreeBSD or Linux) instead of dropping to L<DBM::Deep> to handle
67 parsed structure of ISIS database (this is what C<low_mem> option does).
68
69 Hitting swap at end of reading source database is probably o.k. However,
70 hitting swap before 90% will dramatically decrease performance and you will
71 be better off with C<low_mem> and using rest of availble memory for
72 operating system disk cache (Linux is particuallary good about this).
73 However, every access to database record will require disk access, so
74 generation phase will be slower 10-100 times.
75
76 Parsed structures are essential - you just have option to trade RAM memory
77 (which is fast) for disk space (which is slow). Be sure to have planty of
78 disk space if you are using C<low_mem> and thus L<DBM::Deep>.
79
80 However, when WebPAC is running on desktop machines (or laptops :-), it's
81 highly undesireable for system to start swapping. Using C<low_mem> option can
82 reduce WecPAC memory usage to around 64Mb for same database with lookup
83 fields and sorted indexes which stay in RAM. Performance will suffer, but
84 memory usage will really be minimal. It might be also more confortable to
85 run WebPAC reniced on those machines.
86
87
88 =head1 AUTHOR
89
90 Dobrica Pavlinusic, C<< <dpavlin@rot13.org> >>
91
92 =head1 COPYRIGHT & LICENSE
93
94 Copyright 2005 Dobrica Pavlinusic, All Rights Reserved.
95
96 This program is free software; you can redistribute it and/or modify it
97 under the same terms as Perl itself.
98
99 =cut
100
101 1; # End of WebPAC::Input

  ViewVC Help
Powered by ViewVC 1.1.26