rocksdb-ruby 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
[![Build Status](https://travis-ci.org/isamu/rocksdb-ruby.svg)](https://travis-ci.org/isamu/rocksdb-ruby)
|
2
|
+
[![Gem Version](https://badge.fury.io/rb/rocksdb-ruby.svg)](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
|