rocksdb-ruby 0.1.4 → 0.1.5
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.
- checksums.yaml +4 -4
- data/.travis.yml +22 -0
- data/LICENSE.txt +1 -1
- data/README.md +3 -0
- data/Rakefile +1 -1
- data/ext/rocksdb/rocksdb_db_rb.cc +22 -1
- data/ext/rocksdb/rocksdb_db_rb.h +1 -0
- data/ext/rocksdb/rocksdb_rb.cc +1 -0
- data/lib/rocksdb/ruby/version.rb +1 -1
- data/spec/db_null_spec.rb +40 -0
- data/spec/db_spec.rb +18 -0
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 46f12f1cc2ae83812abc436dc6fdb65bdf6da63e
|
4
|
+
data.tar.gz: f992fc491b591ed135b0c058532d887516c30f87
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c86f72482d414946e8811c3132f3619b6746bd6a91e3233a7e81aab6939fd6b21707db83fcdf845494035ace83b917539c261594120ef9e399f5b367981bdad5
|
7
|
+
data.tar.gz: 800ed46a8fb0fda34ccb8517abf8d200eb8d8b74d3658550d371fbf2f82638da03c564cdc9278cb9c909a013e16b97026152e939e48c44e073544aeb4c143a42
|
data/.travis.yml
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
- 2.4.0
|
4
|
+
script: bundle exec rake spec || ( cat ext/rocksdb/mkmf.log && /bin/false )
|
5
|
+
|
6
|
+
before_install:
|
7
|
+
- sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
|
8
|
+
- sudo apt-get update -qq
|
9
|
+
- sudo apt-get install gcc-6 g++-6 libsnappy-dev zlib1g-dev libbz2-dev -qq
|
10
|
+
- export CXX="g++-6" CC="gcc-6"
|
11
|
+
- sudo ln -s /usr/bin/gcc-6 /usr/local/bin/gcc
|
12
|
+
- sudo ln -s /usr/bin/g++-6 /usr/local/bin/g++
|
13
|
+
- gem install bundler
|
14
|
+
|
15
|
+
install:
|
16
|
+
- git clone https://github.com/facebook/rocksdb.git /tmp/rocksdb
|
17
|
+
- pushd /tmp/rocksdb
|
18
|
+
- make clean
|
19
|
+
- make shared_lib
|
20
|
+
- popd
|
21
|
+
- export ROCKSDB_RUBY_BUILD_PARAMS="--with-rocksdb-dir=/tmp/rocksdb --with-rocksdb-lib=/tmp/rocksdb"
|
22
|
+
- bundle install
|
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
[](https://travis-ci.org/isamu/rocksdb-ruby)
|
2
|
+
[](https://badge.fury.io/rb/rocksdb-ruby)
|
3
|
+
|
1
4
|
# RocksDB
|
2
5
|
|
3
6
|
The rocksdb is a persistent in-process key-value store.
|
data/Rakefile
CHANGED
@@ -5,7 +5,7 @@ require "rspec/core/rake_task"
|
|
5
5
|
RSpec::Core::RakeTask.new('spec')
|
6
6
|
task :build do
|
7
7
|
Dir.chdir('ext/rocksdb/') do
|
8
|
-
output = `ruby extconf.rb`
|
8
|
+
output = `ruby extconf.rb #{ENV['ROCKSDB_RUBY_BUILD_PARAMS']}`
|
9
9
|
raise output unless $? == 0
|
10
10
|
output = `make`
|
11
11
|
raise output unless $? == 0
|
@@ -62,7 +62,6 @@ extern "C" {
|
|
62
62
|
|
63
63
|
void set_opt(rocksdb::Options* options, VALUE *v_options){
|
64
64
|
set_opt_unit_val(&options->max_bytes_for_level_base, (char *) "max_bytes_for_level_base", v_options);
|
65
|
-
set_opt_int_val(&options->max_grandparent_overlap_factor, (char *) "max_grandparent_overlap_factor", v_options);
|
66
65
|
set_opt_unit_val(&options->delete_obsolete_files_period_micros, (char *) "delete_obsolete_files_period_micros", v_options);
|
67
66
|
}
|
68
67
|
|
@@ -268,4 +267,26 @@ extern "C" {
|
|
268
267
|
VALUE rocksdb_db_debug(VALUE self){
|
269
268
|
return Qnil;
|
270
269
|
}
|
270
|
+
|
271
|
+
VALUE rocksdb_db_compact(int argc, VALUE* argv, VALUE self) {
|
272
|
+
VALUE v_from, v_to;
|
273
|
+
rocksdb::Slice from, to;
|
274
|
+
|
275
|
+
rb_scan_args(argc, argv, "02", &v_from, &v_to);
|
276
|
+
|
277
|
+
if(!NIL_P(v_from)) {
|
278
|
+
Check_Type(v_from, T_STRING);
|
279
|
+
from = rocksdb::Slice((char*)RSTRING_PTR(v_from), RSTRING_LEN(v_from));
|
280
|
+
}
|
281
|
+
|
282
|
+
if(!NIL_P(v_to)) {
|
283
|
+
Check_Type(v_to, T_STRING);
|
284
|
+
to = rocksdb::Slice((char*)RSTRING_PTR(v_to), RSTRING_LEN(v_to));
|
285
|
+
}
|
286
|
+
|
287
|
+
rocksdb_pointer* db_pointer;
|
288
|
+
Data_Get_Struct(self, rocksdb_pointer, db_pointer);
|
289
|
+
rocksdb::Status status = db_pointer->db->CompactRange(rocksdb::CompactRangeOptions(), &from, &to);
|
290
|
+
return status.ok() ? Qtrue : Qfalse;
|
291
|
+
}
|
271
292
|
}
|
data/ext/rocksdb/rocksdb_db_rb.h
CHANGED
@@ -18,6 +18,7 @@ extern "C" {
|
|
18
18
|
VALUE rocksdb_db_each_index(VALUE self);
|
19
19
|
VALUE rocksdb_db_each_with_index(VALUE self);
|
20
20
|
VALUE rocksdb_db_reverse_each(VALUE self);
|
21
|
+
VALUE rocksdb_db_compact(int argc, VALUE* argv, VALUE self);
|
21
22
|
void db_free(rocksdb_pointer* db_pointer);
|
22
23
|
void set_opt(rocksdb::Options* opt, VALUE *v_options);
|
23
24
|
void set_opt_unit_val(uint64_t* opt, char* name, VALUE *v_options);
|
data/ext/rocksdb/rocksdb_rb.cc
CHANGED
@@ -30,6 +30,7 @@ extern "C" {
|
|
30
30
|
rb_define_method(cRocksdb_db, "close", (METHOD)rocksdb_db_close, 0);
|
31
31
|
rb_define_method(cRocksdb_db, "debug", (METHOD)rocksdb_db_debug, 0);
|
32
32
|
rb_define_method(cRocksdb_db, "new_iterator", (METHOD)rocksdb_db_new_iterator, 0);
|
33
|
+
rb_define_method(cRocksdb_db, "compact", (METHOD)rocksdb_db_compact, -1);
|
33
34
|
|
34
35
|
rb_define_method(cRocksdb_db, "iterator", (METHOD)rocksdb_db_each, 0);
|
35
36
|
rb_define_method(cRocksdb_db, "each_index", (METHOD)rocksdb_db_each_index, 0);
|
data/lib/rocksdb/ruby/version.rb
CHANGED
@@ -0,0 +1,40 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'spec_helper'
|
3
|
+
require "rocksdb"
|
4
|
+
|
5
|
+
describe RocksDB do
|
6
|
+
before do
|
7
|
+
@rocksdb = RocksDB::DB.new "/tmp/file"
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'should get null contained data' do
|
11
|
+
@aaa = "aa\0aa"
|
12
|
+
|
13
|
+
@rocksdb.put("test:null", @aaa)
|
14
|
+
expect(@rocksdb.get("test:null")).to eq "aa\0aa"
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'should get from null contained key' do
|
18
|
+
@key = "test:aa\0aa"
|
19
|
+
@rocksdb.put(@key, "aaa")
|
20
|
+
expect(@rocksdb.get(@key)).to eq "aaa"
|
21
|
+
|
22
|
+
@key = "test:aa"
|
23
|
+
expect(@rocksdb.get(@key)).to eq nil
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'should get multi data' do
|
28
|
+
@rocksdb.put("test:nullmulti1\0a", "a\01")
|
29
|
+
@rocksdb.put("test:nullmulti2\0a", "b\02")
|
30
|
+
@rocksdb.put("test:nullmulti3\0a", "c\03")
|
31
|
+
|
32
|
+
expect(@rocksdb.multi_get(["test:nullmulti1\0a", "test:nullmulti2\0a", "test:nullmulti3\0a"])).to eq ["a\01", "b\02", "c\03"]
|
33
|
+
expect(@rocksdb.multi_get(["test:nullmulti1", "test:nullmulti2", "test:nullmulti3"])).to eq ["", "", ""]
|
34
|
+
end
|
35
|
+
|
36
|
+
after do
|
37
|
+
@rocksdb.close
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
data/spec/db_spec.rb
CHANGED
@@ -115,6 +115,24 @@ describe RocksDB do
|
|
115
115
|
expect(@rocksdb["test:hash"]).to eq "a"
|
116
116
|
|
117
117
|
end
|
118
|
+
|
119
|
+
context 'compact' do
|
120
|
+
it 'works with no parameters' do
|
121
|
+
expect(@rocksdb.compact).to eq(true)
|
122
|
+
end
|
123
|
+
|
124
|
+
it 'works with one parameter' do
|
125
|
+
expect(@rocksdb.compact('a')).to eq(true)
|
126
|
+
end
|
127
|
+
|
128
|
+
it 'works with two parameters' do
|
129
|
+
expect(@rocksdb.compact('a', 'x')).to eq(true)
|
130
|
+
end
|
131
|
+
|
132
|
+
it 'works with nil as first parameter' do
|
133
|
+
expect(@rocksdb.compact(nil, 'x')).to eq(true)
|
134
|
+
end
|
135
|
+
end
|
118
136
|
|
119
137
|
after do
|
120
138
|
@rocksdb.close
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rocksdb-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Isamu Arimoto
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -61,6 +61,7 @@ extensions:
|
|
61
61
|
extra_rdoc_files: []
|
62
62
|
files:
|
63
63
|
- ".gitignore"
|
64
|
+
- ".travis.yml"
|
64
65
|
- Gemfile
|
65
66
|
- LICENSE.txt
|
66
67
|
- README.md
|
@@ -80,6 +81,7 @@ files:
|
|
80
81
|
- lib/rocksdb/ruby.rb
|
81
82
|
- lib/rocksdb/ruby/version.rb
|
82
83
|
- rocksdb-ruby.gemspec
|
84
|
+
- spec/db_null_spec.rb
|
83
85
|
- spec/db_options_spec.rb
|
84
86
|
- spec/db_readonly_spec.rb
|
85
87
|
- spec/db_spec.rb
|
@@ -111,6 +113,7 @@ signing_key:
|
|
111
113
|
specification_version: 4
|
112
114
|
summary: A simple RocksDB library for Ruby
|
113
115
|
test_files:
|
116
|
+
- spec/db_null_spec.rb
|
114
117
|
- spec/db_options_spec.rb
|
115
118
|
- spec/db_readonly_spec.rb
|
116
119
|
- spec/db_spec.rb
|