Ankith Kowshik

dblp:390/3224 · DBLP profile ↗
← Back
1ranked-venue papers
0as first author
1since 2021 · last 2024
0009-0009-8788-0912ORCID · reported

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

Software engineering, systems software and programming languages · 1 · 1 since 2021

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
1 paper
Debugging and program repair · 50% Programming languages and type systems · 25% Concurrent programming · 25%
Network and information security
1 paper
Systems and software security · 100%

Topics — the 4 heaviest of 5, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Debugging and program repair › record and replay
deterministic replay
0.812024
Jmvx: Fast Multi-threaded Multi-version Execution and Record-Replay for Managed Languages · Proc. ACM Program. Lang. 2024
Programming languages and type systems
managed languages
0.812024
Jmvx: Fast Multi-threaded Multi-version Execution and Record-Replay for Managed Languages · Proc. ACM Program. Lang. 2024
Concurrent programming
multi-version execution
0.812024
Jmvx: Fast Multi-threaded Multi-version Execution and Record-Replay for Managed Languages · Proc. ACM Program. Lang. 2024
Debugging and program repair
record and replay
0.812024
Jmvx: Fast Multi-threaded Multi-version Execution and Record-Replay for Managed Languages · Proc. ACM Program. Lang. 2024

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

shared-memory communication · 1.5dynamic analysis · 1.5
YearPublicationVenuePosition
2024 Jmvx: Fast Multi-threaded Multi-version Execution and Record-Replay for Managed Languages
abstract
Multi-version execution (MVX) is a technique that deploys many equivalent versions of the same program — variants — as a single program, with direct application in important fields such as: security, reliability, analysis, and availability. MVX can be seen as “online Record/Replay (RR)”, as RR captures a program’s execution as a log stored on disk that can later be replayed to observe the same execution. Unfortunately, current MVX techniques target programs written in C/C++ and do not support programs written in managed languages, which are the vast majority of code written nowadays. This paper presents the design, implementation, and evaluation of Jmvx— a novel system for performing MVX and RR on programs written in managed languages. Jmvx supports programs written in Java by intercepting automatically identified non-deterministic methods, via a novel dynamic analysis technique, and ensuring that all variants execute the same methods and obtain the same data. Jmvx supports multi-threaded programs, by capturing synchronization operations in one variant, and ensuring all other variants follow the same ordering. We validated that Jmvx supports MVX and RR by applying it to a suite of benchmarks representative of programs written in Java. Internally, Jmvx uses a circular buffer located in shared memory between JVMs to enable fast communication between all variants, averaging 5% |47% performance overhead when performing MVX with multithreading support disabled|enabled, 8% |25% when recording, and 13% |73% when replaying.
David Schwartz, Ankith Kowshik, Luís Pina
Proc. ACM Program. Lang.2