Skip to content
mdavidsaver edited this page Mar 18, 2015 · 36 revisions

TODO

TODO list from Murali's visit to BNL (Dec. 2014)

  • Build from source (Done)

Information

  • document binning/operators (ticket)
  • Operator combining? (MD)
  • document the results (actual fields/key names) in the report (ticket)

Web UI

  • change logo on UI (Done)
  • UI regex/wildcard pause/resume (Done)
  • UI details when PVTypeInfo (otherwise abort) (Done) (MD verify)
  • delete archiver integration (Done) (MD verify)
  • Add a link/page for version number of all components (Done)
  • Total storage rate by PV name/pattern (ticket)
  • Pause on currently disconnected PVs report (Done)

Operators

  • Testing operators (Done)
  • post-processing in ETL to decimate (DB post proc.)
  • add dead-band post-procsser (Done)
  • See requirements below
  • operators give last sample before start time? (done) (MD verify?)
  • Provided test data (MD) (done)

Other

  • For array PVs, allow policy to set number of elements used in the subscription. (ticket)
  • CAJ search algorithm (MD test/review)
  • appl. Monitoring (MD)
  • Policy (event/storage rate) (MD)
  • file converter (cosylab)
  • SQL writing? (BPL for adding w/o archiving?) (Done)
  • PB file invariants (monotonically increasing timestamps; all timestamps in the file must be contained within the partition indicated by the name of the file; files have one header and one sample per line)
  • xmlrpc query startegy (ticket)
  • Engine performance tuning
  • of PB serialization threads

  • of CAJ I/O threads

Code changes

  • quick-chart (ticket)
  • PV name search time (Done)

Problems

  • Fix init script ordering (shutdown engine before etl) (MD)
  • xf23id-ca Webapp is not in correct state
  • Where do invalid time stamps come from? (MD)

Troubleshooting

CA protocol disector https://github.com/mdavidsaver/cashark

tcpdump -i eth4 udp dst port 5064

Weird exceptions

java.nio.channels.CancelledKeyException
        at sun.nio.ch.SelectionKeyImpl.ensureValid(SelectionKeyImpl.java:73)
        at sun.nio.ch.SelectionKeyImpl.readyOps(SelectionKeyImpl.java:87)
        at java.nio.channels.SelectionKey.isWritable(SelectionKey.java:312)
        at com.cosylab.epics.caj.impl.CATransport.handleEvent(CATransport.java:361)
        at com.cosylab.epics.caj.impl.reactor.lf.LeaderFollowersHandler.handleEvent(LeaderFollowersHandler.java:77)
        at com.cosylab.epics.caj.impl.reactor.Reactor.processInternal(Reactor.java:400)
        at com.cosylab.epics.caj.impl.reactor.Reactor.process(Reactor.java:284)
        at com.cosylab.epics.caj.impl.reactor.lf.LeaderFollowersHandler.run(LeaderFollowersHandler.java:91)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:745)


1092851160 [http-bio-17666-exec-5] INFO  config.org.epics.archiverappliance.config.DefaultConfigService  - Webapp is not in correct state for postStartup ENGINE. It is in POST_STARTUP_RUNNING


282038 [http-bio-17665-exec-5] ERROR org.epics.archiverappliance.mgmt.bpl.AddAliasAction  - We seem to have a PVTypeInfo for pv XF:23ID1-BI{Diag:5-Cam:1}Stats2:MinCall but it is not yet assigned?


237238 [MgmtArchivePVWorkflow1] ERROR org.epics.archiverappliance.mgmt.archivepv.ArchivePVState  - Aborting archive request for pv SR:C29-TS{EVR:F1B-Out:FP4}WfCalc:Delay-SP Reason: 
237240 [MgmtArchivePVWorkflow1] ERROR org.epics.archiverappliance.mgmt.archivepv.ArchivePVState  - Aborting archive request for pv SR:C29-TS{EVR:F1A-DlyGen:0}Delay-SP Reason: 
237241 [MgmtArchivePVWorkflow1] ERROR org.epics.archiverappliance.mgmt.archivepv.ArchivePVState  - Aborting archive request for pv SR:C29-MG{Dig:Inj1}TStart:Chan1-SP Reason: 
237243 [MgmtArchivePVWorkflow1] ERROR org.epics.archiverappliance.mgmt.archivepv.ArchivePVState  - Aborting archive request for pv SR:C29-MG{Dig:Inj1}Max:Chan4-I Reason: 
237244 [MgmtArchivePVWorkflow1] ERROR org.epics.archiverappliance.mgmt.archivepv.ArchivePVState  - Aborting archive request for pv SR:C29-MG{Dig:Inj1}Max:Chan5-I Reason: 

Requirements for the dead band operator

Intent is mimic ADEL; targeted at decimation

We have some notion of a "last" value that was written out.

  • The very first sample we get we write out and that becomes the last value.
  • Diff = Math.abs(current value - last value)
  • If Diff >= ADEL
  • Write out value
  • Update last known value
  • If either current value or previous value is NAN/INF, unconditionally write out current value and update last known value
  • Also need to to write out when alarm severity changes (MD)
  • Also need to to write out when connection state changes (connect/disconnect) (MD)