metry 1.2.0 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +6 -0
- data/Manifest.txt +14 -69
- data/TODO +2 -3
- data/cucumber.yml +1 -0
- data/example/example.rb +1 -1
- data/features/psycho/dashboard.feature +17 -0
- data/features/psycho/goals.feature +24 -0
- data/features/psycho/visitor_tracking.feature +32 -0
- data/features/step_definitions/goals.rb +3 -0
- data/features/step_definitions/tracking.rb +1 -1
- data/features/step_definitions/web.rb +14 -2
- data/features/support/env.rb +4 -0
- data/lib/metry.rb +4 -6
- data/lib/metry/experiment.rb +6 -8
- data/lib/metry/psycho.rb +112 -0
- data/lib/metry/psycho/dashboard.erb +14 -0
- data/lib/metry/psycho/layout.erb +8 -0
- data/lib/metry/psycho/new_goal.erb +9 -0
- data/lib/metry/psycho/visitor.erb +7 -0
- data/lib/metry/rack/tracking.rb +17 -13
- data/lib/metry/storage.rb +116 -0
- data/radiant/example/features/metry.feature +8 -8
- data/radiant/example/features/psycho.feature +13 -0
- data/radiant/example/features/step_definitions/experiments.rb +2 -2
- data/radiant/example/features/step_definitions/tracking.rb +1 -1
- data/radiant/example/features/support/env.rb +3 -0
- data/radiant/extension/lib/metry_authenticator.rb +30 -0
- data/radiant/extension/lib/metry_tags.rb +2 -1
- data/radiant/extension/metry_extension.rb +1 -1
- data/test/{test_tokyo.rb → test_storage.rb} +3 -3
- metadata +17 -72
- data/lib/metry/memory.rb +0 -27
- data/lib/metry/tokyo.rb +0 -181
- data/vendor/rufus-tokyo/CHANGELOG.txt +0 -112
- data/vendor/rufus-tokyo/CREDITS.txt +0 -27
- data/vendor/rufus-tokyo/LICENSE.txt +0 -21
- data/vendor/rufus-tokyo/README.txt +0 -310
- data/vendor/rufus-tokyo/Rakefile +0 -118
- data/vendor/rufus-tokyo/TODO.txt +0 -25
- data/vendor/rufus-tokyo/doc/decision_table.numbers +0 -0
- data/vendor/rufus-tokyo/doc/rdoc-style.css +0 -320
- data/vendor/rufus-tokyo/lib/rufus-edo.rb +0 -3
- data/vendor/rufus-tokyo/lib/rufus-tokyo.rb +0 -3
- data/vendor/rufus-tokyo/lib/rufus/edo.rb +0 -39
- data/vendor/rufus-tokyo/lib/rufus/edo/README.txt +0 -106
- data/vendor/rufus-tokyo/lib/rufus/edo/cabcore.rb +0 -333
- data/vendor/rufus-tokyo/lib/rufus/edo/cabinet/abstract.rb +0 -219
- data/vendor/rufus-tokyo/lib/rufus/edo/cabinet/table.rb +0 -159
- data/vendor/rufus-tokyo/lib/rufus/edo/error.rb +0 -36
- data/vendor/rufus-tokyo/lib/rufus/edo/ntyrant.rb +0 -4
- data/vendor/rufus-tokyo/lib/rufus/edo/ntyrant/abstract.rb +0 -137
- data/vendor/rufus-tokyo/lib/rufus/edo/ntyrant/table.rb +0 -141
- data/vendor/rufus-tokyo/lib/rufus/edo/tabcore.rb +0 -567
- data/vendor/rufus-tokyo/lib/rufus/tokyo.rb +0 -58
- data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/abstract.rb +0 -568
- data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/lib.rb +0 -230
- data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/table.rb +0 -753
- data/vendor/rufus-tokyo/lib/rufus/tokyo/cabinet/util.rb +0 -425
- data/vendor/rufus-tokyo/lib/rufus/tokyo/config.rb +0 -161
- data/vendor/rufus-tokyo/lib/rufus/tokyo/dystopia.rb +0 -43
- data/vendor/rufus-tokyo/lib/rufus/tokyo/dystopia/lib.rb +0 -65
- data/vendor/rufus-tokyo/lib/rufus/tokyo/dystopia/words.rb +0 -71
- data/vendor/rufus-tokyo/lib/rufus/tokyo/hmethods.rb +0 -111
- data/vendor/rufus-tokyo/lib/rufus/tokyo/query.rb +0 -102
- data/vendor/rufus-tokyo/lib/rufus/tokyo/transactions.rb +0 -74
- data/vendor/rufus-tokyo/lib/rufus/tokyo/ttcommons.rb +0 -59
- data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant.rb +0 -35
- data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant/abstract.rb +0 -146
- data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant/lib.rb +0 -153
- data/vendor/rufus-tokyo/lib/rufus/tokyo/tyrant/table.rb +0 -162
- data/vendor/rufus-tokyo/rufus-tokyo.gemspec +0 -25
- data/vendor/rufus-tokyo/spec/cabinet_spec.rb +0 -472
- data/vendor/rufus-tokyo/spec/cabinetconfig_spec.rb +0 -82
- data/vendor/rufus-tokyo/spec/edo_cabinet_spec.rb +0 -447
- data/vendor/rufus-tokyo/spec/edo_ntyrant_spec.rb +0 -299
- data/vendor/rufus-tokyo/spec/edo_ntyrant_table_spec.rb +0 -462
- data/vendor/rufus-tokyo/spec/edo_table_spec.rb +0 -560
- data/vendor/rufus-tokyo/spec/hmethods_spec.rb +0 -44
- data/vendor/rufus-tokyo/spec/incr.lua +0 -20
- data/vendor/rufus-tokyo/spec/spec.rb +0 -9
- data/vendor/rufus-tokyo/spec/spec_base.rb +0 -23
- data/vendor/rufus-tokyo/spec/start_tyrants.sh +0 -26
- data/vendor/rufus-tokyo/spec/stop_tyrants.sh +0 -9
- data/vendor/rufus-tokyo/spec/table_spec.rb +0 -567
- data/vendor/rufus-tokyo/spec/tyrant_spec.rb +0 -309
- data/vendor/rufus-tokyo/spec/tyrant_table_spec.rb +0 -479
- data/vendor/rufus-tokyo/spec/util_list_spec.rb +0 -200
- data/vendor/rufus-tokyo/spec/util_map_spec.rb +0 -132
- data/vendor/rufus-tokyo/tasks/dev.rb +0 -70
- data/vendor/rufus-tokyo/test/bm0.rb +0 -353
- data/vendor/rufus-tokyo/test/bm1_compression.rb +0 -54
- data/vendor/rufus-tokyo/test/con0.rb +0 -30
- data/vendor/rufus-tokyo/test/mem.rb +0 -49
- data/vendor/rufus-tokyo/test/mem1.rb +0 -44
- data/vendor/rufus-tokyo/test/readme0.rb +0 -17
- data/vendor/rufus-tokyo/test/readme1.rb +0 -21
- data/vendor/rufus-tokyo/test/readme2.rb +0 -15
- data/vendor/rufus-tokyo/test/readme3.rb +0 -24
- data/vendor/rufus-tokyo/test/readmes_test.sh +0 -17
@@ -1,54 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'rubygems'
|
3
|
-
require 'faker'
|
4
|
-
require 'benchmark'
|
5
|
-
require 'rufus/tokyo'
|
6
|
-
|
7
|
-
N = 100_000
|
8
|
-
|
9
|
-
NAME = Faker::Name.name
|
10
|
-
|
11
|
-
DATA = (0..N-1).collect { |i|
|
12
|
-
#{ 'name' => Faker::Name.name, 'sex' => 'male' }
|
13
|
-
{ 'name' => NAME * 100, 'sex' => 'male' }
|
14
|
-
}
|
15
|
-
|
16
|
-
t0 = Rufus::Tokyo::Table.new('toto0.tdb')
|
17
|
-
t1 = Rufus::Tokyo::Table.new('toto1.tdb', :opts => 'ld')
|
18
|
-
t2 = Rufus::Tokyo::Table.new('toto2.tdb', :opts => 'lb')
|
19
|
-
#t3 = Rufus::Tokyo::Table.new('toto3.tdb', :opts => 'lt')
|
20
|
-
|
21
|
-
t0.clear
|
22
|
-
t1.clear
|
23
|
-
t2.clear
|
24
|
-
#t3.clear
|
25
|
-
|
26
|
-
Benchmark.benchmark(' ' * 20 + Benchmark::Tms::CAPTION, 20) do |b|
|
27
|
-
b.report('no compression') do
|
28
|
-
DATA.each_with_index { |row, i| t0["pk#{i}"] = row }
|
29
|
-
end
|
30
|
-
b.report('deflate') do
|
31
|
-
DATA.each_with_index { |row, i| t1["pk#{i}"] = row }
|
32
|
-
end
|
33
|
-
b.report('bzip2') do
|
34
|
-
DATA.each_with_index { |row, i| t2["pk#{i}"] = row }
|
35
|
-
end
|
36
|
-
#b.report('tcbs') do
|
37
|
-
# DATA.each_with_index { |row, i| t3["pk#{i}"] = row }
|
38
|
-
#end
|
39
|
-
end
|
40
|
-
|
41
|
-
t0.close
|
42
|
-
t1.close
|
43
|
-
t2.close
|
44
|
-
#t3.close
|
45
|
-
|
46
|
-
puts
|
47
|
-
|
48
|
-
puts 'no compression : ' + `ls -l toto0.tdb | awk '{ print $5 }'`
|
49
|
-
puts 'deflate : ' + `ls -l toto1.tdb | awk '{ print $5 }'`
|
50
|
-
puts 'bzip2 : ' + `ls -l toto2.tdb | awk '{ print $5 }'`
|
51
|
-
#puts 'tcbs : ' + `ls -l toto3.tdb | awk '{ print $5 }'`
|
52
|
-
|
53
|
-
puts
|
54
|
-
|
@@ -1,30 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'rubygems'
|
3
|
-
|
4
|
-
require 'rufus/scheduler'
|
5
|
-
require 'rufus/tokyo/tyrant'
|
6
|
-
require 'rufus/edo/ntyrant'
|
7
|
-
|
8
|
-
SCHEDULER = Rufus::Scheduler.start_new
|
9
|
-
|
10
|
-
FFI_TABLE = Rufus::Tokyo::TyrantTable.new('127.0.0.1', 45001)
|
11
|
-
NET_TABLE = Rufus::Edo::NetTyrantTable.new('127.0.0.1', 45001)
|
12
|
-
|
13
|
-
def check_connection (table)
|
14
|
-
p [ table.class, table.stat ]
|
15
|
-
end
|
16
|
-
|
17
|
-
$interval = 0
|
18
|
-
|
19
|
-
BLOCK = lambda {
|
20
|
-
puts "=== #{Time.now}"
|
21
|
-
check_connection(FFI_TABLE)
|
22
|
-
check_connection(NET_TABLE)
|
23
|
-
$interval = $interval + 1
|
24
|
-
SCHEDULER.in("#{$interval}h", &BLOCK)
|
25
|
-
}
|
26
|
-
|
27
|
-
BLOCK.call
|
28
|
-
|
29
|
-
SCHEDULER.join
|
30
|
-
|
@@ -1,49 +0,0 @@
|
|
1
|
-
|
2
|
-
%w{ lib test }.each do |path|
|
3
|
-
path = File.expand_path(File.dirname(__FILE__) + '/../' + path)
|
4
|
-
$: << path unless $:.include?(path)
|
5
|
-
end
|
6
|
-
|
7
|
-
require 'fileutils'
|
8
|
-
|
9
|
-
|
10
|
-
def self_ps
|
11
|
-
ps = `ps -v #{$$}`.split("\n").last.split(' ')
|
12
|
-
%w{
|
13
|
-
pid stat time sl re pagein vsz rss lim tsiz pcpu pmem command
|
14
|
-
}.inject({}) { |h, k|
|
15
|
-
h[k.intern] = ps.shift; h
|
16
|
-
}
|
17
|
-
end
|
18
|
-
|
19
|
-
def pmem (msg)
|
20
|
-
p [ msg, "#{self_ps[:vsz].to_i / 1024}k" ]
|
21
|
-
end
|
22
|
-
|
23
|
-
pmem 'starting'
|
24
|
-
|
25
|
-
require 'rubygems'
|
26
|
-
require 'rufus/tokyo'
|
27
|
-
|
28
|
-
FileUtils.rm('test_mem.tch')
|
29
|
-
|
30
|
-
db = Rufus::Tokyo::Cabinet.new('test_mem.tch')
|
31
|
-
|
32
|
-
pmem 'wired to db'
|
33
|
-
|
34
|
-
500_000.times { |i| db[i.to_s] = "value#{i}" }
|
35
|
-
|
36
|
-
pmem 'loaded 500_000 records'
|
37
|
-
|
38
|
-
db.each { |k, v| k }
|
39
|
-
|
40
|
-
pmem 'iterated 500_000 records'
|
41
|
-
|
42
|
-
a = db.collect { |k, v| k + v }
|
43
|
-
|
44
|
-
pmem 'collected 500_000 records'
|
45
|
-
|
46
|
-
db.close
|
47
|
-
|
48
|
-
pmem 'closed db'
|
49
|
-
|
@@ -1,44 +0,0 @@
|
|
1
|
-
|
2
|
-
%w{ lib test }.each do |path|
|
3
|
-
path = File.expand_path(File.dirname(__FILE__) + '/../' + path)
|
4
|
-
$: << path unless $:.include?(path)
|
5
|
-
end
|
6
|
-
|
7
|
-
require 'fileutils'
|
8
|
-
|
9
|
-
|
10
|
-
def self_ps
|
11
|
-
ps = `ps -v #{$$}`.split("\n").last.split(' ')
|
12
|
-
%w{
|
13
|
-
pid stat time sl re pagein vsz rss lim tsiz pcpu pmem command
|
14
|
-
}.inject({}) { |h, k|
|
15
|
-
h[k.intern] = ps.shift; h
|
16
|
-
}
|
17
|
-
end
|
18
|
-
|
19
|
-
def pmem (msg)
|
20
|
-
p [ msg, "#{self_ps[:vsz].to_i / 1024}k" ]
|
21
|
-
end
|
22
|
-
|
23
|
-
pmem 'starting'
|
24
|
-
|
25
|
-
require 'rubygems'
|
26
|
-
require 'rufus/tokyo/util'
|
27
|
-
|
28
|
-
pmem 'required'
|
29
|
-
|
30
|
-
l = Rufus::Tokyo::List.new
|
31
|
-
|
32
|
-
100000.times { |i| l << i.to_s }
|
33
|
-
|
34
|
-
pmem 'stored'
|
35
|
-
|
36
|
-
#100000.times { |i| l.delete_at(0) }
|
37
|
-
#100000.times { |i| s = l.delete_at(0); Rufus::Tokyo::CabinetLib.tcfree(s) }
|
38
|
-
s = nil
|
39
|
-
100000.times { |i| s ||= l.delete_at(0); }
|
40
|
-
p s.class
|
41
|
-
p s.public_methods.sort
|
42
|
-
|
43
|
-
pmem 'cleared'
|
44
|
-
|
@@ -1,17 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'rubygems'
|
3
|
-
require 'rufus/tokyo'
|
4
|
-
|
5
|
-
db = Rufus::Tokyo::Cabinet.new('data.tch')
|
6
|
-
|
7
|
-
db['nada'] = 'surf'
|
8
|
-
|
9
|
-
p db['nada'] # => 'surf'
|
10
|
-
p db['lost'] # => nil
|
11
|
-
|
12
|
-
5000.times { |i| db[i.to_s] = "x" }
|
13
|
-
|
14
|
-
p db.inject { |r, (k, v)| k } # => 4999
|
15
|
-
|
16
|
-
db.close
|
17
|
-
|
@@ -1,21 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'rubygems'
|
3
|
-
require 'rufus/tokyo'
|
4
|
-
|
5
|
-
t = Rufus::Tokyo::Table.new('table.tdb')
|
6
|
-
|
7
|
-
t['pk0'] = { 'name' => 'alfred', 'age' => '22' }
|
8
|
-
t['pk1'] = { 'name' => 'bob', 'age' => '18' }
|
9
|
-
t['pk2'] = { 'name' => 'charly', 'age' => '45' }
|
10
|
-
t['pk3'] = { 'name' => 'doug', 'age' => '77' }
|
11
|
-
t['pk4'] = { 'name' => 'ephrem', 'age' => '32' }
|
12
|
-
|
13
|
-
p t.query { |q|
|
14
|
-
q.add_condition 'age', :numge, '32'
|
15
|
-
q.order_by 'age'
|
16
|
-
}
|
17
|
-
# => [ {"name"=>"ephrem", :pk=>"pk4", "age"=>"32"},
|
18
|
-
# {"name"=>"charly", :pk=>"pk2", "age"=>"45"} ]
|
19
|
-
|
20
|
-
t.close
|
21
|
-
|
@@ -1,24 +0,0 @@
|
|
1
|
-
|
2
|
-
# ttserver -port 45002 tmp/data.tct
|
3
|
-
|
4
|
-
|
5
|
-
require 'rubygems'
|
6
|
-
require 'rufus/tokyo/tyrant'
|
7
|
-
|
8
|
-
t = Rufus::Tokyo::TyrantTable.new('localhost', 45002)
|
9
|
-
|
10
|
-
t['pk0'] = { 'name' => 'alfred', 'age' => '22' }
|
11
|
-
t['pk1'] = { 'name' => 'bob', 'age' => '18' }
|
12
|
-
t['pk2'] = { 'name' => 'charly', 'age' => '45' }
|
13
|
-
t['pk3'] = { 'name' => 'doug', 'age' => '77' }
|
14
|
-
t['pk4'] = { 'name' => 'ephrem', 'age' => '32' }
|
15
|
-
|
16
|
-
p t.query { |q|
|
17
|
-
q.add_condition 'age', :numge, '32'
|
18
|
-
q.order_by 'age'
|
19
|
-
}
|
20
|
-
# => [ {"name"=>"ephrem", :pk=>"pk4", "age"=>"32"},
|
21
|
-
# {"name"=>"charly", :pk=>"pk2", "age"=>"45"} ]
|
22
|
-
|
23
|
-
t.close
|
24
|
-
|
@@ -1,17 +0,0 @@
|
|
1
|
-
#!/bin/bash
|
2
|
-
|
3
|
-
#
|
4
|
-
# testing the 4 samples in README.txt
|
5
|
-
#
|
6
|
-
|
7
|
-
[ -d tmp ] || mkdir tmp
|
8
|
-
nohup ttserver -port 45001 tmp/data.tch &
|
9
|
-
nohup ttserver -port 45002 tmp/data.tct &
|
10
|
-
|
11
|
-
ruby19 -Ilib test/readme0.rb
|
12
|
-
ruby19 -Ilib test/readme1.rb
|
13
|
-
ruby19 -Ilib test/readme2.rb
|
14
|
-
ruby19 -Ilib test/readme3.rb
|
15
|
-
|
16
|
-
killall ttserver
|
17
|
-
|