bdb 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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);
|