Class: DruidConfig::Entities::Tier

Inherits:
Object
  • Object
show all
Defined in:
lib/druid_config/entities/tier.rb

Overview

Tier class

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, nodes) ⇒ Tier

Returns a new instance of Tier.



10
11
12
13
# File 'lib/druid_config/entities/tier.rb', line 10

def initialize(name, nodes)
  @name = name
  @nodes = nodes
end

Instance Attribute Details

#nameObject (readonly)

Readers



8
9
10
# File 'lib/druid_config/entities/tier.rb', line 8

def name
  @name
end

#nodesObject (readonly) Also known as: servers

Readers



8
9
10
# File 'lib/druid_config/entities/tier.rb', line 8

def nodes
  @nodes
end

Instance Method Details

#freeObject



27
28
29
# File 'lib/druid_config/entities/tier.rb', line 27

def free
  @free ||= (max_size - size)
end

#historicalsObject



36
37
38
# File 'lib/druid_config/entities/tier.rb', line 36

def historicals
  nodes.select { |node| node.type == :historical }
end

#max_sizeObject



23
24
25
# File 'lib/druid_config/entities/tier.rb', line 23

def max_size
  @max_size ||= nodes.map(&:max_size).inject(:+)
end

#segmentsObject



40
41
42
43
# File 'lib/druid_config/entities/tier.rb', line 40

def segments
  @segments ||= nodes.map(&:segments)
                .flatten.sort_by { |seg| seg.interval.first }
end

#segments_to_dropObject



50
51
52
53
# File 'lib/druid_config/entities/tier.rb', line 50

def segments_to_drop
  @segments_to_drop ||=
    nodes.map { |node| node.segments_to_drop.count }.inject(:+)
end

#segments_to_drop_sizeObject



60
61
62
63
# File 'lib/druid_config/entities/tier.rb', line 60

def segments_to_drop_size
  @segments_to_drop_size ||=
    nodes.map(&:segments_to_drop_size).reduce(:+)
end

#segments_to_loadObject



45
46
47
48
# File 'lib/druid_config/entities/tier.rb', line 45

def segments_to_load
  @segments_to_load ||=
    nodes.map { |node| node.segments_to_load.count }.inject(:+)
end

#segments_to_load_sizeObject



55
56
57
58
# File 'lib/druid_config/entities/tier.rb', line 55

def segments_to_load_size
  @segments_to_load_size ||=
    nodes.map(&:segments_to_load_size).reduce(:+)
end

#sizeObject Also known as: used



17
18
19
# File 'lib/druid_config/entities/tier.rb', line 17

def size
  @size ||= nodes.map(&:size).inject(:+)
end

#used_percentObject



31
32
33
34
# File 'lib/druid_config/entities/tier.rb', line 31

def used_percent
  return 0 unless max_size && max_size != 0
  ((size.to_f / max_size) * 100).round(2)
end