Polygraph 2.6.0 available

From: Alex Rousskov (rousskov@measurement-factory.com)
Date: Tue May 22 2001 - 19:39:34 MDT


Hi there,

    Web Polygraph 2.6.0 is available. The change log is attached.
        http://www.web-polygraph.org/downloads/

    This is a major release that includes many new features and
improvements like support for domain names and load balancing tests.
While we have been using beta versions for some production tests, I am
sure that many bugs remain to be found. We expect to use a stable
derivative of 2.6.0 for the upcoming switch/cache-off competitions.

    There have been a few minor modifications to old PGL structures
and concepts making old workload files incompatible. Please read or
search the change log for details.

    Version 2.6.0 is the first release able to run simple tests (at
least) on MS Windows platform. InstallShield-ed binaries compiled on
W2K are available. We do not have much experience with running Windows
or Polygraph on Windows, but we hope that some users will find this
port useful.

    Finally, Polygraph Web site has been moved to its own domain:
http://www.web-polygraph.org/. The new Web site comes with almost
complete and up-to-date PGL and workload documentation, searchable
mailing list archive, and other goodies. More documentation is
needed, of course. The old Web site at polygraph.ircache.net remains
operational, but will not be updated.

Thanks,

Alex.

------------- change log -----------------
2.5.5 -> 2.6.0
20010522
    - changed licensing terms and added a not-for-publication clause
    - updated README
    - added DNS/FQDN client-side support; robots can now send
      [non-blocking asynchronous] DNS queries to specified DNS servers to
      resolve destination addresses; DNS responses are currently not
      cached
    - added pxylb-4.pg and srvlb-l4-4.pg workload drafts to test proxy
      and origin server load balancing, respectfully
    - added webaxe-3.pg configuration file for WebAxe workload; this
      file was distributed with Polygraph version 2.5.4 under the name
      webaxe-2.5.pg
    - create IP aliases upon startup, based on the PGL bench
      configuration; warn if aliases are not being created and explain
      why
    - log PGL configuration upon startup
    - added support for URL prefixes; arbitrary string(s) can be
      specified to be included as a URL "prefix", right after the first
      '/' following the host name or host address; use Mime.prefixes for
      now (just like Mime.extensions)
    - added "special_msg_factor_beg" and "special_msg_factor_end" fields
      to Phase specs to control the presence of special messages (IMS,
      Reload, 302 Found, etc.) in the generated stream (PGL); useful to
      speedup fill phase and to test the influence of those special
      requests on the cache
    - handle ``302 Found'' replies: treat them as special valid kind of
      an HTTP response and follow URIs in the Location: field; 302s may
      be foreign replies, but 302 takes priority when it comes to
      redirection handling and statistics logging
    - added client-side support for HTTP 300, 303, and 307 responses; a
      Robot would request the Uri found in the Location: field of the
      response after processing the original transaction
    - use new client-centric PubWorld interface instead of old
      server-centric object ID (oid) exchange; use/maintain related
      global indexes; broadcast/update PubWorld info
    - added support to flip-flop debugging (--dump hdrs) status on USR1
      signal
    - try to flush logs when process is running out of memory;
      pre-allocate a 16KB buffer to be freed when we are running out of
      memory, in hope to get enough memory to flush the logs; this trick
      may help to save some of the logs when Polygraph quits with
      "virtual memory exhausted in new"; may need more work
    - added phase name reporting to ltrace; when multiple logs with
      different phases are merged, the printed phase name can be the
      name of any then-current phase.
    - added polyprobe -- a traffic-volume-oriented network test tool
      that will, eventually, replace netperf for many-to-many raw
      network bandwidth tests used before PolyMix tests
    - added polyrrd tool to supply run-time Polygraph stats to the rrd
      tool; rrd tool is a "better MRTG" software for displaying run-time
      stats in graphical form:
      http://ee-staff.ethz.ch/~oetiker/webtools/rrdtool/
    - added rrd-cgi.sh as a sample file to use with polyrrd and rrd tool
    - pgl_test now accepts include directories as parameters (after the
      PGL file to test)
    - assume URLs starting with "/health" are health checks and reply as
      if --ignore_urls was set
    - added "Rptmstat" PGL type to store response-time-stat (as in
      thermo-stat) configuration; a rptmstat attempts to keep response
      time within the specified bounds by adjusting offered request rate
      (just as a thermostat attempts to keep temperature within the
      specified bounds by adjusting the furnace or A/C operation)
    - added "rptmstat" field to Phase type; rptmstats are activated on a
      per-phase basis
    - added "rep_types" field to Server agent type (PGL); "Basic" and
      "302 Found" reply types are supported
    - added "client.hosts" and "server.hosts" fields to Bench object to
      specify real machine addresses (as opposed to "virtual" aliases for
      agents) (PGL);
    - added DnsResolver PGL type to configure DNS resolver for robots
    - skip insane/corrupted entries in the trace and warn about them;
      trace corruption may happen when Polygraph process or the host OS
      is killed without a chance to flush the binary logs
    - added dns_resolver field to Robot type
    - support port ranges in PGL addresses
    - added use(Bench) PGL call to specify the bench configuration for
      the test
    - added minimize_new_conn field to Robot to specify probability of
      an attempt to use idle connections to address' substitutes when no
      idle connections to the address are available; added
      note_substitutes() procedure call to register known substitute
      groups (PGL); substitutes are useful to approximate connection
      reuse pattern of a single-destination workload in a no-proxy or
      no-balancer setup
    - added dns_cfg tool to generate configuration files for named, a
      DNS server, needs more work
    - use a new tool to generate Makefiles for Unix (gmake) and MS
      Windows (nmake). Temporary lost ability to built out of the source
      directory.
    - renamed --*log_size to --*log_buf_size so better reflect the true
      meaning of the option
    - removed the --new_oids* options as unused
    - renamed popularity distributions pmUnif and pmZipf to popUnif and
      popZipf to avoid conflict with popularity models (pm*)
    - polished simple.pg and moved simple server to port 9090 to avoid
      strange port 8080 hijacking problems on some Windows installations
    - synced standard workloads with PGL changes
    - changed HotSet algorithm to avoid storing theObjLmt: change hot
      position when it is no longer in the working set; when WSS is
      unknown, keep hot position in the middle of the URL set
      (constantly sliding position); the rationale is to reduce memory
      overhead and, maybe, to simplify remote synchronization of hot
      positions
    - changed Bench definition to use BenchSides instead of client_ and
      server_ prefixes
    - added new "Addressing Scheme" PGL types to calculate agent
      addresses for various workloads
    - PGL agents should always bind(2) to specified addresses
    - removed "Rptm vs Size" and "Conn Life Time vs Use Count"
      statistics; (they were huge and rarely used; similar data can
      probably be derived from stats samples)
    - changed binary log format and version
    - moved pop_model PGL field from Robot to Agent because Server agent
      needs it to generate ``302 Found'' responses
    - replaced "agent.hosts" fields with "agent.addresses" to be more
      consistent; "hosts" in PGL usually means "real, permanent
      address" while "addresses" are often used for IP aliases that are
      created run-time
    - use address ranges when printing arrays of addresses, if possible
    - when checking for "clocks out of sync" errors, ignore replies that
      took a long time; slow replies is usually an indication of
      problems other/bigger than clock synchronization
    - embedded objects should inherit request type property from the
      container (not ideal, but better than using default req type for
      all embedded objects)
    - removed old place() PGL function
    - increased client-group-count-dependent hash capacities from 11 to
      37 old limits did not allow to use more than 11 clients or server
      machines in a test
    - changed default value of polysrv's --idle_tout to 5 minutes
    - removed piper tool -- it was not used and caused compilation
      problems on FreeBSD 4.x due to new DummyNet interface
    - tried to make alias manipulation with aka work again on Linux
    - added port of msl_test to linux, based, in part, on code donated
      by Andrew Schultz from Mission Critical Linux, Inc. More work is
      required to make msl_test more portable
    - provide traces of conn.open.rate and conn.estb.rate in the report
    - improved report generation tools
    - AIX portability fixes
    - HP-UX (aCC) portability fixes
    - Linux portability fixes
    - MS W2K (VC++) portability fixes
    - Solaris portability fixes
    - added config.bat script to compile sources with nmake on Windows
    - reduce default optimization level on Linux to 1 (-O1) to avoid
      coredumps
    - lots of polypxy fixes to make it more robust; needs more work
    - a yet another attempt to fix code that merges level stats
    - adjusted alias creation code to extract and honor individual
      subnets of the alias addresses
    - when merging (not concatenating) stats, the duration should be set
      to the maximum duration of the two intervals being merged so that
      merging 10 req/sec for 1 sec and 1 req/sec for 1 hour does not
      result in 11 req/sec mean; will this screw anything that used to
      work?
    - when merging or concatenating phase stats, do not change the phase
      name if phases with the same are joined
    - fixed ./CdbBodyIter.cc:43: assertion failed: '!theInjector';
      a common problem with realistic content simulation module
    - fixed an old ltrace bug: sampling windows were sometimes getting
      huge, leading to excessive memory consumption and possibly somewhat
      incorrect trace plots
    - "ceil(700/0.7)" returns 1001(!!); added a workaround; old IP
      calculation tools were generating wrong values when 700
      req/sec/host and 0.7req/sec/agent combination was used
    - aka was not setting subnets right



This archive was generated by hypermail 2b29 : Tue Jul 10 2001 - 12:00:19 MDT