[lustre-discuss] Read/Write on specific stripe of file via C api

Apostolis Stamatis el18034 at mail.ntua.gr
Wed Sep 18 07:47:34 PDT 2024


Hello everyone,

I am trying to read/write a specific stripe for files striped across 
multiple OSTs. I've been looking around the C api but with no success so 
far.


Let's say I have a big file which is striped across multiple OSTs. I 
have a cluster of compute nodes which perform some computation on the 
data of the file. Each node needs only a subset of that data.

I want each node to be able to read/write only the needed information, 
so that all reads/writes can happen in parallel. The desired data may or 
may not be aligned with the stripes (this is secondary).

It is my understanding that stripes are just parts of the file. Meaning 
that if I have an array of 100 rows and stripe A contains the first 
half, then it would contain the first 50 rows, is this correct?

To sum up my questions are:

1) Can I read/write a specific stripe of a file via the C api to achieve 
better performance/locality?

2) Is it correct that stripes include parts of the file, meaning the raw 
data? If not, can the raw data be extracted from any additional 
information stored in the stripe?

3) If each compute node is run on top of a different OST where stripes 
of the file are stored, would it be better in terms of performance to 
have the node read the stripe of its OST? (because e.g. it avoids data 
transfer over the network)


Thanks in advance,

Apostolis



More information about the lustre-discuss mailing list