Drop memcached and use dalli as the memcache client
authorTom Hughes <tom@compton.nu>
Sun, 22 Sep 2013 14:57:22 +0000 (15:57 +0100)
committerTom Hughes <tom@compton.nu>
Sun, 22 Sep 2013 14:57:22 +0000 (15:57 +0100)
Gemfile
Gemfile.lock
config/environments/production.rb
config/initializers/openid.rb
config/initializers/session_store.rb
lib/mem_cache.rb [deleted file]
lib/memcache.rb [deleted file]

diff --git a/Gemfile b/Gemfile
index 11587ec3fee993914c8367003d83562067577e2e..f8fa61130d338ba32263e6980535261dc7d406d0 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -77,8 +77,9 @@ gem 'SystemTimer', '>= 1.1.3', :require => 'system_timer', :platforms => :ruby_1
 # Load httpclient for SOAP support for Quova GeoIP queries
 gem 'httpclient'
 
-# Load memcache in case we are using it
-gem 'memcached', '>= 1.4.1'
+# Load memcache client in case we are using it
+gem 'dalli'
+gem 'kgio'
 
 # Gems useful for development
 group :development do
index 46d3e98ac88b5a5c10817087952180b858ef2dcd..aeaa596e1aac37cd4d592d7bc97ece73a017f2c9 100644 (file)
@@ -45,6 +45,7 @@ GEM
     coffee-script-source (1.6.3)
     composite_primary_keys (6.0.0)
       activerecord (>= 4.0.0)
+    dalli (2.6.4)
     deadlock_retry (1.2.0)
     dynamic_form (1.1.4)
     ejs (1.1.1)
@@ -70,11 +71,11 @@ GEM
       jsonify (< 0.4.0)
     jwt (0.1.8)
       multi_json (>= 1.5)
+    kgio (2.8.1)
     libxml-ruby (2.7.0)
     mail (2.5.4)
       mime-types (~> 1.16)
       treetop (~> 1.4.8)
-    memcached (1.7.0)
     mime-types (1.25)
     mini_portile (0.5.1)
     minitest (4.7.5)
@@ -176,6 +177,7 @@ DEPENDENCIES
   bigdecimal (~> 1.1.0)
   coffee-rails (~> 4.0.0)
   composite_primary_keys (>= 6.0.0)
+  dalli
   deadlock_retry (>= 1.2.0)
   dynamic_form
   ejs
@@ -186,8 +188,8 @@ DEPENDENCIES
   jquery-rails
   json
   jsonify-rails
+  kgio
   libxml-ruby (>= 2.0.5)
-  memcached (>= 1.4.1)
   minitest (~> 4.7.0)
   open_id_authentication (>= 1.1.0)
   openstreetmap-i18n-js (>= 3.0.0.rc5.2)
index 35222bd07ac011cceb41c3e38826e1e158adb9f8..b47013a8a89f4be917f2767f0e8acae34c22fe6f 100644 (file)
@@ -58,7 +58,7 @@ OpenStreetMap::Application.configure do
 
   # Use a different cache store in production.
   if defined?(MEMCACHE_SERVERS)
-    config.cache_store = :mem_cache_store, MemCache.new(:namespace => "rails:cache", :no_block => true, :buffer_requests => true, :noreply => true)
+    config.cache_store = :mem_cache_store, MEMCACHE_SERVERS, { :namespace => "rails:cache" }
   end
 
   # Enable serving of images, stylesheets, and JavaScripts from an asset server.
index a171d1e7b27f3093d5c3f916658715cb3069d62d..2a6de16b22f2416a2082c21c5d42f3568449ab79 100644 (file)
@@ -1,7 +1,7 @@
 if defined?(MEMCACHE_SERVERS)
   require "openid/store/memcache"
 
-  OpenIdAuthentication.store = OpenID::Store::Memcache.new(MemCache.new(:namespace => "rails", :string_return_types => true))
+  OpenIdAuthentication.store = OpenID::Store::Memcache.new(Dalli::Client.new(MEMCACHE_SERVERS, :namespace => "rails"))
 else
   OpenIdAuthentication.store = :file
 end
index aa90714049818f297915f7a1853aa4335b81626f..1430b00164270d1617f908d14a2aebb422ba8e24 100644 (file)
@@ -1,9 +1,7 @@
 # Be sure to restart your server when you modify this file.
 
 if defined?(MEMCACHE_SERVERS)
-  cache = MemCache.new(:namespace => "rails:session", :string_return_types => true)
-
-  OpenStreetMap::Application.config.session_store :mem_cache_store, :cache => cache, :key => "_osm_session"
+  OpenStreetMap::Application.config.session_store :mem_cache_store, :memcache_servers => MEMCACHE_SERVERS, :namespace => "rails:session", :key => "_osm_session"
 else
   OpenStreetMap::Application.config.session_store :cache_store, :key => '_osm_session'
 end
diff --git a/lib/mem_cache.rb b/lib/mem_cache.rb
deleted file mode 100644 (file)
index ddb842b..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-class MemCache < Memcached::Rails
-  DEFAULT_OPTIONS = Memcached::DEFAULTS.merge(Memcached::Rails::DEFAULTS)
-
-  MemCacheError = Memcached::Error
-
-  @@connections = []
-
-  def initialize(options = {})
-    options.reverse_merge! :namespace_separator => ":"
-
-    super(MEMCACHE_SERVERS, options)
-
-    @@connections.push(self)
-
-    ObjectSpace.define_finalizer(self, lambda { |connection|
-      @@connections.remove(connection)
-    })
-  end
-
-  def self.connections
-    @@connections
-  end
-end
-
-if defined?(PhusionPassenger)
-  PhusionPassenger.on_event(:starting_worker_process) do |forked|
-    if forked
-      MemCache.connections.each { |connection| connection.reset }
-    end
-  end
-end
diff --git a/lib/memcache.rb b/lib/memcache.rb
deleted file mode 100644 (file)
index e69de29..0000000