Class: Fairy::PGroupBy::DirectPQMergeSortBuffer

Inherits:
DirectMergeSortBuffer show all
Defined in:
lib/fairy/node/p-group-by.rb

Defined Under Namespace

Classes: Merger

Instance Attribute Summary

Attributes inherited from DirectOnMemoryBuffer

#log_id

Instance Method Summary collapse

Methods inherited from DirectMergeSortBuffer

#each, #init_2ndmemory, #open_buffer, #push, #store_2ndmemory

Methods inherited from DirectOnMemoryBuffer

#each, #push

Constructor Details

#initialize(njob, policy) ⇒ DirectPQMergeSortBuffer

Returns a new instance of DirectPQMergeSortBuffer.



1264
1265
1266
1267
# File 'lib/fairy/node/p-group-by.rb', line 1264

def initialize(njob, policy)
	require "priority_queue"
	super
end

Instance Method Details

#each_2ndmemory(&block) ⇒ Object



1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
# File 'lib/fairy/node/p-group-by.rb', line 1269

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 = Merger.new(@njob, @buffers)
	m.each(&block)
end