Class: Fairy::PGroupBy::DirectKBMergeSortBuffer
- Inherits:
-
CommandMergeSortBuffer
- Object
- OnMemoryBuffer
- CommandMergeSortBuffer
- Fairy::PGroupBy::DirectKBMergeSortBuffer
- Defined in:
- lib/fairy/node/p-group-by.rb
Direct Known Subclasses
Defined Under Namespace
Classes: CachedBuffer
Instance Attribute Summary
Attributes inherited from OnMemoryBuffer
Instance Method Summary collapse
Methods inherited from CommandMergeSortBuffer
#each, #init_2ndmemory, #initialize, #open_buffer, #push
Methods inherited from OnMemoryBuffer
Constructor Details
This class inherits a constructor from Fairy::PGroupBy::CommandMergeSortBuffer
Instance Method Details
#each_2ndmemory(&block) ⇒ Object
1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 |
# File 'lib/fairy/node/p-group-by.rb', line 1356 def each_2ndmemory(&block) unless @key_values.empty? store_2ndmemory(@key_values) @key_values = nil end Log::info(self, "Merge Start: #{@buffers.size} files") Log::debug(self, @buffers.collect{|b| b.path}.join(" ")) m = DirectMergeSortBuffer::Merger.new(@njob, @buffers, CachedBuffer) m.each(&block) end |
#store_2ndmemory(key_values) ⇒ Object
1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 |
# File 'lib/fairy/node/p-group-by.rb', line 1341 def store_2ndmemory(key_values) Log::debug(self, "START STORE") sorted = key_values.sort_by{|e| e.first} open_buffer do |io| sorted.each do |key, vv| vv.each do |values| Marshal.dump(values, io) end end end sorted = nil Log::debug(self, "FINISH STORE") end |