hbase-jruby 0.6.1-java → 0.6.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 +4 -4
- data/CHANGELOG.md +9 -0
- data/lib/hbase-jruby/hbase.rb +0 -29
- data/lib/hbase-jruby/table.rb +0 -1
- data/lib/hbase-jruby/version.rb +1 -1
- data/test/test_hbase.rb +0 -8
- data/test/test_table.rb +0 -38
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 45fb6da67d84e5b2640f383441c9c5a97368acff
         | 
| 4 | 
            +
              data.tar.gz: 4ca5274110f4a56277dd5671e6e8f35524214e16
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 068015d5dcdf8f374251f31571b7549b0fb77ad82c915e6218d564705e547f365647466d45c21027bffd895e48128e20743b6f759d7497fdf77034b3cb858013
         | 
| 7 | 
            +
              data.tar.gz: 6bbdbbb27743a7da0e079de10566b9adbad77e9866beeb560f697f97987233fff21c3ad428ad0e6fb8dbc2e32b72f245c0431f9f5b26afdae69b3ec10fb4c613
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,6 +1,15 @@ | |
| 1 1 | 
             
            Changelog
         | 
| 2 2 | 
             
            =========
         | 
| 3 3 |  | 
| 4 | 
            +
            0.6.2
         | 
| 5 | 
            +
            -----
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            - Removed automatic cleanup of thread-local HTable instances
         | 
| 8 | 
            +
                - Fixes issue #35
         | 
| 9 | 
            +
                - Close of individual HTable instance turned out to be unnecessary
         | 
| 10 | 
            +
                    - `flushCommits` not required as `hbase-jruby` runs in auto-flush mode
         | 
| 11 | 
            +
                    - No need to close shared connection or its thread pool
         | 
| 12 | 
            +
             | 
| 4 13 | 
             
            0.6.1
         | 
| 5 14 | 
             
            -----
         | 
| 6 15 |  | 
    
        data/lib/hbase-jruby/hbase.rb
    CHANGED
    
    | @@ -74,7 +74,6 @@ class HBase | |
| 74 74 | 
             
                  else
         | 
| 75 75 | 
             
                    HTablePool.new @config, java.lang.Integer::MAX_VALUE
         | 
| 76 76 | 
             
                  end
         | 
| 77 | 
            -
                @threads = Set.new
         | 
| 78 77 | 
             
                @mutex   = Mutex.new
         | 
| 79 78 | 
             
                @schema  = Schema.new
         | 
| 80 79 | 
             
                @closed  = false
         | 
| @@ -107,7 +106,6 @@ class HBase | |
| 107 106 | 
             
                  unless @closed
         | 
| 108 107 | 
             
                    @closed = true
         | 
| 109 108 | 
             
                    @htable_pool.close if use_table_pool?
         | 
| 110 | 
            -
                    clear_thread_locals
         | 
| 111 109 | 
             
                    @connection.close
         | 
| 112 110 |  | 
| 113 111 | 
             
                    # To be deprecated
         | 
| @@ -190,7 +188,6 @@ class HBase | |
| 190 188 | 
             
                raise RuntimeError, 'Not using table pool' unless use_table_pool?
         | 
| 191 189 |  | 
| 192 190 | 
             
                @mutex.synchronize do
         | 
| 193 | 
            -
                  clear_thread_locals
         | 
| 194 191 | 
             
                  @htable_pool.close
         | 
| 195 192 | 
             
                  @htable_pool = HTablePool.new @config, java.lang.Integer::MAX_VALUE
         | 
| 196 193 | 
             
                end
         | 
| @@ -198,32 +195,6 @@ class HBase | |
| 198 195 | 
             
              end
         | 
| 199 196 |  | 
| 200 197 | 
             
            private
         | 
| 201 | 
            -
              def register_thread t
         | 
| 202 | 
            -
                # (NOTE) The cleanup routine can be inefficient when the number of
         | 
