Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

Pallavi Joshi

dblp:21/279 · DBLP profile ↗
← Back
14ranked-venue papers
8as first author
2since 2021 · last 2025
—ORCID · conflict

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 8 · 6 first-authorSystems, architecture and hardware · 2Artificial intelligence and machine learning · 1 · 1 first-author · 1 since 2021Computer networks · 1Security and privacy · 1Graphics, computer vision, multimedia, augmented reality and games · 1 · 1 since 2021Theory of computation · 1 · 1 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
8 papers
Concurrent programming · 40% Program analysis · 25% Software testing · 21%
Computer architecture, parallel and distributed computing, and storage systems
4 papers
Distributed systems · 49% Cloud and datacenter computing · 41% Hardware reliability and fault tolerance · 10%

Topics — the 22 heaviest of 23, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Distributed systems
fault tolerance
0.432016
CloudSeer: Workflow Monitoring of Cloud Infrastructures via Interleaved Logs · ASPLOS 2016
PREFAIL: a programmable tool for multiple-failure injection · OOPSLA 2011
FATE and DESTINI: A Framework for Cloud Recovery Testing · NSDI 2011
Concurrent programming
concurrency bugs
0.342010
An effective dynamic analysis for detecting generalized deadlocks · SIGSOFT FSE 2010
A randomized dynamic program analysis technique for detecting real deadlocks · PLDI 2009
CalFuzzer: An Extensible Active Testing Framework for Concurrent Programs · CAV 2009
Cloud and datacenter computing › cloud service management
cloud infrastructure management
0.212016
CloudSeer: Workflow Monitoring of Cloud Infrastructures via Interleaved Logs · ASPLOS 2016
Program verification
model checking
0.222014
SAMC: Semantic-Aware Model Checking for Fast Discovery of Deep Bugs in Cloud Systems · OSDI 2014
An effective dynamic analysis for detecting generalized deadlocks · SIGSOFT FSE 2010
Concurrent programming
deadlock detection
0.222010
An effective dynamic analysis for detecting generalized deadlocks · SIGSOFT FSE 2010
A randomized dynamic program analysis technique for detecting real deadlocks · PLDI 2009
Program analysis
dynamic analysis
0.222010
An effective dynamic analysis for detecting generalized deadlocks · SIGSOFT FSE 2010
A randomized dynamic program analysis technique for detecting real deadlocks · PLDI 2009
Distributed systems
bug detection
0.212014
SAMC: Semantic-Aware Model Checking for Fast Discovery of Deep Bugs in Cloud Systems · OSDI 2014
Software testing › mutation testing › fault injection
fault injection testing
0.112011
PREFAIL: a programmable tool for multiple-failure injection · OOPSLA 2011
Cloud and datacenter computing
cloud-based testing
0.112011
PREFAIL: a programmable tool for multiple-failure injection · OOPSLA 2011
Cloud and datacenter computing
cloud service reliability
0.112011
FATE and DESTINI: A Framework for Cloud Recovery Testing · NSDI 2011
Hardware reliability and fault tolerance › fault injection
failure injection
0.112011
PREFAIL: a programmable tool for multiple-failure injection · OOPSLA 2011
Concurrent programming › concurrency bugs
deadlock
0.112010
An effective dynamic analysis for detecting generalized deadlocks · SIGSOFT FSE 2010
Software testing
concurrency testing
0.112009
CalFuzzer: An Extensible Active Testing Framework for Concurrent Programs · CAV 2009
Concurrent programming › deadlock detection
dynamic deadlock detection
0.112009
A randomized dynamic program analysis technique for detecting real deadlocks · PLDI 2009
Program analysis › type-based analysis
typestate analysis
0.112008
Predictive Typestate Checking of Multithreaded Java Programs · ASE 2008
Network measurement and analytics
protocol analysis
0.112007
Generic Application-Level Protocol Analyzer and its Language · NDSS 2007
Program analysis › symbolic execution
dynamic symbolic execution
0.112007
Predictive testing: amplifying the effectiveness of software testing · ESEC/SIGSOFT FSE 2007
Program analysis
symbolic execution
0.112007
Predictive testing: amplifying the effectiveness of software testing · ESEC/SIGSOFT FSE 2007
Software testing › test generation
test amplification
0.112007
Predictive testing: amplifying the effectiveness of software testing · ESEC/SIGSOFT FSE 2007
Concurrent programming › concurrency models › multithreading
multithreaded programs
0.012008
Predictive Typestate Checking of Multithreaded Java Programs · ASE 2008
Software testing › test generation
automated test generation
0.012007
Predictive testing: amplifying the effectiveness of software testing · ESEC/SIGSOFT FSE 2007
Programming languages and type systems
domain-specific languages
0.012007
Generic Application-Level Protocol Analyzer and its Language · NDSS 2007

