Tue Jan 11 21:11:16 PST 2005
- Previous message: [Slony1-general] Slony performance
- Next message: [Slony1-general] time interval between syncs
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
James Black wrote:
> I have to admit to a feeling of helplessness; I'm not sure even where
> to begin investigating why we have 400,000 rows in sl_log_1, nor how
> to ascertain if some of those rows have been orphaned.
Grep for "clean" in the logs; that'll give you some idea of what the
cleanup thread is doing, at least to the point of knowing generally how
much work it's doing.
Here are some relevant queries from the cleanup thread
slonydb=# select ev_origin, ev_seqno, ev_minxid from sl_event where
(ev_origin, ev_seqno) in (select ev_origin, min(ev_seqno) from
sl_event where ev_type = 'SYNC' group by ev_origin);
ev_origin | ev_seqno | ev_minxid
-----------+----------+------------
78 | 7269 | 31038690
4 | 19865 | 302790144
1 | 4499099 | 1622648266
3 | 21098 | 470999377
501 | 25805 | 83296945
(5 rows)
What then gets purged from sl_log_1 is based on based on that ev_minxid
value.
The specific query:
"delete from %s.sl_log_1 "
"where log_origin = '%s' "
"and log_xid < '%s'; "
What would be sweet would be to peek at the logs and see how that
compares; alas, this doesn't work directly :-(.
slonydb=# select log_origin, min(log_xid), max(log_xid), count(*) from
sl_log_1 group by log_origin;
ERROR: function min(xxid) does not exist
You might try for limited information:
slonydb=# select log_origin, log_xid from sl_log_1 order by log_origin,
log_xid limit 5;
log_origin | log_xid
------------+------------
1 | 1622706537
1 | 1622706537
1 | 1622706537
1 | 1622706537
1 | 1622706537
(5 rows)
slonydb=# select log_origin, log_xid from sl_log_1 order by log_origin
desc, log_xid desc limit 5;
log_origin | log_xid
------------+------------
1 | 1622831823
1 | 1622831823
1 | 1622831823
1 | 1622831823
1 | 1622831823
(5 rows)
That output indicates that the earliest and latest XIDs are all indeed
newer than the ev_minxid for origin = 1.
Another thought... Is it possible that slons are getting killed off
often enough that they never get around to finish a cleanup loop?
Something has got to be preventing the purge of old entries from taking
place; these are all the things that determine what gets purged and how.
I can't pursue this infinitely; hopefully this points in some useful
directions. Maybe something's funny with sl_event; that's another place
to peek at.
- Previous message: [Slony1-general] Slony performance
- Next message: [Slony1-general] time interval between syncs
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-general mailing list