Sending the patch to the list since GBorg munged it.
Due to some hardcoded values in remote_worker.c which override the
configuration file (max group size of 100) and a very slow group size
climb Slony can easily fall behind and never catch up again.
--
*** ./src/slon/remote_worker.c.orig Fri Jan 6 12:07:47 2006
--- ./src/slon/remote_worker.c Thu May 4 08:58:08 2006
***************
*** 435,441 ****
*/
if (strcmp(event->ev_type, "SYNC") == 0)
{
! SlonWorkMsg_event *sync_group[100];
int sync_group_size;
int seconds;
--- 435,441 ----
*/
if (strcmp(event->ev_type, "SYNC") == 0)
{
! SlonWorkMsg_event *sync_group[10000];
int sync_group_size;
int seconds;
***************
*** 454,461 ****
/* Force last_sync_group_size to a reasonable range */
if (last_sync_group_size < 1)
last_sync_group_size = 1;
! if (last_sync_group_size > 100)
! last_sync_group_size = 1;
gettimeofday(&sync_end, NULL);
last_sync_length =
--- 454,461 ----
/* Force last_sync_group_size to a reasonable range */
if (last_sync_group_size < 1)
last_sync_group_size = 1;
! if (last_sync_group_size > 10000)
! last_sync_group_size = 10000;
gettimeofday(&sync_end, NULL);
last_sync_length =
***************
*** 479,485 ****
} else {
ideal_sync = sync_group_maxsize;
}
! max_sync = ((last_sync_group_size * 110) / 100) + 1;
next_sync_group_size = ideal_sync;
if (next_sync_group_size > max_sync)
next_sync_group_size = max_sync;
--- 479,485 ----
} else {
ideal_sync = sync_group_maxsize;
}
! max_sync = ((last_sync_group_size * 200) / 100) + 1;
next_sync_group_size = ideal_sync;
if (next_sync_group_size > max_sync)
next_sync_group_size = max_sync;
_______________________________________________
Slony1-general mailing list
[email protected]
http://gborg.postgresql.org/mailman/listinfo/slony1-general