Urchin provides two options for managing the reporting database scalability and precision:
This option allows you to maintain large site data within reasonable limits. Use this option to limit the number of records in a single Urchin reporting db table. The default option is appropriate for most installations. If, for a month, the number of records in any table exceeds this limit, then the records beyond this limit are grouped into the last record (named ’Other’). So, larger the table size, the more precise the reporting data. If an Urchin report shows a high percentage of entries labeled Other, you should increase the DB Table Limit to increase precision.
To limit the amount of memory that can be allocated during log processing, Urchin provides this option to specify the upper limit on the size of reporting db in memory. For larger sites, a larger memory footprint can increase performance as it will be doing less page swapping. Although the default setting is conservative, you should set a larger value if the system has sufficient physical memory available.
Currently, Urchin supports following max values for reporting DB settings:
Beginning with version 6.5, Urchin may support extended value for these settings, which should only be used by experienced Urchin users. These extended values will not be visible on the administration interface and will have to be configured via the configuration database. For Urchin 6.5, following are the max values for extended reporting DB settings.
DB Table Limit : <= 2,000,000 records
Memory Usage Target : <= 2GB
Since these extended setting are experimental and may lead to out of memory errors on some system, the following information and guidelines should be considered before using them.
Like regular 'DB Table Limit' value, these extended values can be configured for individual profiles as well as globally. The following query will set the DB Table Limit to 1,000,000 records for a profile with profile id '1'.
UPDATE uprofiles SET uipr_db_table_limit=1000000 WHERE uspr_id=1;
The following query will set the global DB Table Limit to 1,000,000 records. It will get applied to all profiles whose value for uipr_db_table_limit field is 0.
UPDATE uglobals SET uigl_db_table_limit=1000000 WHERE ucgl_name='Global Settings';
Memory Usage Target can only be set globally. It automatically is applied to profiles when the DB Memory Usage is set to 'Limit to Cache System' (or db field 'ubpr_limit_db_cache_size' set to 1). The following query will set the global Memory Usage Target to 2 GB. Note that db field consider the number in 'megabytes' (512 will actually be 512 MB).
UPDATE uglobals SET uigl_db_cache_size=2048 WHERE ucgl_name='Global Settings';