memcached 0.16 → 0.16.1
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.tar.gz.sig +0 -0
- data/CHANGELOG +2 -0
- data/ext/extconf.rb +5 -5
- data/ext/libmemcached-0.31.tar.gz +0 -0
- data/memcached.gemspec +2 -2
- data/test/profile/benchmark.rb +14 -116
- data/test/unit/memcached_test.rb +10 -8
- metadata +2 -2
- metadata.gz.sig +0 -0
data.tar.gz.sig
CHANGED
Binary file
|
data/CHANGELOG
CHANGED
data/ext/extconf.rb
CHANGED
@@ -7,12 +7,12 @@ BUNDLE_PATH = BUNDLE.sub(".tar.gz", "")
|
|
7
7
|
DARWIN = `uname -sp` == "Darwin i386\n"
|
8
8
|
|
9
9
|
# is there a better way to do this?
|
10
|
-
if ENV['ARCHFLAGS']
|
11
|
-
|
10
|
+
archflags = if ENV['ARCHFLAGS']
|
11
|
+
ENV['ARCHFLAGS']
|
12
12
|
elsif Config::CONFIG['host_os'] == 'darwin10.0'
|
13
|
-
|
13
|
+
"-arch i386 -arch x86_64"
|
14
14
|
elsif Config::CONFIG['host_os'] =~ /darwin/
|
15
|
-
|
15
|
+
"-arch i386 -arch ppc"
|
16
16
|
else
|
17
17
|
archflags = ''
|
18
18
|
end
|
@@ -58,7 +58,7 @@ if !ENV["EXTERNAL_LIB"]
|
|
58
58
|
puts(cmd = "make install || true 2>&1")
|
59
59
|
raise "'#{cmd}' failed" unless system(cmd)
|
60
60
|
end
|
61
|
-
system("rm -rf #{BUNDLE_PATH}")
|
61
|
+
system("rm -rf #{BUNDLE_PATH}") unless ENV['DEV']
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
Binary file
|
data/memcached.gemspec
CHANGED
@@ -2,12 +2,12 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{memcached}
|
5
|
-
s.version = "0.16"
|
5
|
+
s.version = "0.16.1"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Evan Weaver"]
|
9
9
|
s.cert_chain = ["/Users/eweaver/p/configuration/gem_certificates/evan_weaver-original-public_cert.pem"]
|
10
|
-
s.date = %q{2009-
|
10
|
+
s.date = %q{2009-09-02}
|
11
11
|
s.description = %q{An interface to the libmemcached C client.}
|
12
12
|
s.email = %q{}
|
13
13
|
s.extensions = ["ext/extconf.rb"]
|
data/test/profile/benchmark.rb
CHANGED
@@ -4,25 +4,21 @@ $LOAD_PATH << "#{HERE}/../../lib/"
|
|
4
4
|
UNIX_SOCKET_NAME = File.join(ENV['TMPDIR']||'/tmp','memcached')
|
5
5
|
|
6
6
|
require 'memcached'
|
7
|
-
|
8
7
|
require 'benchmark'
|
9
8
|
require 'rubygems'
|
9
|
+
require 'ruby-debug' if ENV['DEBUG']
|
10
|
+
begin; require 'memory'; rescue LoadError; end
|
10
11
|
|
11
|
-
|
12
|
-
require 'memory'
|
13
|
-
rescue LoadError
|
14
|
-
end
|
12
|
+
ARGV << "--with-memcached" << "--with-memcache-client" if ARGV.join !~ /--with/
|
15
13
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
ARGV.grep(/--with-(\w+)/) do
|
14
|
+
ARGV.each do |flag|
|
15
|
+
require_name = flag[/--with-(\w+)/, 1]
|
16
|
+
gem_name = flag[/--with-(.*)$/, 1]
|
21
17
|
begin
|
22
|
-
|
23
|
-
|
18
|
+
require require_name
|
19
|
+
gem gem_name
|
20
|
+
puts "Loaded #{$1} #{Gem.loaded_specs[gem_name].version.to_s rescue nil}"
|
24
21
|
rescue LoadError
|
25
|
-
puts "Failed"
|
26
22
|
end
|
27
23
|
end
|
28
24
|
|
@@ -42,19 +38,11 @@ class Bench
|
|
42
38
|
|
43
39
|
@opts_networked = [
|
44
40
|
['127.0.0.1:43042', '127.0.0.1:43043'],
|
45
|
-
{
|
46
|
-
:buffer_requests => false,
|
47
|
-
:no_block => false,
|
48
|
-
:namespace => "namespace"
|
49
|
-
}
|
41
|
+
{:buffer_requests => false, :no_block => false, :namespace => "namespace"}
|
50
42
|
]
|
51
43
|
@opt_unix = [
|
52
44
|
["#{UNIX_SOCKET_NAME}0","#{UNIX_SOCKET_NAME}1"],
|
53
|
-
{
|
54
|
-
:buffer_requests => false,
|
55
|
-
:no_block => false,
|
56
|
-
:namespace => "namespace"
|
57
|
-
}
|
45
|
+
{:buffer_requests => false, :no_block => false, :namespace => "namespace"}
|
58
46
|
]
|
59
47
|
@key1 = "Short"
|
60
48
|
@key2 = "Sym1-2-3::45"*8
|
@@ -64,28 +52,16 @@ class Bench
|
|
64
52
|
@key5 = "Medium2"*8
|
65
53
|
@key6 = "Long3"*40
|
66
54
|
|
67
|
-
|
55
|
+
system("ruby #{HERE}/../setup.rb")
|
56
|
+
sleep(1)
|
68
57
|
end
|
69
58
|
|
70
59
|
def run(level = @recursion)
|
71
|
-
|
72
|
-
run_inner(level - 1)
|
73
|
-
else
|
74
|
-
benchmark
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
def run_inner(level)
|
79
|
-
run(level)
|
60
|
+
level > 0 ? run(level - 1) : benchmark
|
80
61
|
end
|
81
62
|
|
82
63
|
private
|
83
64
|
|
84
|
-
def restart_servers
|
85
|
-
system("ruby #{HERE}/../setup.rb")
|
86
|
-
sleep(1)
|
87
|
-
end
|
88
|
-
|
89
65
|
def benchmark
|
90
66
|
Benchmark.bm(35) do |x|
|
91
67
|
|
@@ -143,7 +119,6 @@ class Bench
|
|
143
119
|
end
|
144
120
|
end
|
145
121
|
end
|
146
|
-
# Not supported by Caffeine
|
147
122
|
if defined? MemCache
|
148
123
|
@m = MemCache.new(*@opts_networked)
|
149
124
|
x.report("set:plain:memcache-client") do
|
@@ -158,9 +133,6 @@ class Bench
|
|
158
133
|
end
|
159
134
|
end
|
160
135
|
|
161
|
-
# restart_servers
|
162
|
-
|
163
|
-
|
164
136
|
if defined? Memcached
|
165
137
|
@m = Memcached.new(
|
166
138
|
@opts_networked[0],
|
@@ -213,19 +185,6 @@ class Bench
|
|
213
185
|
end
|
214
186
|
end
|
215
187
|
end
|
216
|
-
if defined? Caffeine
|
217
|
-
@m = Caffeine::MemCache.new(@opts_networked[1]); @m.servers = @opts_networked[0]
|
218
|
-
x.report("set:ruby:caffeine") do
|
219
|
-
n.times do
|
220
|
-
@m.set @key1, @value
|
221
|
-
@m.set @key2, @value
|
222
|
-
@m.set @key3, @value
|
223
|
-
@m.set @key1, @value
|
224
|
-
@m.set @key2, @value
|
225
|
-
@m.set @key3, @value
|
226
|
-
end
|
227
|
-
end
|
228
|
-
end
|
229
188
|
if defined? MemCache
|
230
189
|
@m = MemCache.new(*@opts_networked)
|
231
190
|
x.report("set:ruby:memcache-client") do
|
@@ -264,7 +223,6 @@ class Bench
|
|
264
223
|
end
|
265
224
|
end
|
266
225
|
end
|
267
|
-
# Not supported by Caffeine
|
268
226
|
if defined? MemCache
|
269
227
|
@m = MemCache.new(*@opts_networked)
|
270
228
|
x.report("get:plain:memcache-client") do
|
@@ -303,19 +261,6 @@ class Bench
|
|
303
261
|
end
|
304
262
|
end
|
305
263
|
end
|
306
|
-
if defined? Caffeine
|
307
|
-
@m = Caffeine::MemCache.new(@opts_networked[1]); @m.servers = @opts_networked[0]
|
308
|
-
x.report("get:ruby:caffeine") do
|
309
|
-
n.times do
|
310
|
-
@m.get @key1
|
311
|
-
@m.get @key2
|
312
|
-
@m.get @key3
|
313
|
-
@m.get @key1
|
314
|
-
@m.get @key2
|
315
|
-
@m.get @key3
|
316
|
-
end
|
317
|
-
end
|
318
|
-
end
|
319
264
|
if defined? MemCache
|
320
265
|
@m = MemCache.new(*@opts_networked)
|
321
266
|
x.report("get:ruby:memcache-client") do
|
@@ -352,15 +297,6 @@ class Bench
|
|
352
297
|
end
|
353
298
|
end
|
354
299
|
end
|
355
|
-
if defined? Caffeine
|
356
|
-
@m = Caffeine::MemCache.new(@opts_networked[1]); @m.servers = @opts_networked[0]
|
357
|
-
x.report("multiget:ruby:caffeine") do
|
358
|
-
n.times do
|
359
|
-
# We don't use the keys array because splat is slow
|
360
|
-
@m.get @key1, @key2, @key3, @key4, @key5, @key6
|
361
|
-
end
|
362
|
-
end
|
363
|
-
end
|
364
300
|
if defined? MemCache
|
365
301
|
@m = MemCache.new(*@opts_networked)
|
366
302
|
x.report("multiget:ruby:memcache-client") do
|
@@ -371,8 +307,6 @@ class Bench
|
|
371
307
|
end
|
372
308
|
end
|
373
309
|
|
374
|
-
# restart_servers
|
375
|
-
|
376
310
|
if defined? Memcached
|
377
311
|
@m = Memcached.new(*@opts_networked)
|
378
312
|
x.report("missing:ruby:memcached:net") do
|
@@ -421,19 +355,6 @@ class Bench
|
|
421
355
|
end
|
422
356
|
end
|
423
357
|
end
|
424
|
-
if defined? Caffeine
|
425
|
-
@m = Caffeine::MemCache.new(@opts_networked[1]); @m.servers = @opts_networked[0]
|
426
|
-
x.report("missing:ruby:caffeine") do
|
427
|
-
n.times do
|
428
|
-
begin @m.delete @key1; rescue; end
|
429
|
-
begin @m.get @key1; rescue; end
|
430
|
-
begin @m.delete @key2; rescue; end
|
431
|
-
begin @m.get @key2; rescue; end
|
432
|
-
begin @m.delete @key3; rescue; end
|
433
|
-
begin @m.get @key3; rescue; end
|
434
|
-
end
|
435
|
-
end
|
436
|
-
end
|
437
358
|
if defined? MemCache
|
438
359
|
@m = MemCache.new(*@opts_networked)
|
439
360
|
x.report("missing:ruby:memcache-client") do
|
@@ -448,8 +369,6 @@ class Bench
|
|
448
369
|
end
|
449
370
|
end
|
450
371
|
|
451
|
-
# restart_servers
|
452
|
-
|
453
372
|
if defined? Memcached
|
454
373
|
@m = Memcached.new(
|
455
374
|
@opts_networked[0],
|
@@ -526,25 +445,6 @@ class Bench
|
|
526
445
|
end
|
527
446
|
end # if false
|
528
447
|
end
|
529
|
-
if defined? Caffeine
|
530
|
-
@m = Caffeine::MemCache.new(@opts_networked[1]); @m.servers = @opts_networked[0]
|
531
|
-
x.report("mixed:ruby:caffeine") do
|
532
|
-
n.times do
|
533
|
-
@m.set @key1, @value
|
534
|
-
@m.set @key2, @value
|
535
|
-
@m.set @key3, @value
|
536
|
-
@m.get @key1
|
537
|
-
@m.get @key2
|
538
|
-
@m.get @key3
|
539
|
-
@m.set @key1, @value
|
540
|
-
@m.get @key1
|
541
|
-
@m.set @key2, @value
|
542
|
-
@m.get @key2
|
543
|
-
@m.set @key3, @value
|
544
|
-
@m.get @key3
|
545
|
-
end
|
546
|
-
end
|
547
|
-
end
|
548
448
|
if defined? MemCache
|
549
449
|
@m = MemCache.new(*@opts_networked)
|
550
450
|
x.report("mixed:ruby:memcache-client") do
|
@@ -565,8 +465,6 @@ class Bench
|
|
565
465
|
end
|
566
466
|
end
|
567
467
|
|
568
|
-
# restart_servers
|
569
|
-
|
570
468
|
if defined? Memcached
|
571
469
|
unless ARGV.include? "--no-hash"
|
572
470
|
Memcached::HASH_VALUES.each do |mode, int|
|
data/test/unit/memcached_test.rb
CHANGED
@@ -381,20 +381,22 @@ class MemcachedTest < Test::Unit::TestCase
|
|
381
381
|
@cache.get(["#{key}_1", "#{key}_2"])
|
382
382
|
end
|
383
383
|
end
|
384
|
-
|
385
|
-
def
|
384
|
+
|
385
|
+
def test_random_distribution_is_statistically_random
|
386
386
|
cache = Memcached.new(@servers, :distribution => :random)
|
387
|
-
cache.
|
387
|
+
cache.flush
|
388
|
+
20.times { |i| cache.set "#{key}#{i}", @value }
|
388
389
|
|
389
|
-
hits = (
|
390
|
+
cache, hits = Memcached.new(@servers.first), 0
|
391
|
+
20.times do |i|
|
390
392
|
begin
|
391
|
-
cache.get
|
393
|
+
cache.get "#{key}#{i}"
|
394
|
+
hits += 1
|
392
395
|
rescue Memcached::NotFound
|
393
396
|
end
|
394
|
-
end
|
397
|
+
end
|
395
398
|
|
396
|
-
|
397
|
-
assert 10 > hits
|
399
|
+
assert_not_equal 4, hits
|
398
400
|
end
|
399
401
|
|
400
402
|
# Set
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: memcached
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.16.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evan Weaver
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
yZ0=
|
31
31
|
-----END CERTIFICATE-----
|
32
32
|
|
33
|
-
date: 2009-
|
33
|
+
date: 2009-09-02 00:00:00 -07:00
|
34
34
|
default_executable:
|
35
35
|
dependencies: []
|
36
36
|
|
metadata.gz.sig
CHANGED
Binary file
|