prometheus-client-mmap 0.7.0.beta23 → 0.7.0.beta24
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:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: fa73b996922691eb05fa808a9b4679a7ce7a65f1
         | 
| 4 | 
            +
              data.tar.gz: fa415737e695de0191baa29cc9ebc33bf68d6b1c
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 5cce5f24cf7a5fac8003c32277efe04f4efdf097ff0b3ab6658223c1c261bf79ef8975d0e2675694ec661776494d5184eff77c9491b1d79379a3c588c69940c4
         | 
| 7 | 
            +
              data.tar.gz: a01c6873e3bb0f9b519997f4d4d8fd1c0aa13c3c5839e84df58cd1d97b6ffbf9a88cf731702fdb92e9feaa40bb8f362a3809744b3ffe01f47b86a491ad75a364
         | 
| Binary file | 
| @@ -1,11 +1,13 @@ | |
| 1 1 | 
             
            require 'prometheus/client/helper/entry_parser'
         | 
| 2 2 | 
             
            require 'prometheus/client/helper/file_locker'
         | 
| 3 3 | 
             
            require 'mmap'
         | 
| 4 | 
            +
            require 'fast_mmaped_file'
         | 
| 4 5 |  | 
| 5 6 | 
             
            module Prometheus
         | 
| 6 7 | 
             
              module Client
         | 
| 7 8 | 
             
                module Helper
         | 
| 8 9 | 
             
                  class MmapedFile < Mmap
         | 
| 10 | 
            +
                    include FastMmapedFile
         | 
| 9 11 | 
             
                    include EntryParser
         | 
| 10 12 | 
             
                    attr_reader :filepath, :size
         | 
| 11 13 |  | 
| @@ -41,21 +41,16 @@ module Prometheus | |
| 41 41 | 
             
                  end
         | 
| 42 42 |  | 
| 43 43 | 
             
                  def read_value(key)
         | 
| 44 | 
            -
                    @ | 
| 45 | 
            -
                      init_value(key) unless @positions.key?(key)
         | 
| 44 | 
            +
                    init_value(key) unless @positions.key?(key)
         | 
| 46 45 |  | 
| 47 | 
            -
             | 
| 48 | 
            -
                      @m[pos..pos + 7].unpack('d')[0]
         | 
| 49 | 
            -
                    end
         | 
| 46 | 
            +
                    @m.get_double(@positions[key])
         | 
| 50 47 | 
             
                  end
         | 
| 51 48 |  | 
| 52 49 | 
             
                  def write_value(key, value)
         | 
| 53 | 
            -
                    @ | 
| 54 | 
            -
                      init_value(key) unless @positions.key?(key)
         | 
| 50 | 
            +
                    init_value(key) unless @positions.key?(key)
         | 
| 55 51 |  | 
| 56 | 
            -
             | 
| 57 | 
            -
             | 
| 58 | 
            -
                    end
         | 
| 52 | 
            +
                    pos = @positions[key]
         | 
| 53 | 
            +
                    @m[pos..pos + 7] = [value].pack('d')
         | 
| 59 54 | 
             
                  end
         | 
| 60 55 |  | 
| 61 56 | 
             
                  def path
         | 
| @@ -71,21 +66,24 @@ module Prometheus | |
| 71 66 |  | 
| 72 67 | 
             
                  private
         | 
| 73 68 |  | 
| 74 | 
            -
                  # Initialize a value. Lock must be held by caller.
         | 
| 75 69 | 
             
                  def init_value(key)
         | 
| 76 | 
            -
                     | 
| 77 | 
            -
                       | 
| 78 | 
            -
                      size = @m.size
         | 
| 79 | 
            -
                      @m.close
         | 
| 70 | 
            +
                    @mutex.synchronize do
         | 
| 71 | 
            +
                      return if @positions.key?(key)
         | 
| 80 72 |  | 
| 81 | 
            -
                       | 
| 82 | 
            -
             | 
| 83 | 
            -
             | 
| 73 | 
            +
                      until @m.try_add_entry(key, 0.0) do
         | 
| 74 | 
            +
                        filepath = @m.filepath
         | 
| 75 | 
            +
                        size = @m.size
         | 
| 76 | 
            +
                        @m.close
         | 
| 84 77 |  | 
| 85 | 
            -
             | 
| 86 | 
            -
             | 
| 78 | 
            +
                        File.truncate(filepath, size * 2)
         | 
| 79 | 
            +
                        @m = Helper::MmapedFile.open(filepath)
         | 
| 80 | 
            +
                      end
         | 
| 87 81 |  | 
| 88 | 
            -
             | 
| 82 | 
            +
                      # Update how much space we've used.
         | 
| 83 | 
            +
                      @used = @m.used
         | 
| 84 | 
            +
             | 
| 85 | 
            +
                      @positions[key] = @used - 8
         | 
| 86 | 
            +
                    end
         | 
| 89 87 | 
             
                  end
         | 
| 90 88 |  | 
| 91 89 | 
             
                  # Yield (key, pos). No locking is performed.
         | 
    
        metadata
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: prometheus-client-mmap
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.7.0. | 
| 4 | 
            +
              version: 0.7.0.beta24
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Tobias Schmidt
         | 
| @@ -9,7 +9,7 @@ authors: | |
| 9 9 | 
             
            autorequire: 
         | 
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2017-11- | 
| 12 | 
            +
            date: 2017-11-16 00:00:00.000000000 Z
         | 
| 13 13 | 
             
            dependencies:
         | 
| 14 14 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 15 | 
             
              name: mmap2
         | 
| @@ -45,15 +45,32 @@ dependencies: | |
| 45 45 | 
             
                - - "~>"
         | 
| 46 46 | 
             
                  - !ruby/object:Gem::Version
         | 
| 47 47 | 
             
                    version: 1.1.1
         | 
| 48 | 
            +
            - !ruby/object:Gem::Dependency
         | 
| 49 | 
            +
              name: rake-compiler
         | 
| 50 | 
            +
              requirement: !ruby/object:Gem::Requirement
         | 
| 51 | 
            +
                requirements:
         | 
| 52 | 
            +
                - - "~>"
         | 
| 53 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 54 | 
            +
                    version: 1.0.4
         | 
| 55 | 
            +
              type: :development
         | 
| 56 | 
            +
              prerelease: false
         | 
| 57 | 
            +
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 58 | 
            +
                requirements:
         | 
| 59 | 
            +
                - - "~>"
         | 
| 60 | 
            +
                  - !ruby/object:Gem::Version
         | 
| 61 | 
            +
                    version: 1.0.4
         | 
| 48 62 | 
             
            description: 
         | 
| 49 63 | 
             
            email:
         | 
| 50 64 | 
             
            - ts@soundcloud.com
         | 
| 51 65 | 
             
            - pawel@gitlab.com
         | 
| 52 66 | 
             
            executables: []
         | 
| 53 | 
            -
            extensions: | 
| 67 | 
            +
            extensions:
         | 
| 68 | 
            +
            - ext/fast_mmaped_file/extconf.rb
         | 
| 54 69 | 
             
            extra_rdoc_files: []
         | 
| 55 70 | 
             
            files:
         | 
| 56 71 | 
             
            - README.md
         | 
| 72 | 
            +
            - ext/fast_mmaped_file/extconf.rb
         | 
| 73 | 
            +
            - lib/fast_mmaped_file.bundle
         | 
| 57 74 | 
             
            - lib/prometheus.rb
         | 
| 58 75 | 
             
            - lib/prometheus/client.rb
         | 
| 59 76 | 
             
            - lib/prometheus/client/configuration.rb
         |