Distributed file system; replication and consistency; distributed algorithms; distributed database system; verification; protocol design.
A cloud storage system distributes and replicates data, to ensure availability and persistence despite latency and failures. The CAP theorem shows that there is an unavoidable trade-off between consistency and availability/performance. Strong consistency provides superior guarantees to developers but is inherently slow; weak consistency is highly available and responsive but bug-prone for developers. The Antidote database, developed in the SyncFree and LightKone projects guarantees transaction atomicity and causal ordering, while remaining Available under Partition.
No single consistency model is appropriate for all uses. A promising direction is a hybrid approach, where transactions avoid coordination by default, but specific operations that are essential to application correctness are synchronized. Getting this right is difficult: current practice in building distributed systems rests on programmer expertise, i.e., trial and error, which is costly and dangerous.
Our group is developing a principled approach, called Just-Right Consistency (JRC), based on the understanding of application-level invariants, on formal specifications and tools, and ensuring correctness by design. JRC aims to match consistency guarantees to application requirements on a case-by-case basis, in order to provide the best performance and highest availability at the lowest cost.
Early research on JRC has produced a number of preliminary results and research prototypes. The aim of the post-doc is to consolidate these contributions, and make them readily available to application developers. Ultimately, the aim is to make the results of research practical: validate this approach experimentally, by applying it to a number of increasingly demanding, practical large-scale applications. The driving use case is that of a petabyte-scale geo-replicated file system which we aim to design, prove correct, implement and evaluate. It must be sufficiently consistent to maintain the file system invariants. Furthermore, we aim to adapt the amount of synchronization to the needs of the application using the file system.
Requirements and application
A post-doc position is available, supported by the RainbowFS project with industry and academic partners. The research has both a fundamental and an applied aspect and aims for practical results.
Candidates to this position should hold a PhD in Computer Science/Informatics or a related field. They should have an excellent academic record and experience in distributed systems, distributed databases, and/or verification tools. In addition to research experience, he or she should be a good developer and experimenter at large scale, and have teamwork and communication skills. Industrial experience and good knowledge of Erlang and/or node.js is a plus.
To apply, please provide the following information:
- A resume or Curriculum Vitæ.
- A list of courses and grades of the last two years of study (an
informal transcript is OK).
- A list of your top publications and/or open-source developments.
- Names and contact details of three references (people who can
recommend you), whom we will contact directly.
Go to https://jobs.inria.fr/public/classic/en/offres/2018-00352
and click on the “Apply” button.
Contact: Marc Shapiro.