Class: Fairy::PGroupBy::MergeSortBuffer
- Inherits:
-
CommandMergeSortBuffer
- Object
- OnMemoryBuffer
- CommandMergeSortBuffer
- Fairy::PGroupBy::MergeSortBuffer
- Defined in:
- lib/fairy/node/p-group-by.rb
Direct Known Subclasses
DepqMergeSortBuffer, ExtMergeSortBuffer, PQMergeSortBuffer, PQMergeSortBuffer2
Defined Under Namespace
Classes: StSt
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
509 510 511 512 513 514 515 516 517 518 519 520 |
# File 'lib/fairy/node/p-group-by.rb', line 509 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(" ")) stst = StSt.new(@buffers) @buffers = nil stst.each(&block) end |
#store_2ndmemory(key_values) ⇒ Object
491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 |
# File 'lib/fairy/node/p-group-by.rb', line 491 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| dk = Marshal.dump(key) vv.each do |values| io.write dk Marshal.dump(values, io) end end end sorted = nil Log::debug(self, "FINISH STORE") end |