Method: Fairy::PGroupBy::DirectKB2MergeSortBuffer#store_2ndmemory

Defined in:
lib/fairy/node/p-group-by.rb

#store_2ndmemory(key_values) ⇒ Object



1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
# File 'lib/fairy/node/p-group-by.rb', line 1438

def store_2ndmemory(key_values)
	Log::debug(self, "START STORE")
	sorted = key_values.sort_by{|e| e.first}
	
	open_buffer do |io|
	  tmpary = []
	  tmpary_sz = 0
	  sorted.each do |key, vv|
	    vv.each do |values|
 if tmpary_sz >= @CHUNK_SIZE
		Marshal.dump(tmpary, io)
		tmpary = []
		tmpary_sz = 0
 end
 tmpary.push values
 tmpary_sz += values.size
	    end
	  end
	  if tmpary_sz > 0
	    Marshal.dump(tmpary, io)
	    tmpary = nil
	  end
	end
	sorted = nil
	Log::debug(self, "FINISH STORE")
end