leveldb-jruby 1.0.0-java → 1.1.0-java

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 762997e6da547e45865379880266e7332bb00937
4
- data.tar.gz: 02b22ff12bb76f80507c8ffcde25fbfd5cf0dc79
3
+ metadata.gz: 7c4ffc5660e3595dc15bfc647335e73fe20af1b6
4
+ data.tar.gz: 888023e7e7f7c9ba142b6e171dd22cb7e442766b
5
5
  SHA512:
6
- metadata.gz: 9cb03e1463d9e69f547d1463169efae0034fea7cfd4ee1f058dafa0ed919a882feae7000ff920e10135c484df9ef9f5a30180f197b8c3f17d5c240a1cf1aacc9
7
- data.tar.gz: cadeda50ae412916a5a0c78099a76ad83f5e1967b0e53ca9160cb037527d4c9642a9f481c41e471f7d4e14cc3fff4d7760396009785cb0bf8a32e5d163be40e1
6
+ metadata.gz: daac4053de13e403eaf5e5bec4776142c03cd83f5d9d48a67e1007b26003714ae029fcd877b3a10cb30adffd67aa90c82b467dee10b305977c4c60bff6deb75b
7
+ data.tar.gz: e849f6fe4e0ec85e4dd18697a56b02e72852a2996bdb27bf4aa6c7e6ceeefa338846078baccdd67d5c16b9f7b274ea8951b84d140a6bd3ce897176a6670d82d9
data/README.md CHANGED
@@ -34,6 +34,10 @@ snapshot = db.snapshot
34
34
  db.put('foo', 'baz')
35
35
  puts snapshot.get('foo') # => 'bar'
36
36
  puts db.get('foo') # => 'baz'
37
+
38
+ # compactions
39
+ db.compact_range(from: 'foo', to: 'foo08')
40
+ db.full_compaction
37
41
  ```
38
42
 
39
43
  ## Contributing
@@ -113,6 +113,42 @@ module LevelDb
113
113
  def snapshot
114
114
  Snapshot.new(@db)
115
115
  end
116
+
117
+ def compact_range(options={})
118
+ from = options[:from]
119
+ to = options[:to]
120
+ @db.compact_range(encode_key(from), encode_key(to))
121
+ end
122
+
123
+ def full_compaction(options={})
124
+ pre_compaction_files_per_level = nil
125
+ i = 0
126
+ until pre_compaction_files_per_level == files_per_level
127
+ if i < options.fetch(:max_iterations, MAX_ITERATIONS)
128
+ pre_compaction_files_per_level = files_per_level
129
+ compact_range
130
+ i += 1
131
+ else
132
+ raise ConvergenceError, "Failed to reach convergence in #{i} iterations"
133
+ end
134
+ end
135
+ end
136
+
137
+ NUM_FILES_AT_LEVEL_FORMAT = 'leveldb.num-files-at-level%d'.freeze
138
+ MAX_ITERATIONS = 10
139
+ ConvergenceError = Class.new(Error)
140
+
141
+ private
142
+
143
+ def files_per_level
144
+ files_per_level = []
145
+ level = 0
146
+ while (value = @db.get_property(sprintf(NUM_FILES_AT_LEVEL_FORMAT, level)))
147
+ files_per_level << value.to_i
148
+ level += 1
149
+ end
150
+ files_per_level
151
+ end
116
152
  end
117
153
 
118
154
  module LazyEnumerable
@@ -1,5 +1,5 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  module LevelDb
4
- VERSION = '1.0.0'.freeze
4
+ VERSION = '1.1.0'.freeze
5
5
  end
metadata CHANGED
@@ -1,19 +1,19 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: leveldb-jruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: java
6
6
  authors:
7
7
  - Theo Hultberg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-10 00:00:00.000000000 Z
11
+ date: 2016-02-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - ~>
16
+ - - "~>"
17
17
  - !ruby/object:Gem::Version
18
18
  version: 1.8.0
19
19
  name: leveldbjni-jars
@@ -21,7 +21,7 @@ dependencies:
21
21
  type: :runtime
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 1.8.0
27
27
  description: LevelDB for JRuby over JNI
@@ -45,17 +45,17 @@ require_paths:
45
45
  - lib
46
46
  required_ruby_version: !ruby/object:Gem::Requirement
47
47
  requirements:
48
- - - '>='
48
+ - - ">="
49
49
  - !ruby/object:Gem::Version
50
50
  version: '0'
51
51
  required_rubygems_version: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - '>='
53
+ - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: '0'
56
56
  requirements: []
57
57
  rubyforge_project:
58
- rubygems_version: 2.2.2
58
+ rubygems_version: 2.4.8
59
59
  signing_key:
60
60
  specification_version: 4
61
61
  summary: LevelDB for JRuby