bitcask 0.2.1 → 0.2.2
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/bin/bitcask +6 -1
- data/lib/bitcask.rb +21 -0
- data/lib/bitcask/data_file.rb +4 -0
- data/lib/bitcask/hint_file.rb +5 -1
- data/lib/bitcask/version.rb +1 -1
- metadata +23 -41
data/bin/bitcask
CHANGED
@@ -165,7 +165,12 @@ EOF
|
|
165
165
|
if h = d.hint_file
|
166
166
|
h.each do |e|
|
167
167
|
if f[e.key, nil]
|
168
|
-
|
168
|
+
e = d[e.value_pos, e.value_sz]
|
169
|
+
if e.value == Bitcask::TOMBSTONE
|
170
|
+
keys.delete e.key
|
171
|
+
elsif f[e.key, e.value]
|
172
|
+
keys << e.key
|
173
|
+
end
|
169
174
|
end
|
170
175
|
end
|
171
176
|
else
|
data/lib/bitcask.rb
CHANGED
@@ -29,6 +29,27 @@ class Bitcask
|
|
29
29
|
@keydir.data_files[index.file_id][index.value_pos, index.value_sz].value
|
30
30
|
end
|
31
31
|
|
32
|
+
# Close filehandles and keydir
|
33
|
+
def close
|
34
|
+
close_filehandles
|
35
|
+
close_keydir
|
36
|
+
end
|
37
|
+
|
38
|
+
# Close all filehandles loaded by the keydir.
|
39
|
+
def close_filehandles
|
40
|
+
@keydir.data_files.each do |data_file|
|
41
|
+
data_file.close
|
42
|
+
if h = data_file.instance_variable_get('@hint_file')
|
43
|
+
h.close
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
# Close the keydir.
|
49
|
+
def close_keydir
|
50
|
+
@keydir = nil
|
51
|
+
end
|
52
|
+
|
32
53
|
# Returns a list of all data filenames in this bitcask, sorted from oldest
|
33
54
|
# to newest.
|
34
55
|
def data_file_names
|
data/lib/bitcask/data_file.rb
CHANGED
data/lib/bitcask/hint_file.rb
CHANGED
@@ -19,7 +19,11 @@ class Bitcask::HintFile
|
|
19
19
|
seek offset
|
20
20
|
read
|
21
21
|
end
|
22
|
-
|
22
|
+
|
23
|
+
def close
|
24
|
+
@file.close
|
25
|
+
end
|
26
|
+
|
23
27
|
# Iterates over every entry in this file, yielding an Entry.
|
24
28
|
# Options:
|
25
29
|
# :rewind (true) - Rewind the file to the beginning, instead of starting
|
data/lib/bitcask/version.rb
CHANGED
metadata
CHANGED
@@ -1,72 +1,54 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: bitcask
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 2
|
8
|
-
- 1
|
9
|
-
version: 0.2.1
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.2
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- Kyle Kingsbury
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
|
-
|
17
|
-
date: 2011-06-29 00:00:00 -07:00
|
18
|
-
default_executable:
|
12
|
+
date: 2012-03-19 00:00:00.000000000 Z
|
19
13
|
dependencies: []
|
20
|
-
|
21
14
|
description:
|
22
15
|
email: aphyr@aphyr.com
|
23
|
-
executables:
|
16
|
+
executables:
|
24
17
|
- bitcask
|
25
18
|
extensions: []
|
26
|
-
|
27
19
|
extra_rdoc_files: []
|
28
|
-
|
29
|
-
files:
|
20
|
+
files:
|
30
21
|
- bin/bitcask
|
31
22
|
- lib/bitcask.rb
|
32
|
-
- lib/bitcask/
|
23
|
+
- lib/bitcask/keydir.rb
|
33
24
|
- lib/bitcask/version.rb
|
34
25
|
- lib/bitcask/errors.rb
|
26
|
+
- lib/bitcask/data_file.rb
|
35
27
|
- lib/bitcask/hint_file.rb
|
36
|
-
- lib/bitcask/keydir.rb
|
37
28
|
- LICENSE
|
38
29
|
- README.markdown
|
39
|
-
has_rdoc: true
|
40
30
|
homepage: https://github.com/aphyr/bitcask-ruby
|
41
31
|
licenses: []
|
42
|
-
|
43
32
|
post_install_message:
|
44
33
|
rdoc_options: []
|
45
|
-
|
46
|
-
require_paths:
|
34
|
+
require_paths:
|
47
35
|
- lib
|
48
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
- 1
|
54
|
-
- 8
|
55
|
-
- 6
|
36
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
37
|
+
none: false
|
38
|
+
requirements:
|
39
|
+
- - ! '>='
|
40
|
+
- !ruby/object:Gem::Version
|
56
41
|
version: 1.8.6
|
57
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
version: "0"
|
42
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
43
|
+
none: false
|
44
|
+
requirements:
|
45
|
+
- - ! '>='
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
64
48
|
requirements: []
|
65
|
-
|
66
49
|
rubyforge_project: bitcask
|
67
|
-
rubygems_version: 1.
|
50
|
+
rubygems_version: 1.8.15
|
68
51
|
signing_key:
|
69
52
|
specification_version: 3
|
70
53
|
summary: An (incomplete) interface to the Bitcask storage system
|
71
54
|
test_files: []
|
72
|
-
|