Publications -- Fabrice Le Fessant

Download the complete BibTex File

lefessan
[LeFessant2010b]
Stevens Le Blond, Arnaud Legout, Fabrice Le Fessant, Walid Dabbous and Mohamed Ali Kaafar. Spying the world from your laptop: identifying and profiling content providers and big downloaders in BitTorrent. In 3rd USENIX conference on Large-scale exploits and emergent threats: botnets, spyware, worms, and more (LEET'2010), Apr 2010. [.pdf ]
This paper presents a set of exploits an adversary can use to continuously spy on most BitTorrent users of the Internet from a single machine and for a long period of time. Using these exploits for a period of 103 days, we collected 148 million IPs downloading 2 billion copies of contents. We identify the IP address of the content providers for 70% of the BitTorrent contents we spied on. We show that a few content providers inject most contents into BitTorrent and that those content providers are located in foreign data centers. We also show that an adversary can compromise the privacy of any peer in BitTorrent and identify the big downloaders that we define as the peers who subscribe to a large number of contents. This infringement on users' privacy poses a significant impediment to the legal adoption of BitTorrent.

[LeFessant2010a]
Sylvain Conchon, Jean-Christophe Filliatre, Fabrice Le Fessant, Julien Robert, Guillaume Von Tokarski. Observation temps-reel de programmes Caml. In JFLA (Journees Francophones des Langages Impe©ratifs), Jan 2010. [.pdf ]
Pour mettre au point un programme, tant du point de vue de sa correction que de ses performances, il est naturel de chercher a observer son exe©cution. On peut ainsi chercher √ɬ† observer la gestion de la m√ɬ©moire, le temps pass√ɬ© dans une certaine partie du code, ou encore certaines valeurs calcul√ɬ©es par le programme. De nombreux outils permettent de telles observations (moniteur syst√ɬ®me, profiler ou debugger g√ɬ©n√ɬ©riques ou sp√ɬ©cifiques au langage, instrumentation explicite du code, etc.). Ces outils ne proposent cependant que des analyses << apr√ɬ®s coup >> ou des observations tr√ɬ®s limit√ɬ©es. Cet article pr√ɬ©sente Ocamlviz, une biblioth√ɬ®que pour instrumenter du code OCaml et des outils pour visualiser ensuite son ex√ɬ©cution, en temps-r√ɬ©el et de mani√ɬ®re distante.

[LeFessant2009f] Stevens Le Blond, Fabrice Le Fessant, and Erwan Le Merrer. Finding good partners in availability-aware p2p networks. In International Symposium on Stabilization, Safety, and Security of Distributed Systems (SSS'09), Nov 2009. [ bib | .pdf ]
We study the problem of finding peers matching a given availability pattern in a peer-to-peer (P2P) system. Motivated by practical examples, we specify two formal problems of availability matching that arise in real applications: disconnection matching, where peers look for partners expected to disconnect at the same time, and presence matching, where peers look for partners expected to be online simultaneously in the future. As a scalable and inexpensive solution, we propose to use epidemic protocols for topology management; we provide corresponding metrics for both matching problems. We evaluated this solution by simulating two P2P applications, task scheduling and file storage, over a new trace of the eDonkey network, the largest available with availability information. We first proved the existence of regularity patterns in the sessions of 14M peers over 27 days. We also showed that, using only 7 days of history, a simple predictor could select predictable peers and successfully predicted their online periods for the next week. Finally, simulations showed that our simple solution provided good partners fast enough to match the needs of both applications, and that consequently, these applications performed as efficiently at a much lower cost. We believe that this work will be useful for many P2P applications for which it has been shown that choosing good partners, based on their availability, drastically improves their performance and stability.

[LeFessant2009e] Anthonis Papadimitriou, Fabrice Le Fessant, Aline Carneiro Viana, and Cigdem Sengul. Cryptographic protocols to fight sinkhole attacks on tree-based routing in wireless sensor networks. In Workshop on Secure Network Protocols (NPSec'09), Oct 2009. [ bib | .pdf ]
This work focuses on: (1) understanding the impact of sinkhole attacks on tree-based routing topologies in Wireless Sensor Networks (WSNs), and (2) investigating cryptography-based strategies to limit network degradation caused by these attacks. This work is particularly important as WSN protocols that construct a fixed routing topology may be significantly affected by malicious attacks. Furthermore, considering networks deployed in a difficult to access geographical region, building up resilience against such attacks rather than detection is expected to be more beneficial. We thus first provide a simulation study on the impact of malicious attacks based on a diverse set of parameters, such as the network scale and the position and number of malicious nodes. Based on this study, we propose a single but very representative metric for describing this impact. Second, we present the novel design and evaluation of two simple and resilient topology-based reconfiguration protocols that broadcasts cryptographic values. The results of our simulation study show that our reconfiguration protocols are practical and effective in improving resilience against sinkhole attacks, even in the presence of some collusion.

[LeFessant2009d] Stevens Le Blond, Fabrice Le Fessant, and Erwan Le Merrer. Choix de partenaires en p2p suivant des crit√®res de disponibilit√©. In Conf√©rence Fran√ßaise sur les Syst√®mes d'Exploitation (CFSE'09), Sep 2009. [ bib | .pdf ]
Nous √©tudions la probl√©matique de recherche distribu√©e de pairs correspondant √† un motif de disponibilit√© donn√©, dans un syst√®me pair-√†-pair (P2P). Motiv√©s par des exemples concrets, nous sp√©cifions deux probl√®mes formels de correspondance de disponibilit√© qui apparaissent dans des applications r√©elles: la correspondance de d√©connexion, o√Ļ les pairs cherchent des partenaires dont la d√©connexion co√Įncide avec la leur, et la correspondance de pr√©sence, o√Ļ les pairs cherchent des partenaires connect√©s en m√™me temps qu'eux dans le futur. Nous proposons, comme solution peu co√Ľteuse et passant √† l'√©chelle, l'utilisation de protocoles √©pid√©miques pour la gestion de la topologie du r√©seau logique (comme le protocole T-Man); des m√©triques ad√©quates sont fournies pour les deux probl√®mes de correspondance. Notre solution a √©t√© √©valu√©e en simulant deux applications P2P, l' ordonnancement de t√Ęches et le stockage de fichiers, sur une trace in√©dite d'eDonkey, la plus grande fournissant les informations de disponibilit√© des pairs. Nous prouvons tout d'abord l'existence de motifs r√©guliers dans les sessions de 14M de pairs sur 27 jours. Nous montrons √©galement, en utilisant 7 jours d'historique, qu'un pr√©dicteur simple peut s√©lectionner des pairs pr√©dictibles, pour pr√©dire avec succ√®s leur p√©riode de pr√©sence en ligne pour la semaine suivante. Enfin, les simulations ont montr√© que notre solution simple a fourni rapidement de bons partenaires afin de r√©pondre au besoin des deux applications, et ainsi de leur permettre de s'ex√©cuter aussi efficacement √† un co√Ľt bien inf√©rieur. Nous pensons que ce travail sera utile pour beaucoup d'applications P2P, pour lesquelles il a √©t√© montr√© que choisir ses partenaires, en se basant sur leur disponibilit√©, am√©liore de fa√ßon cons√©quente les performances du syst√®me.

[LeFessant2009c] Samuel Bernard and Fabrice Le Fessant. Optimizing peer-to-peer backup using lifetime estimations. In International Workshop on Data Management in Peer-to-Peer Systems (Damap'09), Mar 2009. [ bib | .pdf ]
In this paper, we study the viability of a peer-to-peer backup system on nowadays internet connections. In particular, we show that peer lifetime estimation can be used to reduce the maintenance cost of peer-to-peer backup. Previous studies have shown that lifetimes in a peer-to-peer system follow a Pareto distribution. Consequently, peers can be sorted on their expected lifetimes, depending only on the length of their history in the system. By carefully selecting the peers on which backup data is stored, repairing cost can be highly reduced for long-term backup users, while it is still acceptable for new users. The efficiency of this technique is evaluated through simulations of a state-of-the-art peer-to- peer backup system.

[LeFessant2009b] Anthonis Papadimitriou, Fabrice Le Fessant, Aline Carneiro Viana, and Cigdem Sengul. Fighting Sinkhole Attacks in Tree-based Routing Topologies. Research Report RR-6811, INRIA, 2009. [ bib | http ]
This work focuses on: (1) understanding the impact of sinkhole attacks on tree-based routing topologies in Wireless Sensor Networks (WSNs), and (2) investigating cryptography-based strategies to limit network degradation caused by these attacks. This work is particularly important as WSN protocols that construct a fixed routing topology may be significantly affected by malicious attacks. Furthermore, considering networks deployed in a difficult to access geographical region, building up resilience against such attacks rather than detection is expected to be more beneficial. We thus first provide a simulation study on the impact of malicious attacks based on a diverse set of parameters, such as the network scale and the position and number of malicious nodes. Based on this study, we propose a single but very representative metric for describing this impact. Second, we present the novel design and evaluation of two simple and resilient topology-based reconfiguration protocols that broadcasts cryptographic values. The results of our simulation study show that our reconfiguration protocols are practical and effective in improving resilience against sinkhole attacks, even in the presence of some collusion.

Keywords: wireless sensor network, sinkhole attacks, resilience, tree-based routing protocols
[LeFessant2009a] Stevens Le Blond, Fabrice Le Fessant, and Erwan Le Merrer. Finding Good Partners in Availability-aware P2P Networks. Research Report RR-6795, INRIA, 2009. [ bib | http ]
In this paper, we study the problem of finding peers matching a given availability pattern in a peer-to-peer (P2P) system. We first prove the existence of such patterns in a new trace of the eDonkey network, containing the sessions of 14M peers over 27 days. We also show that, using only 7 days of history, a simple predictor can select predictable peers and successfully predict their online periods for the next week. Then, motivated by practical examples, we specify two formal problems of availability matching that arise in real applications: disconnection matching, where peers look for partners expected to disconnect at the same time, and presence matching, where peers look for partners expected to be online simultaneously in the future. As a scalable and inexpensive solution, we propose to use epidemic protocols for topology management, such as T-Man; we provide corresponding metrics for both matching problems. Finally, we evaluated this solution by simulating two P2P applications over our real trace: task scheduling and file storage. Simulations showed that our simple solution provided good partners fast enough to match the needs of both applications, and that consequently, these applications performed as efficiently at a much lower cost. We believe that this work will be useful for many P2P applications for which it has been shown that choosing good partners, based on their availability, drastically improves their efficiency.

[LeFessant2008b] Fabrice Le Fessant, Cigdem Sengul, and Anne-Marie Kermarrec. Pace-Maker: Tracking peer availability in large networks. Research Report RR-6594, INRIA, 2008. [ bib | http ]
In this paper, we introduce Pacemaker, a scalable and lightweight protocol to measure reliably the availability of peers. To the best of our knowledge, Pacemaker is the only protocol resilient to the presence of selfish peers, i.e. peers lying about their availability and minimizing their contribution to the system. Pacemaker relies on a novel pulse-based architecture, where a small set of trusted peers regularly flood the network with pulses containing cryptographic values. Collecting these pulses enables peers to later prove their presence in the system at any time, using cryptographic signatures. This new architecture overcomes many limitations of ping-based systems, and can be easily deployed on ad-hoc networks and social-based topologies. Simulation results show that our protocol provides accurate availability measurements even in the presence of selfish peers. Furthermore, our results are verified by experiments in Planetlab, which also illustrate the deployability of Pacemaker in real networks.

Keywords: peer-to-peer, cryptography, availability, monitoring
[LeFessant2008a] D. Frey, J. Royan, R. Piegay, A.M. Kermarrec, E. Anceaume, and Fabrice Le Fessant. Solipsis: A decentralized architecture for virtual environments. In International Workshop on Massively Multiuser Virtual Environments (MMVE'08). IEEE, Mar 2008. [ bib | .pdf ]
Lack of scalability is a key issue for virtual-environment technology, and more generally for any large-scale online experience because it prevents the emergence of a truly massive virtual-world infrastructure (Metaverse). The Solipsis project tackles this issue through the use of peer-to-peer technology, and makes it possible to build and manage a world-scale Metaverse in a truly distributed manner. Following a peer-to-peer scheme, entities collaborate to build up a common set of virtual worlds. In this paper, we present a first draft of the Solipsis architecture as well as the communication protocol used to share data between peers. The protocol is based on Raynet, an n-dimensional Voronoi-based overlay network. Its data-dissemination policy takes advantage of the viewdepedent representation of 3D contents. Moreover, the protocol effectively distributes the execution of computationally intesive tasks that are usually executed on the server-side, such as collision detection and physics computation. Finally, we also present our web component, a 3D navigator that can easily run on terminals with scarce resources, and that provides solutions for smooth transitions between 3D Web and Web 2.0.

[LeFessant2007b] Patrick Eugster, Pascal Felber, and Fabrice Le Fessant. The art of programming gossip-based systems. Operating Systems Review - Special topic: Gossip-Based Networking, 41(5), oct 2007. [ bib | .pdf ]
How does one best go about building actual gossip-based protocols? Trying to answer this question has brought us to address two preliminary questions, namely (1) what the in- trinsics of such systems or protocols are, and (2) what kind of applications would in the end be built on top of such protocols. We address the first question by arguing that gossip-based protocols are all built following one and the same pattern, and describing three building blocks which we claim are used to support this recurrent pattern-most notably a source of randomness. We validate these claims by devising simplified versions of well-known protocols, in a layered fashion, on top of a conceptual interface describing these basic services. The second question is addressed by ar- guing that gossip-based protocols exhibit some probabilistic or imperfect flavor (e.g., probabilistic or partial completion), and by proposing to take such probabilistic behavior into ac- count when devising interfaces for applications building on top of gossip-based protocols. We argue for inherent support for these probabilities in the programming model.

[LeFessant2007a] Fabrice Le Fessant. Gestion de versions de formats avec Camlp4. In Dix-huitièmes Journées Francophones des Langages Applicatifs (JFLA'07), Aix-les-bains, France, 2007. INRIA. [ bib | .pdf ]
La gestion des changements de formats est un problème crucial de l'informatique : encore aujourd'hui, peu d'applications sont capables de lire des données sauvées dans un format d'une version antérieure ; en distribué, les versions de programmes devant communiquer entre eux sont de plus en plus hétérogènes, en particuliers dans les systèmes pair-à-pair. Dans ce papier, nous présentons une extension de syntaxe d'Objective-Caml en Camlp4 permettant de gérer plus ecacement les évolutions de formats, aussi bien dans les chiers sauvegardés que dans les messages échangés dans un système distribué.

[LeFessant2006b] Rachid Guerraoui, Sidath B. Handurukande, Kevin Huguenin, Anne-Marie Kermarrec, Fabrice Le Fessant, and Etienne Riviere. Gosskip, an efficient, fault-tolerant and self organizing overlay using gossip-based construction and skip-lists principles. In International Conference on Peer-to-Peer Computing (P2P'06), 2006. [ bib | .pdf ]
This paper presents GosSkip, a self organizing and fully distributed overlay that provides a scalable support to data storage and retrieval in dynamic environments. The structure of GosSkip, while initially possibly chaotic, eventually matches a perfect set of Skip-list-like structures, where no hash is used on data attributes, thus preserving semantic locality and permitting range queries. The use of epidemic-based protocols is the key to scalability, fairness and good behavior of the protocol under churn, while preserving the simplicity of the approach and maintaining O(log(N)) state per peer and O(log(N)) routing costs. In addition, we propose a simple and efficient mechanism to exploit the presence of multiple data items on a single physical node. GosSkip2019s behavior in both a static and a dynamic scenario is further conveyed by experiments with an actual implementation and real traces of a peer to peer workload.

[12] Sidath B. Handurukande, Anne-Marie Kermarrec, Fabrice Le Fessant, Laurent Massoulié, and Simon Patarin. Peer sharing behaviour in the edonkey network, and implications for the design of server-less file sharing systems. In EuroSys Conference (EuroSys'06), 2006. [ bib | .pdf ]
In this paper we present an empirical study of a workload gathered by crawling the eDonkey network - a dominant peer-to-peer file sharing system - for over 50 days. We first confirm the presence of some known features, in particular the prevalence of free-riding and the Zipflike distribution of file popularity. We also analyze the evolution of document popularity. We then provide an in-depth analysis of several clustering properties of such workloads. We measure the geographical clustering of peers offering a given file. We find that most files are offered mostly by peers of a single country, although popular files don't have such a clear home country. We then analyze the overlap between contents offered by different peers. We find that peer contents are highly clustered according to several metrics of interest. We propose to leverage this property by allowing peers to search for content without server support, by querying suitably identified semantic neighbours. We find via trace-driven simulations that this approach is generally effective, and is even more effective for rare files. If we further allow peers to query both their semantic neighbours, and in turn their neighbours' neighbours, we attain hit rates as high as over 55% for neighbour lists of size 20.

[13] S. Handurukande, Anne-Marie Kermarrec, F. Le Fessant, Laurent Massoulié, and S. Patarin. Peer Sharing Behaviour in the eDonkey Network, and Implications for the Design of Server-less File Sharing Systems. Research Report RR-5506, INRIA, 2005. [ bib | http ]
Peer-to-peer file sharing systems have grown to the extent that they now generate most of the Internet traffic, way ahead of Web traffic. Understanding workload properties of peer-to-peer systems is necessary to optimize their performance. In this paper we present an empirical study of a workload gathered by crawling the eDonkey network a dominant file sharing system for over 50 days. Besides confirming the presence of some well-known features, such as the prevalence of free-riding and the Zipf-like distribution of file popularity, we also analyze several previously ignored aspects of such workloads. More specifically, we measure the geographical clustering of peers offering a given file. We find that most files are offered mostly by peers of a single country, although popular files don't have such a clear home country. We also analyze the overlap between contents offered by different peers. We find that peer contents tend to be clustered, which may be taken as evidence that peers possess specific interests. We leverage this and allow peers to search for content without any server support, by maintaining a list of semantic neighbours, i.e. peers with similar interests. Simulation results confirm the clustering property of the trace and show that a high hit ratio is achieved by querying the most recently discovered peers even after removing the top 15% most generous peers. Results also indicate that the clustering is much higher for rare files.

Keywords: PEER-TO-PEER OVERLAY NETWORKS / FILE SHARING APPLICATION / CLUSTERING PATTERNS / TRACE ANALYSIS / SEMANTIC PROXIMITY
[14] Behshad Behzadi and Fabrice Le Fessant. Dna compression challenge revisited: A dynamic programming approach. In Combinatorial Pattern Matching, 16th Annual Symposium (CPM'05), Jeju Island, Korea, June 19-22, 2005, Proceedings, 2005. [ bib | .pdf ]
Standard compression algorithms are not able to compress DNA sequences. Recently, new algorithms have been introduced specifically for this purpose, often using detection of long approximate repeats. In this paper, we present another algorithm, DNAPack, based on dynamic programming. In comparison with former existing programs, it compresses DNA slighly better, while the cost of dynamic programming is almost neglectible.

[15] Sidath B. Handurukande, Anne-Marie Kermarrec, Fabrice Le Fessant, and Laurent Massoulié. Exploiting semantic clustering in the edonkey p2p network. In ACM SIGOPS European Workshop, Leuven, Belgium, September 19-22, 2004, Sep 2004. [ bib | .pdf ]
Peer-to-peer file sharing now represents a significant portion of the Internet traffic and has generated a lot of interest from the research community. Some recent measurements studies of peer-to-peer workloads have demonstrated the presence of semantic proximity between peers. One way to improve performance of peer-to-peer file sharing systems is to exploit this locality of interest in order to connect semantically related peers so as to improve the search both in flooding- and server-based systems. Creating these additional connections raises interesting challenges and in particular (i) how to capture the semantic relationship between peers (ii) how to exploit these relationships and (iii) how to evaluate these improvements. In this paper, we evaluate several strategies to exploit the semantic proximity between peers against a real trace collected in November 2003 in the eDonkey 2000 peer-to-peer network. We present the results of this evaluation which confirm the presence of clustering in such networks and the interest to exploit it.

[16] Fabrice Le Fessant, Sidath B. Handurukande, Anne-Marie Kermarrec, and Laurent Massoulié. Clustering in peer-to-peer file sharing workloads. In Peer-to-Peer Systems III, Third International Workshop (IPTPS'04), La Jolla, CA, USA, February 26-27, 2004, Revised Selected Papers, Feb 2004. [ bib | .ps.gz ]
Peer-to-peer file sharing systems now generate a significant portion of Internet traffic. A good understanding of their workloads is crucial in order to improve their scalability, robustness and performance. Previous measurement studies on Kazaa and Gnutella were based on monitoring peer requests, and mostly concerned with peer and file availability and network traffic. In this paper, we take different measurements: instead of passively recording requests, we actively probe peers to get their cache contents information. This provides us with a map of contents, that we use to evaluate the degree of clustering in the system, and that could be exploited to improve significantly the search process.

[17] Bernadette Charron-Bost and Fabrice Le Fessant. Validity conditions in agreement problems and time complexity. In SOFSEM'04: Theory and Practice of Computer Science, 30th Conference on Current Trends in Theory and Practice of Computer Science, Merin, Czech Republic, January 24-30, 2004, Jan 2004. [ bib | .ps.gz ]
We first introduce a new class of distributed agreement problems, ranging from Uniform Consensus to Non-Blocking Atomic Commitment, by varying the validity condition in the specification. We then provide an early deciding algorithm to solve each problem of this class in the synchronous model with crash failures. Our algorithm achieves the previously established lower bounds for time complexity showing that these lower bounds are tight.

[18] Fabrice Le Fessant, Philippe Raipin Parvédy, and Michel Raynal. Brief announcement: early decision despite general process omission failures. In Conference on Principles of Distributed Computing (PODC'03), 2003. [ bib | www: ]

[19] Fabrice Le Fessant and Simon Patarin. MLdonkey, a Multi-Network Peer-to-Peer File-Sharing Program. Research Report RR-4797, INRIA, 2003. [ bib | http ]
A lot of designers of functional languages have one dream: finding a killer application, outside of the world of symbolic programming (compilers, theorem provers, DSLs), that would make their language spread in the open-source community. One year ago, we tackled this problem, and decided to use to program a network application in the emerging world of peer-to-peer systems. The result of our work, , has superseded our hopes: it is currently the most popular peer-to-peer file-sharing client on the well-known freshmeat.net site, with about 10,000 daily users. Moreover, is the only client able to connect to several peer-to-peer networks, to download and share files. It works as a daemon, running unattended on the computer, and can be controlled remotely using three different kind of interfaces. In this paper, we present the lessons we learnt from its design and implementation.

Keywords: PEER-TO-PEER / FILE SHARING / FUNCTIONAL PROGRAMMING
[20] Bernadette Charron Bost and Fabrice Le Fessant. Validity Conditions in Agreement Problemsand Time Complexity. Research Report RR-4526, INRIA, 2002. Projet SOR. [ bib | http ]
We study the time complexity of different agreement problems in the synchrono- us model with crash failures, by varying their validity condition. We first introduce a continuous class of agreement problems, the k-TAg problems, which includes both the Uniform Consensus and Non-Blocking Atomic Commitment. We then exhibit a general early-deciding algorithm, that we instanciate to solve every problem of this class. The algorithm always achieves the previously established lower-bounds for early-deciding, showing that these lower-bounds are tight.

Keywords: DISTRIBUTED CONSENSUS / SYNCHRONOUS MODEL / NON-BLOCKING ATOMIC COMMITMENT / ERALY-DECIDING ALGORITHM / K-TAG / LOWER-BOUNDS / VALIDITY CONDITIONS / TIME COMPLEXITY
[21] Cédric Fournet, Fabrice Le Fessant, Luc Maranget, and Alan Schmitt. Jocaml: A language for concurrent distributed and mobile programming. In Advanced Functional Programming, 4th International School, AFP 2002, Oxford, UK, August 19-24, 2002, Revised Lectures, 2002. [ bib | .pdf ]
[22] Fabrice Le Fessant. Detecting distributed cycles of garbage in large-scale systems. In Conference on Principles of Distributed Computing (PODC'01), 2001. [ bib | .ps.gz ]
Distributed scalable garbage collectors, mostly based on some kind of reference counting, fail to detect distributed cycles of garbage. This problem may lead to important memory leaks in distributed storage systems. In this paper, we present a new algorithm which detects and collects such distributed cycles of garbage. Our algorithm is based on the propagation of marks along chains of remote pointers. It uses two new mechanisms: min-max marking , to propagate two different marks to each stub, and sub-generation , to build an acyclic graph on a cycle using back-tracking information. A new technique, called optimistic back-tracking , is also used to speed-up sub-generation. The resulting algorithm is completely distributed, asynchronous, fault-tolerant and inexpensive. Moreover, it collects incrementally all distributed cycles of garbage, without partitioning the system. Thus, it is particularly well adapted to large-scale networks. Finally, it can be easily implemented with minor modifications of a local tracing garbage collector.

[23] Fabrice Le Fessant and Luc Maranget. Optimizing pattern matching. In Internationnal Conference on Functional Programming (ICFP'01), 2001. [ bib | .ps.gz ]
We present improvements to the backtracking technique of pattern-matching compilation. Several optimizations are introduced, such as commutation of patterns, use of exhaustiveness information, and control flow optimization through the use of labeled static exceptions and context information. These optimizations have been integrated in the Objective-Caml compiler. They have shown good results in increasing the speed of pattern-matching intensive programs, without increasing final code size.

[24] Sylvain Conchon and Fabrice Le Fessant. Jocaml: Mobile agents for objective-caml. In 1st International Symposium on Agent Systems and Applications / 3rd International Symposium on Mobile Agents (ASA/MA'99), 3-6 October 1999, Palm Springs, CA, USA, pages 22-29, 1999. [ bib | .ps.gz ]
Jocaml is a system for mobile agents built inside the Objective-Caml language. Jocaml eases the development of concurrent, distributed and mobile agent based applications, by expressing useful distribution abstractions using a small set of simple but powerful primitives taken from the Join-Calculus. The system provides total transparency for migration, application states (after migration, all threads resume their execution in the state before migration), communications (communication channels with other agents are kept during migration) and composition (sub-agents migrate with their parent agent). Other features of the Jocaml system are mobile objects with transparent remote method invocation, distributed garbage collection, failure detection and execution efficiency. Jocaml has already been used in several applications, such as a mobile editor, some distributed games and a distributed implementation of Ambients. This paper describes the Jocaml programming model and language, its current implementation and some interesting applications.

[25] Marc Shapiro, Fabrice Le Fessant, and Paulo Ferreira. Recent advances in distributed garbage collection. In Advances in Distributed Systems, Advanced Distributed Computing: From Algorithms to Systems, volume 1752 of Lecture Notes in Computer Science. Springer, 1999. [ bib | .pdf ]
Dynamically-allocated memory must eventually be reclaimed. But manual reclamation is error-prone, and if an object is de-allocated prematurely, a program that later follows a pointer to it might behave incorrectly. In contrast, garbage collection (GC) automatically reclaims objects that can no longer be reached by any path of pointers.

In a distributed system, an object might not only be referenced from one program, but also from other programs and other computers. This makes manual reclamation quite intractable. We consider here the problem of distributed garbage collection (DGC). DGC is particularly important in a large-scale distributed system, since a de-allocation error might cause a completely unrelated program to fail, possibly far away and an arbitrarily long time later.

DGC has been a subject of academic research since at least 1977. With the growth of the Internet, DGC is now receiving its share of commercial attention. For instance, both Java RMI and DCOM come with some form of DGC.

The next section contains a quick review of DGC techniques; for a more in-depth treatment, we refer to published surveys. Then we detail two recent advances in DGC, both developed in the context of the Broadcast project. One is an algorithm for collecting distributed cycles of garbage in a message-passing system; the other is an algorithm for DGC in a system with caching and/or replication. Both have been implemented in real systems and are in actual use. This article assumes some familiarity with centralised GC, now a mature area. We use the following vocabulary. Objects connected by references form a graph; a remote reference may point into another process. An application or mutator enters the graph via roots, allocates objects, and performs assignment of reference variables. The system or collector reclaims garbage, i.e., objects that are reachable by no path from any root.

[26] Fabrice Le Fessant and Luc Maranget. Compiling join-patterns. Electr. Notes Theor. Comput. Sci., 16(3), Sep 1998. [ bib | .ps.gz ]
The join-calculus is both a name passing calculus and a core language for concurrent and distributed programming. An essential part of its implementation is the compilation of join-patterns. Join-patterns define new channels and all the synchronizations they take part to at the same time. Relying on the experience based on our two implementations, we study the translation of join-patterns into deterministic finite-state automata as well as some related optimizations.

[27] Fabrice Le Fessant, Ian Piumarta, and Marc Shapiro. An implementation for complete, asynchronous, distributed garbage collection. In Conference on Programming Languages Design and Implementation (PLDI'98), Jun 1998. [ bib | .ps.gz ]
Most existing reference-based distributed object systems include some kind of acyclic garbage collection, but fail to provide acceptable collection of cyclic garbage. Those that do provide such GC currently suffer from one or more problems: synchronous operation, the need for expensive global consensus or termination algorithms, susceptibility to communication problems, or an algorithm that does not scale. We present a simple, complete, fault-tolerant, asynchronous extension to the (acyclic) cleanup protocol of the SSP Chains system. This extension is scalable, consumes few resources, and could easily be adapted to work in other reference-based distributed object systems-rendering them usable for very large-scale applications.

[28] Fabrice Le Fessant, Ian Piumarta, and Marc Shapiro. A detection algorithm for distributed cycles of garbage. In OOPSLA'97 W. on Garbage Collection and Memory Management, Atlanta GA (USA), October 1997. [ bib | .ps.gz ]
We present an algorithm that detects cycles of garbage in reference-based distributed systems. It is derived from Hughes' algorithm, in a simplified form that makes far fewer assumptions about the system. A local garbage collector marks incoming and outgoing references with timestamps that are propagated asynchronously between spaces. A central site computes the minimum reachable timestamp, allowing stale references to be identified and deleted. The coexistence of non-participating spaces, and spaces participating in collections controlled by more than one central site, is allowed.


This file has been generated by bibtex2html 1.88.