Q: What has changed from version 0.9.0 to 1.0.0
A: Below is a list of changes: General, Control and Monitor, datacondAPI, diskcacheAPI, frameAPI, frameCPP, /ldcg, Resource Variables,

General

  • Migrate to the STLPort version of the Standard Template Library primarily for thread safty

Control and Monitor

Support in controlMonitorAPI's client for graphical viewing content of

  • database tables
    • new data viewer memu
    • time series
    • histograms - mean, median, std dev
  • usage details of LDAS jobs
    • new memu under Jobs
    • view graphical tree of jobs by commands
    • view graphical tree of jobs by users

In addition, controlMonitorAPI's client now works behind firewalls; multiple clients can run in one working directory; APIs can be added to hosts specified by users

datacondAPI

single precision bug found in IIR filtering by Julien Sylvestre fixed

  • Numerous test cases were added to extend the verification that the single-precision IIR filtering is equivalent to
    1. converting the single-precision data to double precision
    2. filtering it at double-precision and
    3. converting back to single-precision.

diskcacheAPI

Rework of the diskCacheAPI to have the computationally demanding
  • components handled in C++
    • primarily for performance
    • addressed the need for multi-threaded support
    • new C++ binary object file for frame cache file on disk

/ldcg

  • based on STLPort
  • new version of LAM
  • new autoconfig/automake/libtools, compliant with LSC standard
  • new version of FFTW
    • improved performance
    • brings support for this library in line with LAL

frameAPI

frameAPI's resource now allows tuning of frame file I/O method and buffer size on a per file system device basis
  • improved I/O performance possible with a little experimentation depending on file systems available at LDAS sites.

frameCPP

extended support for less well known frame structures in FrameCPP
  • FrSimData
  • FrSimEvent

Resource Variables

diskcacheAPI

  1. ::CACHE_UPDATE_INTERVAL

    loop time, in seconds, around the ::MOUNT_PT list.

    15 seconds is the default, and this is a good value generally. there is not much to be gained from tweaking this value, which is now deprecated as a tuning parameter in favor of the ::DELAY_BETWEEN_THREAD_SPAWNS_MS value.

  2. ::DELAY_BETWEEN_THREAD_SPAWNS_MS

    millisecond delay between ::MOUNT_PT update threads. making this very small results in thread contention and wasted cpu. a value of at least 100 (the default) is a good starting point. make it larger if too much CPU is getting used by the diskcache API.

  3. ::DEBUG_SCAN_RATE

    flag (0 or 1) causes messages to be printed in the diskcache API log every time that all ::MOUNT_PT directories have been updated. The message reports the number of mount points, subdirectories, and files scanned in NNNN ms.

  4. ::ERROR_REPORT_INTERVAL

    how often (in seconds) to bug the sys admin about badly formed directories under mount points. On a test system with intentionally bad directories, this should be at least 2 hours (7200 seconds), and at most one day (86400 seconds).

  5. ::DEBUG_CACHE_SYNCHRONIZE

    flag (0 or 1) whether to log each change detected by the diskcache API on a per-directory basis. Can generally be left on.

  6. ::EXCLUDE_THESE_DIRS_FROM_UPDATES

    list of directories that should not be touched by the diskcache API, usually because they are NFS mounted but offline, and threads pointed at them would hang forever.

  7. ::DISKCACHE_HASHFILE_NAME

    the name to write the binary hash file into. the default is .frame.cache2

  8. ::DIR_SLOW_UPDATE_WARNING_THRESHHOLD

    if any directory requires more than this many seconds to scan, send an email to the sys admin. good way to detect failed ide raid systems, or at least much better than not being able to detect them at all.

  9. ::NUMBER_OF_RUNNING_THREADS_PERMITTED

    absolute limit to the number of simultaneously running threads spawned via calls to the c++ extensions to the diskcache API.

frameAPI

  1. ::STREAM_BUFFER_SIZE

    Establish the default file buffer size in bytes. If the value 0 (zero) is specified, the default buffer size of the operating system and/or compiler will be used.

  2. ::ENABLE_MEMORY_MAPPED_IO

    Establish use of memory mapped I/O for files if available. This does require the version of STLport specified in the "How to Build LDAS" documentation.

  3. ::DEVICE_IO_CONFIGURATION

    Establish a list of devices that have custom buffer sizes and memory mapped I/O characteristics. This list has to be of the form: [ list [ list {file} {buffer size} {i/o} ] ... ]

  4. ::CREATERDS_CHECKSUM Enable (1) or disable checksum (0) verification of frame files when generating RDSs.



Back to LDAS FAQ