Hiroshi Inoue wrote:
>
> >
> > Hiroshi, please run your test. You'll get NOTICEs instead of ERRORs.
>
> I have run my test and got the following NOTICEs.
>
> NOTICE: Child itemid in update-chain marked as unused - can't
> continue vc_rpfheap
I'm still getting troubles when running your test due to
1. bug in cache invalidation code: when we invalidate relcache we forget to free MdfdVec in md.c!
Vacuum invalidates a relation tuple in pg_class and concurrent xactions invalidate corresponding relcache entry, but
don't free MdfdVec and so allocate new one for the same relation more and more. Each MdfdVed requires own fd.c:Vfd
entry-> below
2. fd.c:pg_nofile()->sysconf(_SC_OPEN_MAX) returns in FreeBSD near total number of files that can be opened in system
(by _all_ users/procs). With total number of opened files ~ 2000 I can run your test with 10-20 simultaneous xactions
forvery short time, -:)
Should we limit fd.c:no_files to ~ 256? This is port-specific, of course...
Vadim
P.S. Hiroshi test I run:
10-20 psql < file with 10000 xactions:
BEGIN;
UPDATE single row in table;
END;
A script run "vacuum table" each rand(10) + 1 sec.