mondrian_redis_segment_cache 0.4.1-java → 0.4.2-java

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c120ed66894ca27037fa5ab85ecd56fd9c57dbd0
4
- data.tar.gz: 33fd9bcd2484e75540746890522b771d4e59666c
3
+ metadata.gz: 0c5b0fc11676333a22bf8d22f1c4ab0df228cb88
4
+ data.tar.gz: 15b9f22447a307040ad73ac05d5e4deae2db36da
5
5
  SHA512:
6
- metadata.gz: f7bb09883b38bbe9ecfa321efe3e1eaf41cab8e7b0fbdb71a2b041fed15a1d557a52e7d1eea7391201bf686609c5f850ea7e88d930162206acff19f4779a8e6b
7
- data.tar.gz: 4128c1f68b480e8b25c83ccbaab47fbec40cf1500a8af407e9874c7c7fc30dbda66e55d7649e176573343a4356169b8c3f020232de5db7977de6865b5bd1e28d
6
+ metadata.gz: f6e90f71c3d5e5331f4c20470bd556e53797103d28bd054bd3265f7d5ce2f87a31ac90e3f6e5e77fc4d3e474ed9e81238d3bbd7241f8df5e4154685f51df691d
7
+ data.tar.gz: 20e05ea1857664127c1889fd38360b37b648b8ccca84e318f0fca87ab09e3dbb281174d5a0047a102c6204dbe8162af0f1d0421d1e4976698c1f265a1e5fc561
@@ -1,9 +1,16 @@
1
1
  require 'redis'
2
2
  require 'concurrent'
3
+ require 'jruby/synchronized'
3
4
  require 'mondrian_redis_segment_cache/created_event'
4
5
  require 'mondrian_redis_segment_cache/deleted_event'
6
+ require 'set'
5
7
 
6
8
  module MondrianRedisSegmentCache
9
+
10
+ class SynchronizedSet < ::Set
11
+ include ::JRuby::Synchronized
12
+ end
13
+
7
14
  class Cache
8
15
  include Java::MondrianSpi::SegmentCache
9
16
 
@@ -20,14 +27,14 @@ module MondrianRedisSegmentCache
20
27
  def initialize(mondrian_redis_connection, new_options = {})
21
28
  @mondrian_redis = mondrian_redis_connection
22
29
  @options = Marshal.load(Marshal.dump(new_options))
23
- @listeners = ::Concurrent::Array.new
24
- @local_cache_set = ::Concurrent::Array.new
30
+ @listeners = SynchronizedSet.new
31
+ @local_cache_set = SynchronizedSet.new
25
32
 
26
33
  ##
27
- # Having a TimerTask reconcile every 5 minutes so the local listeners are eventually consistent with
34
+ # Having a TimerTask reconcile every 6 minutes so the local listeners are eventually consistent with
28
35
  # respect to what is in the cache and what has been done .... allows us to get rid of the event
29
- # subscribers in the redis API ... consider the job to have timed out after 45 seconds
30
- @reconcile_task = ::Concurrent::TimerTask.new(:execution_interval => 360, :timeout_interval => 45) do
36
+ # subscribers in the redis API ... consider the job to have timed out after 60 seconds
37
+ @reconcile_task = ::Concurrent::TimerTask.new(:execution_interval => 360, :timeout_interval => 60) do
31
38
  reload
32
39
  end
33
40
 
@@ -39,8 +46,7 @@ module MondrianRedisSegmentCache
39
46
  # Public Instance Methods
40
47
  #
41
48
  def addListener(segment_cache_listener)
42
- listeners << segment_cache_listener unless listeners.include?(segment_cache_listener)
43
- listeners.uniq!
49
+ listeners << segment_cache_listener
44
50
  end
45
51
 
46
52
  # returns mondrian.spi.SegmentBody
@@ -79,7 +85,7 @@ module MondrianRedisSegmentCache
79
85
  segment_header.getDescription # Hazel adapter says this affects serialization
80
86
  header_base64 = segment_header_to_base64(segment_header)
81
87
  body_base64 = segment_body_to_base64(segment_body)
82
- @local_cache_set << header_base64 unless @local_cache_set.include?(header_base64)
88
+ @local_cache_set << header_base64
83
89
  mondrian_redis.with do |connection|
84
90
  connection.sadd(SEGMENT_HEADERS_SET_KEY, header_base64)
85
91
  end
@@ -210,8 +216,6 @@ module MondrianRedisSegmentCache
210
216
  @local_cache_set.delete(remote_removed_key)
211
217
  publish_deleted_to_listeners(remote_removed_key)
212
218
  end
213
-
214
- @local_cache_set.uniq!
215
219
  end
216
220
 
217
221
  def reconcile_set_and_keys
@@ -1,3 +1,3 @@
1
1
  module MondrianRedisSegmentCache
2
- VERSION = "0.4.1"
2
+ VERSION = "0.4.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mondrian_redis_segment_cache
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: java
6
6
  authors:
7
7
  - Brandon Dewitt
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-31 00:00:00.000000000 Z
11
+ date: 2017-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement