Keith Parris 2812 Preakness Way Colorado Springs, CO 80916-4375 Internet: keithparris@yahoo.com Telephone: (719) 392-6696 or (719) 332-2346 EXPERIENCE President, Integrity Computing, Inc., 1996-present Worked as a consultant under my own company, doing disaster-tolerant cluster configuration planning and implementation, system and I/O performance analysis and tuning, troubleshooting, storage and SAN installation and upgrades, operating system internals-level programming, system administration, and training and mentoring. o Built a long-distance (130 miles) disaster-tolerant cluster, and took it through workload growth of a factor of 24X over 4 years (doubling in peak load every year for 3 years, then tripling the 4th year). o Provided consulting assistance in building several other disaster-tolerant clusters, working with storage based on SCSI, Fibre Channel SANs, and CI; and utilizing Gigabit Ethernet, DS-3, and ATM inter-site links. o Studied operating system source code listings to understand behavior of distributed lock manager (DLM) code and wrote assembly-language programs to modify operating system data structures to control lock mastership and reduce locking performance problems. o Configured disk storage in host-based and/or controller-based RAID arrays according to performance and availability requirements. Also implemented use of solid-state disk arrays for the most performance-critical application files. o Set up a web server and wrote programs to create real-time graphs of system and application performance, user counts, and workload levels, and make them available on the intranet for early warning of surges in demand and problems which affected user access. o Used system performance analysis tools to identify system and application performance bottlenecks, then analyzed application source code and discussed issues with application developers to help them implement enhanced algorithms and resolve performance problems. o Developed scripts to monitor disk performance for anomalies, and to check RAID-1 arrays for data integrity o Investigated the feasibility of using VIA-compliant interconnects such as ServerNet II and InfiniBand as VMS Cluster interconnects Digital Equipment Corporation, 1988-1996 Consultant, NSIS, 1995-1996 Delivered consulting in the areas of Business Recovery Server software (Disaster-Tolerant VMS Clusters), VMS Cluster performance analysis and tuning, system, storage and I/O configurations, and VMS system administration, at various Digital customer sites across the country and around the world. Senior Software Engineer, Storage Engineering, 1993-1995 Worked on the Host-Based RAID Software team, and acted as a corporate-wide resource on issues related to RAID technology, VMS Cluster Software internals, and VMS system administration. o Developed and tested software installation scripts and put together the product kits for releases o Performed system administration and hardware reconfiguration in support of the engineering work of the team o Monitored the software builds and regression tests o Devised and performed tests on the RAID software o Taught a class in RAID technology and StorageWorks RAID Software o Provided consulting expertise for the FVS30, FVS60, and HS1xx/HS2xx/SWXNA FDDI Storage Server projects Senior Software Engineer, VMS Engineering, 1991-1993 As a developer in the Clusters & I/O Group within VMS Engineering, worked on VMS Cluster code during the VAX-to-Alpha porting period, maintained the Connection Manager code, and spearheaded the early research work which eventually resulted in SCSI Cluster support in VMS. o Answered Quality Assurance Reports (QARs) and fixed bugs in the Connection Manager and CLUSTER_CONFIG script o Developed and presented technical sessions on VMS cluster issues at Digital-internal technical forums and at DECUS symposia, and gave a pre-symposium seminar on 'Internals of the Distributed Lock Manager' o Wrote the functional specification and did the preliminary design work for the new Cluster Event ($CLUEVT) System Services, which allow notification of any changes in cluster membership o Learned the 'C' language by writing programs to collect and decode NI-SCS protocol packets on the LAN to aid in troubleshooting cluster problems. Used these tools to find and fix an obscure Connection Manager bug that had eluded us for a year. o Continued working with a customer site with a large Local Area VAXcluster (LAVC), helping them grow their cluster to a peak size of 151 nodes o Had an article 'Building Large VMScluster Configurations' published in the August 1992 issue of Digital's VAXcluster Systems Quorum Journal. This material was also later incorporated into the OpenVMS Cluster Software manual. o Investigated the feasibility and technical issues related to VMScluster support for multi-host SCSI configurations, and built one of the very first VMS clusters using SCSI as a storage interconnect o Wrote an early proposal for implementing cluster-wide logical names. (This capability was eventually released in VMS version 7.2.) Senior Software Engineer, VAXcluster Systems Engineering, 1990-1991 Helped introduce FDDI cluster support, helped develop long-distance and disaster-tolerant VMS Clusters (Multi-Datacenter Facility) and did advanced development work on RAID technology and FDDI storage servers. o Provided systems engineering support to various Digital customer sites on VAXcluster-related issues such as: - block-serving CPU and latency costs and NI-SCS protocol overhead - Mixing fast & slow CPUs in the same cluster, and its effects on locking performance - S0 system address space shortages on VAX systems - Symmetrical Multiprocessing and the effects of the VMS implementation, which sent I/O interrupts only to the primary CPU o Started a project to study the feasibility of raising the 96-node limit on cluster node count, based on the needs of a particular customer site to build a very large Local Area VAXcluster (LAVC) configuration o Helped with the rollout of support for FDDI as a cluster interconnect, and investigated the feasibility of connecting FDDI clusters over DS-3 (T3) WAN links o Studied options for providing storage on FDDI, and participated in an Advanced Development project aimed at building an FDDI Storage Server based on a VMS or InfoServer code base o Contributed to the design of host-based RAID 5 software o Wrote portions of the VMS manual 'Guidelines for VAXcluster System Configurations', covering topics of: - Availability issues and fail-over mechanisms - Quorum scheme - Distributed Lock Manager - Comparison of server-less (HSC controller) and server-based (VMS) backups - Disk Striping (RAID 0), Volume Shadowing (host-based mirroring), and RAID technology o Participated in DEC User's Group symposia. Gathered wish-list items from customers in the VAXcluster Working Group and compiled Digital's responses. Presented technical seminars and sessions on a variety of topics. System Support Specialist IV, Colorado CSC, 1988-1990 Supported VMS, clusters, DECnet, and layered products on the hotline at the Colorado Customer Support Center (CSC) o As a senior member of the DECsupport Team, performed telephone support and problem management assistance. Was in top 10% of team for number of problems handled and also in quantity of assistance provided to other CSC specialists. o In response to customer problems, wrote programs in Macro-Assembler or high-level languages to resolve problems or provide work-arounds when possible; for example, to help analyze and repair corrupted job-controller queue files, or to free hung locks o Gave marketing presentations covering the CSC and Digital's software support services to customers visiting the Colorado Springs support center Bureau of Reclamation, 1983-1988 Lead VAX System Manager, Denver, CO, 1987-1988 o Led a team of 5 VAX system managers, supporting a 3-node VAXcluster and 20 to 30 standalone VAX systems at the hub of a 100-node DECnet network, and supported the VAX system managers at 29 remote sites o Served as VAX section editor for the Bureau's computing newsletter Senior VAX System Manager, Salt Lake City, UT, 1986-1987 o Managed two VAX systems, and set up the Bureau's first VAXcluster o Provided support to VAX system managers at 5 remote sites VAX System Manager and Programmer/Analyst, Casper, WY, 1983-1986 o Performed site planning and installation, system management, systems analysis, and programming for one VAX system, the first computer installed at this site o Wrote a translator to convert Datapoint DATABUS language pseudo-code into VAX Fortran source code Programmer/Analyst, U.S. Army Corps of Engineers, Walla Walla, WA, 1980-1983 o Performed systems programming, systems analysis, and applications programming in Assembler, Fortran, and Cobol on Harris computers o Wrote a forms-management package. Presented the package at the Harris Users' Exchange symposium. o Wrote a disassembler for Harris executable images, and wrote programs to decode and edit Harris object modules, to work around bugs in the Harris Fortran compiler Systems Programmer, Andrews University, Berrien Springs, MI, 1977-1980 o Helped write a word processing package in Assembler on the Xerox Sigma 7 running under the CP-V operating system o Rewrote 8080 firmware to allow a daisywheel printing terminal to replace the Sigma 7's slow teletype console o Wrote 8080 firmware for an Altair microcomputer to control a Phillips counter/timer unit used in X-ray diffraction studies o Wrote a disassembler for 8080/Z-80 machine language o As a student programmer, wrote and modified programs in Cobol and Assembler for the Sigma 7 EDUCATION 1977-1979: Andrews University, Berrien Springs, MI Completed 2 years of BSEE program. Received Michigan State competitive scholarship and an academic excellence scholarship. Was a Finalist in the National Merit Scholarship competition. See website http://www.geocities.com/keithparris/ for more info.