Class: Droonga::Catalog::Dataset
- Inherits:
-
Object
- Object
- Droonga::Catalog::Dataset
- Defined in:
- lib/droonga/catalog/dataset.rb
Direct Known Subclasses
Constant Summary collapse
- DEFAULT_NAME =
"Default"
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
Instance Method Summary collapse
-
#[](key) ⇒ Object
provided for compatibility.
-
#[]=(key, value) ⇒ Object
provided for compatibility.
- #all_nodes ⇒ Object
- #compute_routes(message, live_nodes) ⇒ Object
- #fact ⇒ Object
-
#initialize(name, data) ⇒ Dataset
constructor
A new instance of Dataset.
- #n_workers ⇒ Object
- #plugins ⇒ Object
- #replicas ⇒ Object
- #schema ⇒ Object
- #single_slice? ⇒ Boolean
Constructor Details
#initialize(name, data) ⇒ Dataset
Returns a new instance of Dataset.
27 28 29 30 31 |
# File 'lib/droonga/catalog/dataset.rb', line 27 def initialize(name, data) @name = name @data = data @schema = nil end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
25 26 27 |
# File 'lib/droonga/catalog/dataset.rb', line 25 def name @name end |
Instance Method Details
#[](key) ⇒ Object
provided for compatibility
34 35 36 |
# File 'lib/droonga/catalog/dataset.rb', line 34 def [](key) @data[key] end |
#[]=(key, value) ⇒ Object
provided for compatibility
39 40 41 |
# File 'lib/droonga/catalog/dataset.rb', line 39 def []=(key, value) @data[key] = value end |
#all_nodes ⇒ Object
63 64 65 |
# File 'lib/droonga/catalog/dataset.rb', line 63 def all_nodes @all_nodes ||= replicas.all_nodes end |
#compute_routes(message, live_nodes) ⇒ Object
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/droonga/catalog/dataset.rb', line 67 def compute_routes(, live_nodes) routes = [] case ["type"] when "broadcast" volumes = replicas.select(["replica"].to_sym, live_nodes) volumes.each do |volume| slices = volume.select_slices slices.each do |slice| routes << slice.volume.address.to_s end end when "scatter" volumes = replicas.select(["replica"].to_sym, live_nodes) volumes.each do |volume| slice = volume.choose_slice(["record"]) routes << slice.volume.address.to_s end end routes end |
#fact ⇒ Object
51 52 53 |
# File 'lib/droonga/catalog/dataset.rb', line 51 def fact @data["fact"] end |
#n_workers ⇒ Object
55 56 57 |
# File 'lib/droonga/catalog/dataset.rb', line 55 def n_workers @data["nWorkers"] || 0 end |
#plugins ⇒ Object
47 48 49 |
# File 'lib/droonga/catalog/dataset.rb', line 47 def plugins @data["plugins"] || [] end |
#replicas ⇒ Object
59 60 61 |
# File 'lib/droonga/catalog/dataset.rb', line 59 def replicas @replicas ||= VolumeCollection.new(create_volumes(@data["replicas"])) end |
#schema ⇒ Object
43 44 45 |
# File 'lib/droonga/catalog/dataset.rb', line 43 def schema @schema ||= Schema.new(@name, @data["schema"]) end |
#single_slice? ⇒ Boolean
88 89 90 91 92 93 94 |
# File 'lib/droonga/catalog/dataset.rb', line 88 def single_slice? # TODO: Support slice key replicas.all? do |volume| volume.is_a?(SingleVolume) or volume.slices.size == 1 end end |