DXi Software Architecture

Overview

 

 

 

 


What's Different Between DXi 1.x Software and DXi 2.x Software?

The /Q directory is Not Directly Useable with DXi 2.x Software

Blockpool Wrapper (BPW) is New with DXi 2.x Software

The BPW component accepts incoming requests via the ddup api. The metadata requests will be handled using the underlying filesystem where possible. Data requests may be for inline deduped data or for non-deduped data, depending on whether the data is destined for a deduped or non-deduped share.


High Level Design

BPW interfaces to the various clients (such as NFS) and produces a data stream and metadata operations stream. The data stream is in the form of a list of pcache pages to either read or write at specific offsets. BPW also manages the operation of opening and closing BLOBs and BFST store contexts at the appropriate times.

Write

A list of pcache pages is passed by reference to the BFST store API, representing a logically contiguous chunk of data, which is stored using the standard BFST internals. There is no copy of data between the BFST API client and server, or between BPW and the BFST client. This process is repeated as more data arrives from the client.

 

BPW eventually decides to end a BLOB at a certain point,, at which point a BLOB tag is returned by the BFST and then managed by BPW.

Read

A list of empty pcache pages is passed by reference to the BFST retrieve API, representing a logically contiguous chunk of data to retrieve. The pages are filled by the BFST. There is no memory copy, as above. This process is repeated as more data is required by the client.

 

This is all achieved by having the BFST server map a shared memory region that is shared with the clients.

 


What's Next?

Data Path >

 

 



This page was generated by the BrainKeeper Enterprise Wiki, © 2018