| 203 | 
            -
                # concurrent threads becomes large. However, since it is not likely that
         | 
| 204 | 
            -
                # there will be more than a few hundred threads in a typical JRuby process
         | 
| 205 | 
            -
                # and the code is executed only once per thread, let's simply assume that
         | 
| 206 | 
            -
                # it's okay.
         | 
| 207 | 
            -
                @mutex.synchronize do
         | 
| 208 | 
            -
                  check_closed
         | 
| 209 | 
            -
                  @threads << t
         | 
| 210 | 
            -
                  alives, deads = @threads.partition { |e| e.alive? }
         | 
| 211 | 
            -
                  @threads = Set.new(alives)
         | 
| 212 | 
            -
                  deads.each do |dead|
         | 
| 213 | 
            -
                    (dead[:hbase_jruby].delete(self) || {}).each do |_, htable|
         | 
| 214 | 
            -
                      htable.close rescue nil
         | 
| 215 | 
            -
                    end
         | 
| 216 | 
            -
                  end
         | 
| 217 | 
            -
                end
         | 
| 218 | 
            -
              end
         | 
| 219 | 
            -
             | 
| 220 | 
            -
              def clear_thread_locals
         | 
| 221 | 
            -
                # Cleanup thread-local references
         | 
| 222 | 
            -
                @threads.each do |thr|
         | 
| 223 | 
            -
                  thr[:hbase_jruby].delete self
         | 
| 224 | 
            -
                end
         | 
| 225 | 
            -
              end
         | 
| 226 | 
            -
             | 
| 227 198 | 
             
              def get_htable name
         | 
| 228 199 | 
             
                (@htable_pool || @connection).get_table name
         | 
| 229 200 | 
             
              end
         | 
    
        data/lib/hbase-jruby/table.rb
    CHANGED
    
    | @@ -23,7 +23,6 @@ class Table | |
| 23 23 | 
             
                # [:hbase_jruby][HBase connection][Table name]
         | 
| 24 24 | 
             
                local_vars = Thread.current[:hbase_jruby] ||= {}
         | 
| 25 25 | 
             
                unless local_htables = local_vars[@hbase]
         | 
| 26 | 
            -
                  @hbase.send :register_thread, Thread.current
         | 
| 27 26 | 
             
                  local_htables = local_vars[@hbase] = {}
         | 
| 28 27 | 
             
                end
         | 
| 29 28 | 
             
                local_htables[@name] ||= @hbase.send :get_htable, @name
         | 
    
        data/lib/hbase-jruby/version.rb
    CHANGED
    
    
    
        data/test/test_hbase.rb
    CHANGED
    
    | @@ -34,8 +34,6 @@ class TestHBase < TestHBaseJRubyBase | |
| 34 34 | 
             
                assert @hbase.closed?
         | 
| 35 35 | 
             
                assert table.closed?
         | 
| 36 36 |  | 
| 37 | 
            -
                assert !Thread.current[:hbase_jruby].has_key?(@hbase)
         | 
| 38 | 
            -
             | 
| 39 37 | 
             
                assert_raise(RuntimeError) { @hbase.list }
         | 
| 40 38 | 
             
                assert_raise(RuntimeError) { table.exists? }
         | 
| 41 39 | 
             
                assert_raise(RuntimeError) { table.drop! }
         | 
| @@ -110,12 +108,6 @@ class TestHBase < TestHBaseJRubyBase | |
| 110 108 | 
             
                # Now close the connection
         | 
| 111 109 | 
             
                hbase2.close
         | 
| 112 110 |  | 
| 113 | 
            -
                # Threads-local htable cache deleted
         | 
| 114 | 
            -
                assert_nil Thread.current[:hbase_jruby][hbase2]
         | 
| 115 | 
            -
                threads.each do |t|
         | 
| 116 | 
            -
                  assert_nil t[:hbase_jruby][hbase2]
         | 
