ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/BDB/eg/basic_operations
Revision: 1.1
Committed: Tue Feb 6 01:09:41 2007 UTC (17 years, 3 months ago) by root
Branch: MAIN
Log Message:
*** empty log message ***

File Contents

# User Rev Content
1 root 1.1 #! perl
2    
3     use strict;
4    
5     use AnyEvent;
6     use BDB;
7    
8     our $FH; open $FH, "<&=" . BDB::poll_fileno;
9     our $WATCHER = AnyEvent->io (fh => $FH, poll => 'r', cb => \&BDB::poll_cb);
10    
11     my $env = db_env_create;
12     my $db;
13    
14     warn "i3\n";#d#
15    
16     mkdir "bdtest", 0700;
17    
18     BDB::min_parallel 8;
19    
20     db_env_open
21     $env,
22     "bdtest",
23     BDB::INIT_LOCK | BDB::INIT_LOG | BDB::INIT_MPOOL | BDB::INIT_TXN | BDB::RECOVER | BDB::USE_ENVIRON | BDB::CREATE,
24     0600;
25    
26     $env->set_flags (BDB::AUTO_COMMIT | BDB::TXN_NOSYNC, 1);
27    
28     $db = db_create $env;
29     db_open $db, undef, "table", undef, BDB::BTREE, BDB::AUTO_COMMIT | BDB::CREATE | BDB::READ_UNCOMMITTED, 0600;
30    
31     for (1..1000) {
32     db_put $db, undef, "key[$_]", "data[$_]";
33     }
34    
35     my $c = $db->cursor;
36     my @del;
37    
38     for (;;) {
39     db_c_get $c, my $key, my $data, BDB::NEXT;
40     warn "<$!,$key,$data>";
41     last if $!;
42     push @del, $key if rand > 0.9;
43     }
44    
45     db_c_close $c, sub { };
46     undef $c;
47     db_del $db, undef, $_ for @del;
48    
49     db_sync $db;
50