lib/memcache/segmented_server.rb in memcache-1.0.1 vs lib/memcache/segmented_server.rb in memcache-1.1.0
- old
+ new
@@ -3,12 +3,12 @@
class Memcache
class SegmentedServer < Server
MAX_SIZE = 1000000 # bytes
PARTIAL_VALUE = 0x40000000
- def get(keys, opts = {})
- return get([keys], opts)[keys.to_s] unless keys.kind_of?(Array)
+ def get(keys, cas = nil)
+ return get([keys], cas)[keys.to_s] unless keys.kind_of?(Array)
return {} if keys.empty?
results = super
keys = {}
keys_to_fetch = []
@@ -36,12 +36,12 @@
end
if value
value.memcache_cas = results[key].memcache_cas
value.memcache_flags = results[key].memcache_flags ^ PARTIAL_VALUE
- results[key] = value
end
+ results[key] = value
end
results
end
def set(key, value, expiry = 0, flags = 0)
@@ -84,10 +84,10 @@
def store_segments(key, value, expiry = 0, flags = 0)
if value and value.size > MAX_SIZE
master_key, parts = segment(key, value)
parts.each do |hash, data|
- set(hash, data, expiry)
+ set(hash, data, expiry + 1) # We want the segments to expire slightly after the master key.
end
[master_key, flags | PARTIAL_VALUE]
else
[value, flags]
end