7 research outputs found
PerfCE: Performance Debugging on Databases with Chaos Engineering-Enhanced Causality Analysis
Debugging performance anomalies in real-world databases is challenging.
Causal inference techniques enable qualitative and quantitative root cause
analysis of performance downgrade. Nevertheless, causality analysis is
practically challenging, particularly due to limited observability. Recently,
chaos engineering has been applied to test complex real-world software systems.
Chaos frameworks like Chaos Mesh mutate a set of chaos variables to inject
catastrophic events (e.g., network slowdowns) to "stress" software systems. The
systems under chaos stress are then tested using methods like differential
testing to check if they retain their normal functionality (e.g., SQL query
output is always correct under stress). Despite its ubiquity in the industry,
chaos engineering is now employed mostly to aid software testing rather for
performance debugging.
This paper identifies novel usage of chaos engineering on helping developers
diagnose performance anomalies in databases. Our presented framework, PERFCE,
comprises an offline phase and an online phase. The offline phase learns the
statistical models of the target database system, whilst the online phase
diagnoses the root cause of monitored performance anomalies on the fly. During
the offline phase, PERFCE leverages both passive observations and proactive
chaos experiments to constitute accurate causal graphs and structural equation
models (SEMs). When observing performance anomalies during the online phase,
causal graphs enable qualitative root cause identification (e.g., high CPU
usage) and SEMs enable quantitative counterfactual analysis (e.g., determining
"when CPU usage is reduced to 45\%, performance returns to normal"). PERFCE
notably outperforms prior works on common synthetic datasets, and our
evaluation on real-world databases, MySQL and TiDB, shows that PERFCE is highly
accurate and moderately expensive
Benchmarking and Explaining Large Language Model-based Code Generation: A Causality-Centric Approach
While code generation has been widely used in various software development
scenarios, the quality of the generated code is not guaranteed. This has been a
particular concern in the era of large language models (LLMs)- based code
generation, where LLMs, deemed a complex and powerful black-box model, is
instructed by a high-level natural language specification, namely a prompt, to
generate code. Nevertheless, effectively evaluating and explaining the code
generation capability of LLMs is inherently challenging, given the complexity
of LLMs and the lack of transparency.
Inspired by the recent progress in causality analysis and its application in
software engineering, this paper launches a causality analysis-based approach
to systematically analyze the causal relations between the LLM input prompts
and the generated code. To handle various technical challenges in this study,
we first propose a novel causal graph-based representation of the prompt and
the generated code, which is established over the fine-grained,
human-understandable concepts in the input prompts. The formed causal graph is
then used to identify the causal relations between the prompt and the derived
code. We illustrate the insights that our framework can provide by studying
over 3 popular LLMs with over 12 prompt adjustment strategies. The results of
these studies illustrate the potential of our technique to provide insights
into LLM effectiveness, and aid end-users in understanding predictions.
Additionally, we demonstrate that our approach provides actionable insights to
improve the quality of the LLM-generated code by properly calibrating the
prompt
Causality-Aided Trade-off Analysis for Machine Learning Fairness
There has been an increasing interest in enhancing the fairness of machine
learning (ML). Despite the growing number of fairness-improving methods, we
lack a systematic understanding of the trade-offs among factors considered in
the ML pipeline when fairness-improving methods are applied. This understanding
is essential for developers to make informed decisions regarding the provision
of fair ML services. Nonetheless, it is extremely difficult to analyze the
trade-offs when there are multiple fairness parameters and other crucial
metrics involved, coupled, and even in conflict with one another.
This paper uses causality analysis as a principled method for analyzing
trade-offs between fairness parameters and other crucial metrics in ML
pipelines. To ractically and effectively conduct causality analysis, we propose
a set of domain-specific optimizations to facilitate accurate causal discovery
and a unified, novel interface for trade-off analysis based on well-established
causal inference methods. We conduct a comprehensive empirical study using
three real-world datasets on a collection of widelyused fairness-improving
techniques. Our study obtains actionable suggestions for users and developers
of fair ML. We further demonstrate the versatile usage of our approach in
selecting the optimal fairness-improving method, paving the way for more
ethical and socially responsible AI technologies
Enabling Runtime Verification of Causal Discovery Algorithms with Automated Conditional Independence Reasoning (Extended Version)
Causal discovery is a powerful technique for identifying causal relationships
among variables in data. It has been widely used in various applications in
software engineering. Causal discovery extensively involves conditional
independence (CI) tests. Hence, its output quality highly depends on the
performance of CI tests, which can often be unreliable in practice. Moreover,
privacy concerns arise when excessive CI tests are performed.
Despite the distinct nature between unreliable and excessive CI tests, this
paper identifies a unified and principled approach to addressing both of them.
Generally, CI statements, the outputs of CI tests, adhere to Pearl's axioms,
which are a set of well-established integrity constraints on conditional
independence. Hence, we can either detect erroneous CI statements if they
violate Pearl's axioms or prune excessive CI statements if they are logically
entailed by Pearl's axioms. Holistically, both problems boil down to reasoning
about the consistency of CI statements under Pearl's axioms (referred to as CIR
problem).
We propose a runtime verification tool called CICheck, designed to harden
causal discovery algorithms from reliability and privacy perspectives. CICheck
employs a sound and decidable encoding scheme that translates CIR into SMT
problems. To solve the CIR problem efficiently, CICheck introduces a four-stage
decision procedure with three lightweight optimizations that actively prove or
refute consistency, and only resort to costly SMT-based reasoning when
necessary. Based on the decision procedure to CIR, CICheck includes two
variants: ED-CICheck and ED-CICheck, which detect erroneous CI tests (to
enhance reliability) and prune excessive CI tests (to enhance privacy),
respectively. [abridged due to length limit
A Distributed Two-Level Control Strategy for DC Microgrid Considering Safety of Charging Equipment
A direct current (DC) microgrid containing a photovoltaic (PV) system, energy storage and charging reduces the electric energy conversion link and improves the operational efficiency of the system, which has a broad development prospect. The instability and randomness of PV and charging loads pose a challenge to the safe operation of DC microgrid systems. The safety of grid operation and charging need to be taken into account. However, few studies have integrated the safety of charging devices with grid operation. In this paper, a two-level control strategy is used for the DC microgrid equipped with hybrid energy storage systems (ESSs) with the charging equipment’s safety as the entry point. The primary control strategy combines the health of the charging equipment with droop control to effectively solve the problem of common DC bus voltage deviation and power distribution. The consistency the control algorithm for multiple groups of hybrid ESSs ensures the local side DC bus voltage level and ensures reasonable power distribution among the ESSs. The simulation results in MATLAB/Simulink show that the control strategy can achieve power allocation with stable voltage levels in the case of fluctuating health of the charging equipment, which guarantees the safe operation of the microgrid and charging equipment