Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

rchitecture Architecture review date

Project lead

James Walder

On this page

Table of Contents

...

The XrdCeph plugin is a Storage level plugin implementing an API in the spirit of the POSIX filesystem abstraction [ref]. XrdCeph relies on libradosstriper to split up write data into RADOS objects, and to re-assemble read data from RADOS objects.

When Echo was being built it was noted that as an object store it was better suited to streaming entire objects rather than performing many small reads (AKA Vector reads) on it. It was therefore decided to place XCaches infront of all the storage endpoints.

...

\uD83D\uDC65 Stakeholders

✏ Software quality attributes

...

The goal is to have a single code base combining libradosStriper and XrdCeph, which could be easily maintained by RAL. We would like to maximise throughput by parallelise parallelising operations / transfers where possible.

...

Project

Description

Estimated effort required

1

Fork libradosStriper

Fork libradosStriper and compile it outside of Ceph to see that we can continue to use data stored in Echo.

1 Month

2

Investigate librados Sparse Reads

Implement Assess and implement sparse reading in the forked libradosStriper (https://github.com/ceph/ceph/blob/main/src/include/rados/librados.hpp#L1060-L1062 ) for efficient vector read operation.

2 - 3 Months

3

Implement a many_aio_read in libradosstriper

Implement in forked libradosstriper a method to perform multi aio_reads in one call (see A. Peters: 26 Mar 21) for more efficient vector read operations (either/or with “Investigate librados Sparse Reads” project)

4

Understand how deletes work

The CERN FTS team measured the performance of deletes (https://codimd.web.cern.ch/UDL3fgqWT1a2HJC7LkWXNg# ) and don’t believe this is sufficient performance for expected data rates.