bdb 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/examples/replication.rb +29 -0
- data/ext/Makefile +157 -0
- data/ext/bdb.bundle +0 -0
- data/ext/bdb.c +225 -12
- data/ext/bdb.o +0 -0
- data/ext/bdb_aux._c +433 -0
- data/ext/extconf.rb +3 -35
- data/ext/mkmf.log +4766 -0
- data/lib/bdb/base.rb +11 -3
- data/lib/bdb/database.rb +27 -4
- data/lib/bdb/environment.rb +21 -5
- data/lib/bdb/replication.rb +68 -0
- data/test/database_test.rb +18 -0
- data/test/database_test_helper.rb +37 -0
- data/test/deadlock_test.rb +125 -0
- data/test/replication_test.rb +47 -0
- data/test/test_helper.rb +8 -1
- metadata +17 -4
- data/test/simple_test.rb +0 -93
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.2.0
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'bdb/database'
|
3
|
+
require 'fileutils'
|
4
|
+
|
5
|
+
role = ARGV.shift || 'client'
|
6
|
+
|
7
|
+
MASTER = 'localhost:8888'
|
8
|
+
CLIENT = 'localhost:9999'
|
9
|
+
|
10
|
+
DIR = "/tmp/#{role}"
|
11
|
+
FileUtils.rmtree DIR
|
12
|
+
FileUtils.mkdir DIR
|
13
|
+
|
14
|
+
puts "Starting #{role}..."
|
15
|
+
|
16
|
+
Bdb::Environment.replicate DIR, :from => MASTER, :to => CLIENT, :host => role == 'master' ? MASTER : CLIENT
|
17
|
+
db = Bdb::Database.new('foo', :path => DIR)
|
18
|
+
|
19
|
+
loop do
|
20
|
+
100.times do |i|
|
21
|
+
if role == 'master'
|
22
|
+
db.set(i, db[i].to_i + 1)
|
23
|
+
puts "#{i}: #{db[i]}"
|
24
|
+
else
|
25
|
+
puts "#{i}: #{db[i]}"
|
26
|
+
end
|
27
|
+
sleep 0.1
|
28
|
+
end
|
29
|
+
end
|
data/ext/Makefile
ADDED
@@ -0,0 +1,157 @@
|
|
1
|
+
|
2
|
+
SHELL = /bin/sh
|
3
|
+
|
4
|
+
#### Start of system configuration section. ####
|
5
|
+
|
6
|
+
srcdir = .
|
7
|
+
topdir = /opt/local/lib/ruby/1.8/i686-darwin10
|
8
|
+
hdrdir = $(topdir)
|
9
|
+
VPATH = $(srcdir):$(topdir):$(hdrdir)
|
10
|
+
exec_prefix = $(prefix)
|
11
|
+
prefix = $(DESTDIR)/opt/local
|
12
|
+
sharedstatedir = $(prefix)/com
|
13
|
+
mandir = $(DESTDIR)/opt/local/share/man
|
14
|
+
psdir = $(docdir)
|
15
|
+
oldincludedir = $(DESTDIR)/usr/include
|
16
|
+
localedir = $(datarootdir)/locale
|
17
|
+
bindir = $(exec_prefix)/bin
|
18
|
+
libexecdir = $(exec_prefix)/libexec
|
19
|
+
sitedir = $(libdir)/ruby/site_ruby
|
20
|
+
htmldir = $(docdir)
|
21
|
+
vendorarchdir = $(vendorlibdir)/$(sitearch)
|
22
|
+
includedir = $(prefix)/include
|
23
|
+
infodir = $(datarootdir)/info
|
24
|
+
vendorlibdir = $(vendordir)/$(ruby_version)
|
25
|
+
sysconfdir = $(prefix)/etc
|
26
|
+
libdir = $(exec_prefix)/lib
|
27
|
+
sbindir = $(exec_prefix)/sbin
|
28
|
+
rubylibdir = $(libdir)/ruby/$(ruby_version)
|
29
|
+
docdir = $(datarootdir)/doc/$(PACKAGE)
|
30
|
+
dvidir = $(docdir)
|
31
|
+
vendordir = $(DESTDIR)/opt/local/lib/ruby/vendor_ruby
|
32
|
+
datarootdir = $(prefix)/share
|
33
|
+
pdfdir = $(docdir)
|
34
|
+
archdir = $(rubylibdir)/$(arch)
|
35
|
+
sitearchdir = $(sitelibdir)/$(sitearch)
|
36
|
+
datadir = $(datarootdir)
|
37
|
+
localstatedir = $(prefix)/var
|
38
|
+
sitelibdir = $(sitedir)/$(ruby_version)
|
39
|
+
|
40
|
+
CC = /usr/bin/gcc-4.2
|
41
|
+
LIBRUBY = $(LIBRUBY_SO)
|
42
|
+
LIBRUBY_A = lib$(RUBY_SO_NAME)-static.a
|
43
|
+
LIBRUBYARG_SHARED = -l$(RUBY_SO_NAME)
|
44
|
+
LIBRUBYARG_STATIC = -l$(RUBY_SO_NAME)-static
|
45
|
+
|
46
|
+
RUBY_EXTCONF_H =
|
47
|
+
CFLAGS = -fno-common -O2 -arch x86_64 -fno-common -pipe -fno-common $(cflags) -arch x86_64
|
48
|
+
INCFLAGS = -I. -I. -I/opt/local/lib/ruby/1.8/i686-darwin10 -I.
|
49
|
+
DEFS =
|
50
|
+
CPPFLAGS = -I/usr/local/BerkeleyDB.4.8/include -I/opt/local/include -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -I/opt/local/include
|
51
|
+
CXXFLAGS = $(CFLAGS)
|
52
|
+
ldflags = -L. -L/opt/local/lib
|
53
|
+
dldflags =
|
54
|
+
archflag = -arch x86_64
|
55
|
+
DLDFLAGS = $(ldflags) $(dldflags) $(archflag)
|
56
|
+
LDSHARED = $(CC) -dynamic -bundle -undefined suppress -flat_namespace
|
57
|
+
AR = ar
|
58
|
+
EXEEXT =
|
59
|
+
|
60
|
+
RUBY_INSTALL_NAME = ruby
|
61
|
+
RUBY_SO_NAME = ruby
|
62
|
+
arch = i686-darwin10
|
63
|
+
sitearch = i686-darwin10
|
64
|
+
ruby_version = 1.8
|
65
|
+
ruby = /opt/local/bin/ruby
|
66
|
+
RUBY = $(ruby)
|
67
|
+
RM = rm -f
|
68
|
+
MAKEDIRS = mkdir -p
|
69
|
+
INSTALL = /usr/bin/install -c
|
70
|
+
INSTALL_PROG = $(INSTALL) -m 0755
|
71
|
+
INSTALL_DATA = $(INSTALL) -m 644
|
72
|
+
COPY = cp
|
73
|
+
|
74
|
+
#### End of system configuration section. ####
|
75
|
+
|
76
|
+
preload =
|
77
|
+
|
78
|
+
libpath = . $(libdir) /usr/local/BerkeleyDB.4.8/lib
|
79
|
+
LIBPATH = -L. -L$(libdir) -L/usr/local/BerkeleyDB.4.8/lib
|
80
|
+
DEFFILE =
|
81
|
+
|
82
|
+
CLEANFILES = mkmf.log
|
83
|
+
DISTCLEANFILES =
|
84
|
+
|
85
|
+
extout =
|
86
|
+
extout_prefix =
|
87
|
+
target_prefix =
|
88
|
+
LOCAL_LIBS =
|
89
|
+
LIBS = $(LIBRUBYARG_SHARED) -ldb-4.8 -lpthread -ldl -lobjc
|
90
|
+
SRCS = bdb.c
|
91
|
+
OBJS = bdb.o
|
92
|
+
TARGET = bdb
|
93
|
+
DLLIB = $(TARGET).bundle
|
94
|
+
EXTSTATIC =
|
95
|
+
STATIC_LIB =
|
96
|
+
|
97
|
+
BINDIR = $(bindir)
|
98
|
+
RUBYCOMMONDIR = $(sitedir)$(target_prefix)
|
99
|
+
RUBYLIBDIR = $(sitelibdir)$(target_prefix)
|
100
|
+
RUBYARCHDIR = $(sitearchdir)$(target_prefix)
|
101
|
+
|
102
|
+
TARGET_SO = $(DLLIB)
|
103
|
+
CLEANLIBS = $(TARGET).bundle $(TARGET).il? $(TARGET).tds $(TARGET).map
|
104
|
+
CLEANOBJS = *.o *.a *.s[ol] *.pdb *.exp *.bak
|
105
|
+
|
106
|
+
all: $(DLLIB)
|
107
|
+
static: $(STATIC_LIB)
|
108
|
+
|
109
|
+
clean:
|
110
|
+
@-$(RM) $(CLEANLIBS) $(CLEANOBJS) $(CLEANFILES)
|
111
|
+
|
112
|
+
distclean: clean
|
113
|
+
@-$(RM) Makefile $(RUBY_EXTCONF_H) conftest.* mkmf.log
|
114
|
+
@-$(RM) core ruby$(EXEEXT) *~ $(DISTCLEANFILES)
|
115
|
+
|
116
|
+
realclean: distclean
|
117
|
+
install: install-so install-rb
|
118
|
+
|
119
|
+
install-so: $(RUBYARCHDIR)
|
120
|
+
install-so: $(RUBYARCHDIR)/$(DLLIB)
|
121
|
+
$(RUBYARCHDIR)/$(DLLIB): $(DLLIB)
|
122
|
+
$(INSTALL_PROG) $(DLLIB) $(RUBYARCHDIR)
|
123
|
+
install-rb: pre-install-rb install-rb-default
|
124
|
+
install-rb-default: pre-install-rb-default
|
125
|
+
pre-install-rb: Makefile
|
126
|
+
pre-install-rb-default: Makefile
|
127
|
+
$(RUBYARCHDIR):
|
128
|
+
$(MAKEDIRS) $@
|
129
|
+
|
130
|
+
site-install: site-install-so site-install-rb
|
131
|
+
site-install-so: install-so
|
132
|
+
site-install-rb: install-rb
|
133
|
+
|
134
|
+
.SUFFIXES: .c .m .cc .cxx .cpp .C .o
|
135
|
+
|
136
|
+
.cc.o:
|
137
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
|
138
|
+
|
139
|
+
.cxx.o:
|
140
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
|
141
|
+
|
142
|
+
.cpp.o:
|
143
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
|
144
|
+
|
145
|
+
.C.o:
|
146
|
+
$(CXX) $(INCFLAGS) $(CPPFLAGS) $(CXXFLAGS) -c $<
|
147
|
+
|
148
|
+
.c.o:
|
149
|
+
$(CC) $(INCFLAGS) $(CPPFLAGS) $(CFLAGS) -c $<
|
150
|
+
|
151
|
+
$(DLLIB): $(OBJS) Makefile
|
152
|
+
@-$(RM) $@
|
153
|
+
$(LDSHARED) -o $@ $(OBJS) $(LIBPATH) $(DLDFLAGS) $(LOCAL_LIBS) $(LIBS)
|
154
|
+
|
155
|
+
|
156
|
+
|
157
|
+
$(OBJS): ruby.h defines.h
|
data/ext/bdb.bundle
ADDED
Binary file
|
data/ext/bdb.c
CHANGED
@@ -267,9 +267,9 @@ VALUE db_open(VALUE obj, VALUE vtxn, VALUE vdisk_file,
|
|
267
267
|
|
268
268
|
dbh->db->app_private=dbh;
|
269
269
|
rv = dbh->db->open(dbh->db,txn?txn->txn:NULL,
|
270
|
-
|
271
|
-
|
272
|
-
|
270
|
+
StringValueCStr(vdisk_file),
|
271
|
+
logical_db,
|
272
|
+
dbtype,flags,mode);
|
273
273
|
if (rv != 0) {
|
274
274
|
raise_error(rv,"db_open failure: %s(%d)",db_strerror(rv),rv);
|
275
275
|
}
|
@@ -1637,6 +1637,8 @@ VALUE env_open(VALUE obj, VALUE vhome, VALUE vflags, VALUE vmode)
|
|
1637
1637
|
raise_error(0,"env handle already used and closed");
|
1638
1638
|
|
1639
1639
|
rv = eh->env->open(eh->env,StringValueCStr(vhome),flags,mode);
|
1640
|
+
eh->env->app_private=eh;
|
1641
|
+
|
1640
1642
|
if (rv != 0) {
|
1641
1643
|
raise_error(rv, "env_open failure: %s",db_strerror(rv));
|
1642
1644
|
}
|
@@ -2749,6 +2751,205 @@ VALUE env_get_home(VALUE obj)
|
|
2749
2751
|
return rb_str_new2(home);
|
2750
2752
|
}
|
2751
2753
|
|
2754
|
+
/*
|
2755
|
+
* call-seq:
|
2756
|
+
* env.set_verbose(which, onoff)
|
2757
|
+
*
|
2758
|
+
* set verbose messages on or off
|
2759
|
+
*/
|
2760
|
+
VALUE env_set_verbose(VALUE obj, VALUE which, VALUE onoff)
|
2761
|
+
{
|
2762
|
+
t_envh *eh;
|
2763
|
+
int rv;
|
2764
|
+
|
2765
|
+
Data_Get_Struct(obj,t_envh,eh);
|
2766
|
+
rv = eh->env->set_verbose(eh->env, NUM2UINT(which), RTEST(onoff));
|
2767
|
+
|
2768
|
+
if ( rv != 0 ) raise_error(rv, "env_set_verbose: %s",db_strerror(rv));
|
2769
|
+
|
2770
|
+
return Qtrue;
|
2771
|
+
}
|
2772
|
+
|
2773
|
+
/*
|
2774
|
+
* call-seq:
|
2775
|
+
* env.rep_priority = int
|
2776
|
+
*
|
2777
|
+
* specify how the replication manager will handle acknowledgement of replication messages
|
2778
|
+
*/
|
2779
|
+
VALUE env_rep_set_priority(VALUE obj, VALUE priority)
|
2780
|
+
{
|
2781
|
+
t_envh *eh;
|
2782
|
+
int rv;
|
2783
|
+
|
2784
|
+
Data_Get_Struct(obj,t_envh,eh);
|
2785
|
+
rv = eh->env->rep_set_priority(eh->env, NUM2UINT(priority));
|
2786
|
+
|
2787
|
+
if ( rv != 0 ) raise_error(rv, "env_rep_set_priority: %s", db_strerror(rv));
|
2788
|
+
return priority;
|
2789
|
+
}
|
2790
|
+
|
2791
|
+
/*
|
2792
|
+
* call-seq:
|
2793
|
+
* env.rep_priority -> int
|
2794
|
+
*
|
2795
|
+
* returns the replication manager's acknowledgement policy
|
2796
|
+
*/
|
2797
|
+
VALUE env_rep_get_priority(VALUE obj)
|
2798
|
+
{
|
2799
|
+
t_envh *eh;
|
2800
|
+
u_int32_t priority;
|
2801
|
+
|
2802
|
+
Data_Get_Struct(obj,t_envh,eh);
|
2803
|
+
eh->env->rep_get_priority(eh->env, &priority);
|
2804
|
+
|
2805
|
+
return INT2NUM(priority);
|
2806
|
+
}
|
2807
|
+
|
2808
|
+
/*
|
2809
|
+
* call-seq:
|
2810
|
+
* env.rep_nsites = int
|
2811
|
+
*
|
2812
|
+
* specify how the replication manager will handle acknowledgement of replication messages
|
2813
|
+
*/
|
2814
|
+
VALUE env_rep_set_nsites(VALUE obj, VALUE nsites)
|
2815
|
+
{
|
2816
|
+
t_envh *eh;
|
2817
|
+
int rv;
|
2818
|
+
|
2819
|
+
Data_Get_Struct(obj,t_envh,eh);
|
2820
|
+
rv = eh->env->rep_set_nsites(eh->env, NUM2UINT(nsites));
|
2821
|
+
|
2822
|
+
if ( rv != 0 ) raise_error(rv, "env_rep_set_nsites: %s", db_strerror(rv));
|
2823
|
+
return nsites;
|
2824
|
+
}
|
2825
|
+
|
2826
|
+
/*
|
2827
|
+
* call-seq:
|
2828
|
+
* env.rep_nsites -> int
|
2829
|
+
*
|
2830
|
+
* returns the replication manager's acknowledgement policy
|
2831
|
+
*/
|
2832
|
+
VALUE env_rep_get_nsites(VALUE obj)
|
2833
|
+
{
|
2834
|
+
t_envh *eh;
|
2835
|
+
u_int32_t nsites;
|
2836
|
+
|
2837
|
+
Data_Get_Struct(obj,t_envh,eh);
|
2838
|
+
eh->env->rep_get_nsites(eh->env, &nsites);
|
2839
|
+
|
2840
|
+
return INT2NUM(nsites);
|
2841
|
+
}
|
2842
|
+
|
2843
|
+
|
2844
|
+
/*
|
2845
|
+
* call-seq:
|
2846
|
+
* env.repmgr_set_local_site(host, port)
|
2847
|
+
*
|
2848
|
+
* specify the local site for the replication manager
|
2849
|
+
*/
|
2850
|
+
VALUE env_repmgr_set_local_site(VALUE obj, VALUE host, VALUE port)
|
2851
|
+
{
|
2852
|
+
t_envh *eh;
|
2853
|
+
int rv;
|
2854
|
+
|
2855
|
+
Data_Get_Struct(obj,t_envh,eh);
|
2856
|
+
rv = eh->env->repmgr_set_local_site(eh->env, StringValuePtr(host), NUM2UINT(port), 0);
|
2857
|
+
|
2858
|
+
if ( rv != 0 ) raise_error(rv, "env_repmgr_set_local_site: %s", db_strerror(rv));
|
2859
|
+
return Qtrue;
|
2860
|
+
}
|
2861
|
+
|
2862
|
+
/*
|
2863
|
+
* call-seq:
|
2864
|
+
* env.repmgr_add_remote_site(host, port)
|
2865
|
+
*
|
2866
|
+
* add a remote for the replication manager
|
2867
|
+
*/
|
2868
|
+
VALUE env_repmgr_add_remote_site(VALUE obj, VALUE host, VALUE port)
|
2869
|
+
{
|
2870
|
+
t_envh *eh;
|
2871
|
+
int rv;
|
2872
|
+
int eidp;
|
2873
|
+
|
2874
|
+
Data_Get_Struct(obj,t_envh,eh);
|
2875
|
+
rv = eh->env->repmgr_add_remote_site(eh->env, StringValuePtr(host), NUM2UINT(port), &eidp, 0);
|
2876
|
+
|
2877
|
+
if ( rv != 0 ) raise_error(rv, "env_repmgr_add_remote_site: %s", db_strerror(rv));
|
2878
|
+
return INT2NUM(eidp);
|
2879
|
+
}
|
2880
|
+
|
2881
|
+
/*
|
2882
|
+
* call-seq:
|
2883
|
+
* env.repmgr_ack_policy = int
|
2884
|
+
*
|
2885
|
+
* specify how the replication manager will handle acknowledgement of replication messages
|
2886
|
+
*/
|
2887
|
+
VALUE env_repmgr_set_ack_policy(VALUE obj, VALUE policy)
|
2888
|
+
{
|
2889
|
+
t_envh *eh;
|
2890
|
+
int rv;
|
2891
|
+
|
2892
|
+
Data_Get_Struct(obj,t_envh,eh);
|
2893
|
+
rv = eh->env->repmgr_set_ack_policy(eh->env, NUM2INT(policy));
|
2894
|
+
|
2895
|
+
if ( rv != 0 ) raise_error(rv, "env_repmgr_set_ack_policy: %s", db_strerror(rv));
|
2896
|
+
return policy;
|
2897
|
+
}
|
2898
|
+
|
2899
|
+
/*
|
2900
|
+
* call-seq:
|
2901
|
+
* env.repmgr_ack_policy -> int
|
2902
|
+
*
|
2903
|
+
* returns the replication manager's acknowledgement policy
|
2904
|
+
*/
|
2905
|
+
VALUE env_repmgr_get_ack_policy(VALUE obj)
|
2906
|
+
{
|
2907
|
+
t_envh *eh;
|
2908
|
+
int policy;
|
2909
|
+
|
2910
|
+
Data_Get_Struct(obj,t_envh,eh);
|
2911
|
+
eh->env->repmgr_get_ack_policy(eh->env, &policy);
|
2912
|
+
|
2913
|
+
return INT2NUM(policy);
|
2914
|
+
}
|
2915
|
+
|
2916
|
+
/*
|
2917
|
+
* call-seq:
|
2918
|
+
* env.repmgr_start(num_threads, flags)
|
2919
|
+
*
|
2920
|
+
* start the replication manager
|
2921
|
+
*/
|
2922
|
+
VALUE env_repmgr_start(VALUE obj, VALUE num_threads, VALUE flags)
|
2923
|
+
{
|
2924
|
+
t_envh *eh;
|
2925
|
+
int rv;
|
2926
|
+
|
2927
|
+
Data_Get_Struct(obj,t_envh,eh);
|
2928
|
+
rv = eh->env->repmgr_start(eh->env, NUM2INT(num_threads), NUM2UINT(flags));
|
2929
|
+
|
2930
|
+
if ( rv != 0 ) raise_error(rv, "env_repmgr_start: %s", db_strerror(rv));
|
2931
|
+
return Qtrue;
|
2932
|
+
}
|
2933
|
+
|
2934
|
+
/*
|
2935
|
+
* call-seq:
|
2936
|
+
* env.repmgr_stat_print
|
2937
|
+
*
|
2938
|
+
* prints replication manager stats
|
2939
|
+
*/
|
2940
|
+
VALUE env_repmgr_stat_print(VALUE obj, VALUE flags)
|
2941
|
+
{
|
2942
|
+
t_envh *eh;
|
2943
|
+
int rv;
|
2944
|
+
|
2945
|
+
Data_Get_Struct(obj,t_envh,eh);
|
2946
|
+
rv = eh->env->repmgr_stat_print(eh->env, NUM2UINT(flags));
|
2947
|
+
|
2948
|
+
if ( rv != 0 ) raise_error(rv, "env_repmgr_stat_print: %s", db_strerror(rv));
|
2949
|
+
return Qtrue;
|
2950
|
+
}
|
2951
|
+
|
2952
|
+
|
2752
2953
|
static void txn_finish(t_txnh *txn)
|
2753
2954
|
{
|
2754
2955
|
if ( RTEST(ruby_debug) )
|
@@ -2935,7 +3136,7 @@ void Init_bdb() {
|
|
2935
3136
|
rb_define_method(cDb,"associate",db_associate,4);
|
2936
3137
|
rb_define_method(cDb,"btree_compare=",db_btree_compare_set,1);
|
2937
3138
|
rb_define_method(cDb,"flags=",db_flags_set,1);
|
2938
|
-
|
3139
|
+
rb_define_method(cDb,"flags",db_flags_get,0);
|
2939
3140
|
rb_define_method(cDb,"open",db_open,6);
|
2940
3141
|
rb_define_method(cDb,"close",db_close,1);
|
2941
3142
|
rb_define_method(cDb,"[]",db_aget,1);
|
@@ -2977,8 +3178,8 @@ void Init_bdb() {
|
|
2977
3178
|
rb_define_method(cEnv,"close",env_close,0);
|
2978
3179
|
rb_define_method(cEnv,"db",env_db,0);
|
2979
3180
|
rb_define_method(cEnv,"cachesize=",env_set_cachesize,1);
|
2980
|
-
|
2981
|
-
|
3181
|
+
rb_define_method(cEnv,"cachesize",env_get_cachesize,0);
|
3182
|
+
rb_define_method(cEnv,"flags",env_get_flags,0);
|
2982
3183
|
rb_define_method(cEnv,"flags_on=",env_set_flags_on,1);
|
2983
3184
|
rb_define_method(cEnv,"flags_off=",env_set_flags_off,1);
|
2984
3185
|
rb_define_method(cEnv,"list_dbs",env_list_dbs,0);
|
@@ -2995,19 +3196,31 @@ void Init_bdb() {
|
|
2995
3196
|
rb_define_method(cEnv,"set_lk_detect",env_set_lk_detect,1);
|
2996
3197
|
rb_define_method(cEnv,"get_lk_detect",env_get_lk_detect,0);
|
2997
3198
|
rb_define_method(cEnv,"set_lk_max_locks",env_set_lk_max_locks,1);
|
2998
|
-
|
3199
|
+
rb_define_method(cEnv,"get_lk_max_locks",env_get_lk_max_locks,0);
|
2999
3200
|
rb_define_method(cEnv,"set_lk_max_objects",env_set_lk_max_objects,1);
|
3000
|
-
|
3201
|
+
rb_define_method(cEnv,"get_lk_max_objects",env_get_lk_max_objects,0);
|
3001
3202
|
rb_define_method(cEnv,"set_shm_key",env_set_shm_key,1);
|
3002
3203
|
rb_define_method(cEnv,"get_shm_key",env_get_shm_key,0);
|
3003
3204
|
|
3004
3205
|
rb_define_method(cEnv,"set_data_dir",env_set_data_dir,1);
|
3005
|
-
|
3206
|
+
rb_define_method(cEnv,"get_data_dirs",env_get_data_dirs,0);
|
3006
3207
|
rb_define_method(cEnv,"set_lg_dir",env_set_lg_dir,1);
|
3007
|
-
|
3208
|
+
rb_define_method(cEnv,"get_lg_dir",env_get_lg_dir,0);
|
3008
3209
|
rb_define_method(cEnv,"set_tmp_dir",env_set_tmp_dir,1);
|
3009
|
-
|
3010
|
-
|
3210
|
+
rb_define_method(cEnv,"get_tmp_dir",env_get_tmp_dir,0);
|
3211
|
+
rb_define_method(cEnv,"get_home",env_get_home,0);
|
3212
|
+
rb_define_method(cEnv,"set_verbose",env_set_verbose,2);
|
3213
|
+
|
3214
|
+
rb_define_method(cEnv,"rep_priority=", env_rep_set_priority, 1);
|
3215
|
+
rb_define_method(cEnv,"rep_priority", env_rep_get_priority, 0);
|
3216
|
+
rb_define_method(cEnv,"rep_nsites=", env_rep_set_nsites, 1);
|
3217
|
+
rb_define_method(cEnv,"rep_nsites", env_rep_get_nsites, 0);
|
3218
|
+
rb_define_method(cEnv,"repmgr_set_local_site", env_repmgr_set_local_site, 2);
|
3219
|
+
rb_define_method(cEnv,"repmgr_add_remote_site", env_repmgr_add_remote_site, 2);
|
3220
|
+
rb_define_method(cEnv,"repmgr_ack_policy=", env_repmgr_set_ack_policy, 1);
|
3221
|
+
rb_define_method(cEnv,"repmgr_ack_policy", env_repmgr_get_ack_policy, 0);
|
3222
|
+
rb_define_method(cEnv,"repmgr_start", env_repmgr_start, 2);
|
3223
|
+
rb_define_method(cEnv,"repmgr_stat_print", env_repmgr_stat_print, 1);
|
3011
3224
|
|
3012
3225
|
cTxnStat = rb_define_class_under(mBdb,"TxnStat",rb_cObject);
|
3013
3226
|
rb_define_method(cTxnStat,"[]",stat_aref,1);
|