| 117 | 
            -
                end
         | 
| 118 | 
            -
             | 
| 119 111 | 
             
                # Connection is already closed
         | 
| 120 112 | 
             
                assert_raise(RuntimeError) { hbase2[TABLE] }
         | 
| 121 113 | 
             
                assert_raise(RuntimeError) { table.htable  }
         | 
    
        data/test/test_table.rb
    CHANGED
    
    | @@ -20,20 +20,6 @@ class TestTable < TestHBaseJRubyBase | |
| 20 20 | 
             
                end
         | 
| 21 21 | 
             
                assert_equal 1, htables.uniq.length
         | 
| 22 22 |  | 
| 23 | 
            -
                # Multi-threaded
         | 
| 24 | 
            -
                htables = []
         | 
| 25 | 
            -
                table = @hbase.table(TABLE)
         | 
| 26 | 
            -
                nthr = num_managed_threads
         | 
| 27 | 
            -
                4.times do
         | 
| 28 | 
            -
                  Thread.new {
         | 
| 29 | 
            -
                    htables << table.htable
         | 
| 30 | 
            -
                    assert_equal nthr + 1, num_managed_threads
         | 
| 31 | 
            -
                  }.join
         | 
| 32 | 
            -
                end
         | 
| 33 | 
            -
                assert_equal 4, htables.uniq.length
         | 
| 34 | 
            -
                # XXX Implementation detail
         | 
| 35 | 
            -
                assert_equal nthr + 1, num_managed_threads
         | 
| 36 | 
            -
             | 
| 37 23 | 
             
                assert_equal @hbase.table(TABLE).htable, @hbase[TABLE].htable
         | 
| 38 24 | 
             
              end
         | 
| 39 25 |  | 
| @@ -49,30 +35,6 @@ class TestTable < TestHBaseJRubyBase | |
| 49 35 | 
             
                assert_equal 2, htables.length
         | 
| 50 36 | 
             
              end
         | 
| 51 37 |  | 
| 52 | 
            -
              def num_managed_threads
         | 
| 53 | 
            -
                @hbase.instance_variable_get(:@threads).length
         | 
| 54 | 
            -
              end
         | 
| 55 | 
            -
             | 
| 56 | 
            -
              # FIXME
         | 
| 57 | 
            -
              # - Implementation detail
         | 
| 58 | 
            -
              # - Naive assertion
         | 
| 59 | 
            -
              # - Race condition
         | 
| 60 | 
            -
              def test_autoclose_htables
         | 
| 61 | 
            -
                nthr = num_managed_threads
         | 
| 62 | 
            -
                threads = 50.times.map { |i|
         | 
| 63 | 
            -
                  Thread.new {
         | 
| 64 | 
            -
                    @hbase[TABLE].htable
         | 
| 65 | 
            -
                    sleep 0.5
         | 
| 66 | 
            -
                  }
         | 
| 67 | 
            -
                }
         | 
| 68 | 
            -
                sleep 1
         | 
| 69 | 
            -
                assert num_managed_threads > nthr
         | 
| 70 | 
            -
             | 
| 71 | 
            -
                nthr = num_managed_threads
         | 
| 72 | 
            -
                Thread.new { @hbase[TABLE].htable }.join
         | 
| 73 | 
            -
                assert num_managed_threads < nthr
         | 
| 74 | 
            -
              end
         | 
| 75 | 
            -
             | 
| 76 38 | 
             
              def test_put_then_get
         | 
| 77 39 | 
             
                row1 = next_rowkey.to_s
         | 
| 78 40 | 
             
                row2 = next_rowkey.to_s
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: hbase-jruby
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.6. | 
| 4 | 
            +
              version: 0.6.2
         | 
| 5 5 | 
             
            platform: java
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Junegunn Choi
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2014- | 
| 11 | 
            +
            date: 2014-09-02 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: test-unit
         |