I have two applications A and B. A runs SELECT statements only and only on tableA. B actively updates tableB, A never looks into tableB. B has nothing to do with tableA.
Still, if A is inside a long running transaction, autovacuum does not handle tableB. Why is it so?
autovacuum does cleaning of changes related to finished transactions. It does nothing if possible dead tuples are assigned to open transactions.