Notes
Notification
- Today's IRC - some discussion with BrianKirsch about using queries to replace a notification manager. Brian is going to follow up, so this is just a placeholder
There's another set of issues though. We want to have two kinds of "notification". The terminology is confusing, so I'm going to call what the query system does "change reporting", with the understanding that this is conceptually in the same space as what we've previously referred to as notification. In the following discussion an rview is a repository view.
One of the big changes for 0.5 is the ability to report changes inside a single transaction boundary. In 0.4, changes are reported only at transaction commit. The problem is that if you want to be told about changes frequently (to keep the UI responsive) you have to commit frequently (which is currently slow). So for 0.5, the plan is to use the new Monitor functionality to allow the current rview to see change reports as they happen instead of at commit time. Other rviews/threads will receive their change reports at commit time. There will probably be different mechanism to indicate interest in receiving change reports. It makes not sense for other rviews/threads to receive change reports before commit time, since a rview must commit before its changes can be seen by other rviews.
Performance
Katie posted the following URLs from the BDB documentation:
One the second page there is the
writetest program.
Here are the results of write tests on two systems:
1.25GHz (Powerbook) G4, 1GB RAM, 4200 RPM disk, Mac OS 10.3.6, HFS+ file system.
./writetest
Running: 1000 ops
Elapsed time: 0:0:0.546533
1000 operations: 1829.72 operations per second
700 MHz P3, 512MB RAM, 7200RPM disk, Linux 2.6.5, Ext3 file system
./writetest
Running: 1000 ops
Elapsed time: 0:0:8.296255
1000 operations: 120.54 operations per second
These numbers are surprisingly close to the Average Transactional commit rate numbers being output by
bdbtest.py , which indicates that we are being limited by disk logging bandwidth.
Linux bdbtest.py numbers
700 MHz P3, 512MB RAM, 7200RPM disk, Linux 2.6.5, Ext3 file system
[dev:2023]> release/RunPython bdbtest.py ~/work/osaf/src/chandler
Using /home/twl/work/osaf/src/chandler/release/bin/python
Generating data... done.
Cache Size = 2097152
Average Non transactional commit rate = 38140.6818395
Average Non transactional sequential read rate = 41828.5857545
Average Non transactional random read rate = 40874.406835
Average Transactional commit rate = 119.35312629
Average Transactional batch commit rate = 21639.6888534
Average Transactional sequential read rate = 31166.9253833
Average Transactional random read rate = 30541.8509219
Cache Size = 4194304
Average Non transactional commit rate = 38262.0670141
Average Non transactional sequential read rate = 41781.0010267
Average Non transactional random read rate = 40889.3308088
Average Transactional commit rate = 119.265887807
Average Transactional batch commit rate = 21957.2606378
Average Transactional sequential read rate = 31172.0156832
Average Transactional random read rate = 30543.2821838
Cache Size = 8388608
Average Non transactional commit rate = 38361.9631126
Average Non transactional sequential read rate = 41755.4175006
Average Non transactional random read rate = 40873.6335558
Average Transactional commit rate = 119.197312736
Average Transactional batch commit rate = 21961.5074935
Average Transactional sequential read rate = 31194.1572547
Average Transactional random read rate = 30562.201733
Cache Size = 16777216
Average Non transactional commit rate = 38450.281456
Average Non transactional sequential read rate = 41866.0443948
Average Non transactional random read rate = 40772.9213993
Average Transactional commit rate = 119.715762301
Average Transactional batch commit rate = 21955.8985961
Average Transactional sequential read rate = 31157.8882044
Average Transactional random read rate = 30529.5887495
Cache Size = 33554432
Average Non transactional commit rate = 38298.9364967
Average Non transactional sequential read rate = 41878.0541176
Average Non transactional random read rate = 40877.9332034
Average Transactional commit rate = 119.326892773
Average Transactional batch commit rate = 21972.7498936
Average Transactional sequential read rate = 31185.1166456
Average Transactional random read rate = 30497.1882415
Cache Size = 67108864
Average Non transactional commit rate = 38398.8036246
Average Non transactional sequential read rate = 41850.6504407
Average Non transactional random read rate = 40790.1161984
Average Transactional commit rate = 119.15051831
Average Transactional batch commit rate = 21880.8058361
Average Transactional sequential read rate = 31136.0157418
Average Transactional random read rate = 30555.6890641
Cache Size = 134217728
Average Non transactional commit rate = 38379.5212737
Average Non transactional sequential read rate = 41889.7362045
Average Non transactional random read rate = 40834.3003248
Average Transactional commit rate = 119.312758907
Average Transactional batch commit rate = 21831.8802227
Average Transactional sequential read rate = 31156.302959
Average Transactional random read rate = 30530.0181985
288.24su 40.80ss 12133.00s 2% release/RunPython bdbtest.py
--
TedLeung - 03 Dec 2004