Methods — techniques the papers use, named apart from their topics

model checking · 0.5streaming log checking · 0.2pruning policies · 0.2failure injection · 0.2automaton-based log analysis · 0.2trace program generation · 0.1random thread scheduling · 0.1active testing · 0.1symbolic analysis · 0.1concolic execution · 0.1assertion hoisting · 0.1
YearPublicationVenuePosition
2025 SmartKC++: Improving Performance of Smartphone-Based Corneal Topographers
abstract
Keratoconus, an ocular condition marked by progressive corneal thinning and outward bulging, presents diagnostic challenges due to the high cost and lack of portability in conventional corneal topographers. These limitations restrict accessibility for many, necessitating affordable and mobile alternatives. Innovations like SmartKC [9] offer a low-cost and portable alternative, however, there still remains some gaps in performance when compared to commercial topographers. In this paper, we introduce SmartKC++, a series of innovative methodological improvements to the image processing pipeline of SmartKC, aimed at significantly enhancing its diagnostic precision and reliability. Our comprehensive evaluation on a dataset comprising 303 eye images reveals that SmartKC++ boosts the accuracy of automated keratoconus diagnosis by 7.69% relative to SmartKC.
Vaibhav Ganatra, Siddhartha Gairola, Pallavi Joshi, Anand Balasubramaniam, Kaushik Murali, Arivunithi Varadharajan, Bellamkonda Mallikarjuna, Nipun Kwatra
WACV3
2023 A performance efficient joint clustering and routing approach for heterogeneous wireless sensor networks
abstract
Abstract Wireless sensor networks have proven to be a promising paradigm due to their wide applicability in the real‐world scenarios. Because of the resource constraint, type‐variant and battery‐powered features of the sensor nodes, the key challenge is how to improve the energy usage and network life in the heterogeneous sensor networks. In this paper, the Mahalanobis distance based K‐Means algorithm is integrated with a novel evolutionary approach for clustering called calf search optimization algorithm (K‐CSOA) that creates energy efficient clusters. The routing in the network is performed using a power efficient ant colony optimization algorithm (ACO). The extensive and multiple simulations are performed to validate the effectiveness of the proposed method. It is observed that the running time of the proposed scheme is lowered due to the implementation of hybrid clustering. The results are validated for various performance metrics wherein the proposed method shows 41.6% and 4.3%–12% reduction in energy expenditure and end‐to‐end delay respectively and around 60% enhancement in the throughput of the network when compared with other similar state‐of‐the‐art methods. In addition to this, statistical analysis is also carried out to identify the performance of the proposed algorithm.
Pallavi Joshi, Sarvesh Kumar, A. S. Raghuvanshi
Expert Syst. J. Knowl. Eng.1
2016 CloudSeer: Workflow Monitoring of Cloud Infrastructures via Interleaved Logs
abstract
Cloud infrastructures provide a rich set of management tasks that operate computing, storage, and networking resources in the cloud. Monitoring the executions of these tasks is crucial for cloud providers to promptly find and understand problems that compromise cloud availability. However, such monitoring is challenging because there are multiple distributed service components involved in the executions. CloudSeer enables effective workflow monitoring. It takes a lightweight non-intrusive approach that purely works on interleaved logs widely existing in cloud infrastructures. CloudSeer first builds an automaton for the workflow of each management task based on normal executions, and then it checks log messages against a set of automata for workflow divergences in a streaming manner. Divergences found during the checking process indicate potential execution problems, which may or may not be accompanied by error log messages. For each potential problem, CloudSeer outputs necessary context information including the affected task automaton and related log messages hinting where the problem occurs to help further diagnosis. Our experiments on OpenStack, a popular open-source cloud infrastructure, show that CloudSeer's efficiency and problem-detection capability are suitable for online monitoring.
Pallavi Joshi, Jianwu Xu, Guoliang Jin, Hui Zhang 0002, Guofei Jiang
ASPLOS2
2014 ReproLite: A Lightweight Tool to Quickly Reproduce Hard System Bugs
abstract
Cloud systems have become ubiquitous today -- they are used to store and process the tremendous amounts of data being generated by Internet users. These systems run on hundreds of commodity machines, and have a huge amount of non-determinism (thousands of threads and hundreds of processes) in their execution. Therefore, bugs that occur in cloud systems are hard to understand, reproduce, and fix. The state-of-the-art of debugging in the industry is to log messages during execution, and refer to those messages later in case of errors. In ReproLite, we augment the already widespread process of debugging using logs by enabling testers to quickly and easily specify the conjectures that they form regarding the cause of an error (or bug) from execution logs, and to also automatically validate those conjectures.
Kaituo Li, Pallavi Joshi, Aarti Gupta, Malay K. Ganai
SoCC2
2014 SAMC: Semantic-Aware Model Checking for Fast Discovery of Deep Bugs in Cloud Systems
Tanakorn Leesatapornwongsa, Mingzhe Hao, Pallavi Joshi, Jeffrey F. Lukman, Haryadi S. Gunawi
OSDI3
2011 FATE and DESTINI: A Framework for Cloud Recovery Testing
Haryadi S. Gunawi, Thanh Do, Pallavi Joshi, Peter Alvaro, Joseph M. Hellerstein, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau, Koushik Sen, Dhruba Borthakur
NSDI3
2011 PREFAIL: a programmable tool for multiple-failure injection
abstract
As hardware failures are no longer rare in the era of cloud computing, cloud software systems must "prevail" against multiple, diverse failures that are likely to occur. Testing software against multiple failures poses the problem of combinatorial explosion of multiple failures. To address this problem, we present PreFail, a programmable failure-injection tool that enables testers to write a wide range of policies to prune down the large space of multiple failures. We integrate PreFail to three cloud software systems (HDFS, Cassandra, and ZooKeeper), show a wide variety of useful pruning policies that we can write for them, and evaluate the speed-ups in testing time that we obtain by using the policies. In our experiments, our testing approach with appropriate policies found all the bugs that one can find using exhaustive testing while spending 10X--200X less time than exhaustive testing.
Pallavi Joshi, Haryadi S. Gunawi, Koushik Sen
OOPSLA1
2010 An effective dynamic analysis for detecting generalized deadlocks
abstract
We present an effective dynamic analysis for finding a broad class of deadlocks, including the well-studied lock-only deadlocks as well as the less-studied, but no less widespread or insidious, deadlocks involving condition variables. Our analysis consists of two stages. In the first stage, our analysis observes a multi-threaded program execution and generates a simple multi-threaded program, called a trace program, that only records operations observed during the execution that are deemed relevant to finding deadlocks. Such operations include lock acquire and release, wait and notify, thread start and join, and change of values of user-identified synchronization predicates associated with condition variables. In the second stage, our analysis uses an off-the-shelf model checker to explore all possible thread interleavings of the trace program and check if any of them deadlocks. A key advantage of our technique is that it discards most of the program logic which usually causes state-space explosion in model checking, and retains only the relevant synchronization logic in the trace program, which is sufficient for finding deadlocks. We have implemented our analysis for Java, and have applied it to twelve real-world multi-threaded Java programs. Our analysis is effective in practice, finding thirteen previously known as well as four new deadlocks.
Pallavi Joshi, Mayur Naik, Koushik Sen, David Gay
SIGSOFT FSE1
2009 CalFuzzer: An Extensible Active Testing Framework for Concurrent Programs
Pallavi Joshi, Mayur Naik, Chang-Seo Park, Koushik Sen
CAV1
2009 A randomized dynamic program analysis technique for detecting real deadlocks
abstract
We present a novel dynamic analysis technique that finds real deadlocks in multi-threaded programs. Our technique runs in two stages. In the first stage, we use an imprecise dynamic analysis technique to find potential deadlocks in a multi-threaded program by observing an execution of the program. In the second stage, we control a random thread scheduler to create the potential deadlocks with high probability. Unlike other dynamic analysis techniques, our approach has the advantage that it does not give any false warnings. We have implemented the technique in a prototype tool for Java, and have experimented on a number of large multi-threaded Java programs. We report a number of previously known and unknown real deadlocks that were found in these benchmarks.
Pallavi Joshi, Chang-Seo Park, Koushik Sen, Mayur Naik
PLDI1
2008 Predictive Typestate Checking of Multithreaded Java Programs
abstract
Writing correct multithreaded programs is difficult. Existing tools for finding bugs in multithreaded programs primarily focus on finding generic concurrency problems such as data races, atomicity violations, and deadlocks. However, these generic bugs may sometimes be benign and may not help to catch other functional errors in multithreaded programs. In this paper, we focus on a high-level programming error, called typestate error, which happens when a program does not follow the correct usage protocol of an object. We present a novel technique that finds typestate errors in multithreaded programs by looking at a successful execution. An appealing aspect of our technique is that it not only finds typestate errors that occur during a program execution, but also many other typestate errors that could have occurred in a different execution. We have implemented this technique in a prototype tool for Java and have experimented it with a number of real-world Java programs.
Pallavi Joshi, Koushik Sen
ASE1
2007 Generic Application-Level Protocol Analyzer and its Language
Nikita Borisov, David Brumley, Helen J. Wang, John Dunagan, Pallavi Joshi, Chuanxiong Guo
NDSS5
2007 Predictive testing: amplifying the effectiveness of software testing
abstract
Testing with manually generated test cases often results in poor coverage and fails to discover many corner case bugs and security vulnerabilities. Automated test generation techniques based on static or symbolic analysis usually do not scale beyond small program units. We propose predictive testing, a new method for amplifying the effectiveness of existing test cases using symbolic analysis. We assume that a software system has an associated test suite consisting of a set of test inputs and a set of program invariants, in the form of a set of assert statements that the software must always satisfy. Predictive testing uses a combination of concrete and symbolic execution, similar to concolic execution, on the provided test inputs to discover if any of the assertions encountered along a test execution path could be violated for some closely related inputs. We extend predictive testing to catch bugs related to memory-safety violations, integer overflows, and string-related vulnerabilities. Furthermore, we propose a novel technique that leverages the results of unit testing to hoist assertions located deep inside the body of a unit function to the beginning of the unit function. This enables predictive testing to encounter assertions more often in test executions and thereby significantly amplifies the effectiveness of testing.
Pallavi Joshi, Koushik Sen, Mark Shlimovich
ESEC/SIGSOFT FSE1
2006 Design and Analysis of a Robust and Efficient Block Cipher using Cellular Automata
abstract
Cellular automaton (CA) has been shown to be capable of generating complex and random patterns out of simple rules. There has been constant efforts of applying CA to develop ciphers, but the attempts have not been successful. This paper describes how repeated application of simple CA transforms may be used to achieve confusion and diffusion, needed in block ciphers. The components have been evaluated for their robustness against conventional cryptanalysis and the results have been found to be comparable to standards. Finally, the parts are assembled in an unconventional way to construct a self-invertible CA based round, which is resistant against linear and differential cryptanalysis and yet can be efficiently implemented
Pallavi Joshi, Debdeep Mukhopadhyay, Dipanwita Roy Chowdhury
AINA (2)1