It seems to me like the adabas uses it’s threads for the buffer flush. Heres a typical view of our threadtable:
No Cmd Count File Cmd Status
-- --------- ---- --- ------
1 39,118,455 0 Free
2 39,126,427 0 Free
3 39,125,781 0 Free
4 39,123,923 0 Free
5 39,130,794 0 Free
6 39,157,760 0 Free
7 39,077,116 0 Free
8 39,149,457 0 Free
9 39,164,027 0 Free
10 39,106,314 0 Free
11 39,097,442 0 Free
12 39,099,225 0 Free
13 39,089,970 0 Free
14 39,128,418 0 Free
15 39,106,669 0 Free
16 39,131,600 0 Free
17 39,074,500 0 Free
18 39,129,085 0 Free
19 39,141,983 0 Free
20 39,123,368 0 Free
21 39,084,364 0 Free
22 39,107,701 0 Free
23 39,128,941 0 Free
24 39,118,600 0 Free
25 39,117,627 0 Free
26 39,172,548 0 Free
27 39,095,743 0 Free
28 39,115,604 0 Free
29 39,061,775 0 Free
30 39,112,318 29 L3 Simple , waiting for DATA / 438214
And here’s a threadtable during buffer flush (before setting BFIO_PARALLEL_LIMIT):
No Cmd Count File Cmd Status
-- --------- ---- --- ------
1 39,113,323 0 ET Update , active
2 39,121,563 0 ET Update , active
3 39,121,002 0 ET Update , active
4 39,118,841 0 ET Update , active
5 39,125,835 0 ET Update , active
6 39,152,673 0 Free
7 39,072,027 0 ET Update , active
8 39,144,326 0 ET Update , active
9 39,159,094 0 Free
10 39,101,369 0 ET Update , active
11 39,092,350 0 ET Update , active
12 39,094,080 0 ET Update , active
13 39,084,893 0 ET Update , active
14 39,123,271 0 ET Update , active
15 39,101,597 0 ET Update , active
16 39,126,638 0 ET Update , active
17 39,069,486 0 ET Update , active
18 39,123,684 0 ET Update , active
19 39,137,028 0 Free
20 39,118,211 0 ET Update , active
21 39,079,321 0 ET Update , active
22 39,102,792 0 ET Update , active
23 39,123,987 0 Free
24 39,113,718 0 ET Update , active
25 39,112,834 0 ET Update , active
26 39,167,485 0 ET Update , active
27 39,090,611 0 ET Update , active
28 39,110,459 0 ET Update , active
29 39,056,681 0 ET Update , active
30 39,107,185 0 ET Update , active
OK, that’s no proof. But I still think there’s some connection between bufferflush and thread table. Please correct me if I’m wrong.
EDIT: Until now I thought the ETs above are the buffer flush itself. But more likely they are user’s transactions waiting for the buffer flush to be done… :?:
$ adamon db=11 interval=1
%ADAMON-I-STARTED, 03-AUG-2011 14:35:04, Version 6.1.10.10 (Solaris 64Bit)
Database 11, startup at 23-JUL-2011 18:57:27
ADANUC Version 6.1.10.10, PID 2191
Commands I/Os per sec Throw Buffer pool
per sec ASSO DATA WORK PLOG backs Hit Flushs
------------------------------------------------------
2471 108 381 2 2 0 97% 0
2564 264 368 11 10 0 96% 0
2622 118 257 8 8 0 97% 0
2888 1052 1627 10 10 0 91% 0
3239 723 1302 16 14 0 94% 0
2031 141 379 2 2 0 96% 0
2508 5198 1248 8 7 0 95% 1 BF_ACTIVE
2219 43 222 1 3 0 98% 0 BF_ACTIVE
2676 134 547 5 2 0 96% 0
2701 60 322 5 3 0 98% 0
3901 50 311 0 0 0 98% 0
4866 36 262 0 0 0 98% 0
3657 66 575 0 0 0 97% 0
...
i.e. between 1.1 and 3.9 seconds.