Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 343944

Summary: Request for parametrizable constants
Product: z_Archived Reporter: aszopko <andras_szopko>
Component: BIRTAssignee: Birt-Report-inbox <Birt-Report-inbox>
Status: NEW --- QA Contact: Xiaoying Gu <bluesoldier>
Severity: enhancement    
Priority: P3 CC: bluesoldier
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description aszopko CLA 2011-04-27 08:00:40 EDT
Build Identifier: 20110301-1815  BIRT : v20110214-1523

We have some reports, which cannot be run for huge data sets, because of the memory usage method: the groups are cached as CachedList objects, and these will  only be written on the HDD, when count reaches LIST_BUFFER_SIZE.

The problem is, that LIST_BUFFER_SIZE is set to 4000, and the 2G Java heap is full before it gets to 1000....  

There should be a way to set these numbers for every report.

What's more, for some reason the methods setNormalMemoryUsage( ) and setConservativeMemoryUsage( ) set the same values.

These constants can be found in the class

\plugins\org.eclipse.birt.data\src\org\eclipse\birt\data\engine\cache\Constants.java

	public static void setNormalMemoryUsage( )
	{
		LIST_BUFFER_SIZE = 4000;
		MAX_LIST_BUFFER_SIZE = 6000;
		FACT_TABLE_BUFFER_SIZE = 40000;
		aggressiveMemoryUsage = false;
	}
	
	public static void setConservativeMemoryUsage( )
	{
		LIST_BUFFER_SIZE = 4000;
		MAX_LIST_BUFFER_SIZE = 6000;
		FACT_TABLE_BUFFER_SIZE = 40000;
		aggressiveMemoryUsage = false;
	}


Reproducible: Always