June 27, 2026
In this paper, we study convertible codes in the merge regime and focus on the minimum storage regenerating (MSR) setting, where both the initial codes and the final code admit optimal single-node repair. We propose explicit MSR-to-MSR conversion schemes and analyze their performance in terms of access cost and conversion bandwidth.
We first construct convertible MSR codes in the irregular setting, where the \(m\) initial codes may have different parameters, achieving optimal access cost. We further consider the practically important same-code setting, where all initial codewords are drawn from the same MSR code. By introducing a row-matching technique, we obtain constructions simultaneously achieving optimal access cost and conversion bandwidth in most parameter regimes.
Convertible codes, MSR codes, distributed storage, merge regime, conversion bandwidth, access cost.
Distributed storage systems provide reliability by encoding data across multiple storage nodes using erasure codes. Two important and practically motivated aspects of such systems have been extensively studied: efficient node repair to handle individual node failures, and efficient code conversion to adapt to changing system requirements.
The problem of node repair is addressed by regenerating codes [1], which minimize the repair bandwidth by allowing each helper node to transmit a fraction of its stored data. Among these, Minimum Storage Regenerating (MSR) codes are of particular interest because they achieve the minimum possible storage overhead and optimal repair bandwidth. Explicit constructions of MSR codes have been proposed in [2]–[17].
Separately, as storage requirements evolve—due to data growth, node addition, or changes in fault-tolerance requirements—it becomes necessary to adapt the storage configuration without re-encoding from scratch. This problem is addressed by convertible codes [18], which enable the transformation from an initial code to a final code with different parameters while accessing only a subset of stored symbols. The performance of such schemes is measured by the access cost, i.e., the total number of symbols read during conversion, and the conversion bandwidth, i.e., the total amount of data downloaded across all nodes. Information-theoretic lower bounds for these metrics have been established for scalar MDS codes in [19] and [20]. The most well-studied setting is the merge regime [18], [19], [21]–[24], where \(m\) initial codewords are combined into a single final codeword of larger dimension, which is the setting we consider throughout this paper.
Although MSR codes achieve optimal repair bandwidth and convertible codes enable efficient transformation between different parameters, their integration remains challenging. Existing convertible-code constructions based on MDS codes do not preserve the repair structure, while MSR codes are designed for static settings and do not support efficient conversion. The main difficulty lies in a structural mismatch: code conversion reorganizes stripe layout and symbol placement, whereas MSR repair relies on a coordinate-wise structure enabling interference alignment. As a result, this structure is not preserved under conversion, making it difficult to achieve both efficient conversion and optimal repair simultaneously.
This motivates the study of convertible MSR codes, which support both efficient repair and efficient conversion. The main contributions are as follows.
First, we extend the scalar MDS conversion framework of [19] to array codes, providing a general foundation for our convertible MSR constructions.
Then, we construct explicit \((m,1)_q\) convertible MSR codes in the irregular setting that achieve optimal access cost, based on this framework and the Hadamard-design MSR construction [13]. The key idea is a subsymbol-level pre-alignment that preserves the periodic structure required for MSR repair under conversion.
Finally, we further consider the same-code setting, where all initial codewords are drawn from the same MSR code. By introducing a row-matching technique based on bijective row remapping, we obtain constructions simultaneously achieving optimal access cost and conversion bandwidth for \(r_F\leq\min\{k_I,r_I\}\) and \(r_F>k_I\). For the remaining regime \(r_I<r_F<k_I\), a new construction combining the conversion procedure with regenerating techniques achieves optimal conversion bandwidth. As a comparison, Table 1 presents parameters of previous results and ours. As shown in the table, existing constructions achieve at most two of the three desirable properties—optimal access cost, optimal conversion bandwidth, and optimal repair bandwidth—simultaneously. In contrast, the constructions proposed in this paper are the first to achieve all three properties at once, across different parameter regimes.
This article substantially extends our preliminary conference paper [25] in several important respects, including more general parameter regimes, a more general construction framework, and strengthened optimality analysis.
| Construction | Setting | Parameters | Opt. access | Opt. bw. | Opt. repair |
|---|---|---|---|---|---|
| General MDS [18] | same-code | \(r_F\leq\min\{k_I,r_I\}\) | \(✔\) | \(\times\) | \(\times\) |
| Hankel-I [18] | same-code | \(r_F\leq\lfloor r_I/m\rfloor\) | \(✔\) | \(\times\) | \(\times\) |
| Hankel-II [18] | same-code | \(r_F\leq r_I-m+1\) | \(✔\) | \(\times\) | \(\times\) |
| Hankel\(_s\) [18] | same-code | for \(m\leq s\leq r_I\), \(r_F\leq (s-m+1)\lfloor r_I/s\rfloor+\max\{(r_I\bmod s)-m+1,0\}\) | \(✔\) | \(\times\) | \(\times\) |
| GRS [23] | same-code | \(r_F\leq\min\{k_I,r_I\}\) | \(✔\) | \(\times\) | \(\times\) |
| Extended GRS [19] | irregular / same-code | — | \(✔\) | \(\times\) | \(\times\) |
| Bandwidth-optimal MDS [20] | same-code | \(r_F\leq\min\{k_I,r_I\}\) | \(✔\) | \(✔\) | \(\times\) |
| Bandwidth-optimal MDS [20] | same-code | \(r_I<r_F\leq k_I\) | \(\times\) | \(✔\) | \(\times\) |
| MDS [24] | irregular / same-code | \(m\leq r_F\) | \(✔\) | \(\times\) | \(\times\) |
| Construction [cons:32array95rI62r95F] | irregular / same-code | \(r_F\leq\min\{k_{I_i},r_{I_i}\}\) for all \(i\in[m]\) / \(r_F\leq\min\{k_{I},r_{I}\}\) | \(✔\) | \(✔\) | \(✔\) |
| Construction 1A (Remark [rmk:32construction2]) | irregular / same-code | \(r_F>\min\{k_{I_i},r_{I_i}\}\) for all \(i\in[m]\) / \(r_F>k_I\) | \(✔\) | \(✔\) | \(✔\) |
| Construction [cons:32array95bw] | same-code | \(r_{I}<r_F<k_{I}\) | \(\times\) | \(✔\) | \(✔\) |
3pt
The remainder of the paper is organized as follows. Section 2 introduces notation and preliminaries. Section 3 presents the system model and formal definitions of convertible MSR codes. Section 4 presents the array MDS conversion framework. Section 5 presents the irregular and same-code constructions. Section 6 concludes the paper.
An \((n,k;\alpha)_q\) array code \(\mathcal{C}\) is a subspace of \(\mathbb{F}_q^{n\alpha}\) with dimension \(k\alpha\). For a given codeword \(\mathbf{c}= (\mathbf{c}_0,\dots,\mathbf{c}_{n-1})\in\mathcal{C}\), denote by \(\mathbf{c}_i=(c_{0,i},\dots,c_{\alpha-1,i})\) for \(i\in[0,n-1]\) the \(i\)-th symbol of \(\mathbf{c}\). Moreover, each node stores one vector symbol of length \(\alpha\), and we call each component \(c_{w,i}\) in this vector a subsymbol for \(i\in[0,n-1]\) and \(w\in[0,\alpha-1]\).
We use generalized Reed-Solomon codes as a base code to design convertible codes. The definition is given below.
Definition 1 (Generalized Reed-Solomon code). Let \(\Lambda=\{\lambda_{0},\cdots,\lambda_{n-1}\}\subseteq \mathbb{F}_q\) be the set of distinct elements. A generalized Reed-Solomon code of length \(n\) and dimension \(k\) with evaluation points \(\Lambda\) is defined as \[\{(\nu_{0}f(\lambda_{0}),\cdots,\nu_{n-1}f(\lambda_{n-1})):f\in\mathbb{F}_q[x],{\rm deg}(f)<k\},\] where \(\boldsymbol{\nu}=(\nu_{0},\cdots,\nu_{n-1})\in(\mathbb{F}_q^{*})^n.\)
In particular, when \(\boldsymbol{\nu}=(1,\ldots,1)\), the resulting code is the classical Reed–Solomon (RS) code. The dual of an RS code is also a generalized Reed–Solomon code. Specifically, for an \([n,k]\) RS code with evaluation points \(\Lambda=\{\lambda_{0},\ldots,\lambda_{n-1}\}\subseteq \mathbb{F}_q\), the coefficients of its dual code are given by \[\label{eq:32coefficient} \nu_i = \prod_{\substack{j\in[0,n-1]\\ j\neq i}}(\lambda_i-\lambda_j)^{-1}, \qquad i\in[0,n-1].\tag{1}\]
Clearly, the coefficients \(\boldsymbol{\nu}\) are uniquely determined by the evaluation points.
We next recall the notion of puncturing.
Definition 2 (Punctured code). Let \(\mathcal{C}\) be an \((n,k;\alpha)_q\) array code and let \(\mathcal{P}\subseteq[0,n-1]\) be an index set with \(|\mathcal{P}|=s\). The punctured code* of \(\mathcal{C}\) on \(\mathcal{P}\) is \[\mathcal{C}|_{\mathcal{P}}:=\{\mathbf{c}|_{\mathcal{P}}:\mathbf{c}\in\mathcal{C}\}\subseteq \mathbb{F}_q^{s\alpha},\] where \(\mathbf{c}|_{\mathcal{P}}:=(\mathbf{c}_i: i\in\mathcal{P})\) is obtained by keeping only the coordinates indexed by \(\mathcal{P}\).*
Thus, for an \([n,k]\) GRS codeword \(\mathbf{c}=(c_0,\cdots,c_{n-1})=(\nu_{0}f(\lambda_{0}),\cdots,\nu_{n-1}f(\lambda_{n-1}))\) with evaluation points \(\Lambda=\{\lambda_{0},\cdots,\lambda_{n-1}\}\), a parity-check matrix can be taken as the \((n-k)\times n\) Vandermonde matrix \(H=\mathrm{Vand}_{n-k}(\lambda_{0},\cdots,\lambda_{n-1})\), i.e., \[(H)_{t,i}=\lambda_i^t,\qquad t\in[0,n-k-1],\;i\in[0,n-1],\] which satisfies \(H\cdot (c_0,\cdots,c_{n-1})^{\top}=0.\)
In the sequel, when referring to puncturing \(\mathbf{c}\), we adopt a convenient normalization that preserves the Vandermonde structure of the parity-check matrix.
Specifically, let \(\mathcal{P}=\{0,\cdots,n'-1\}\) with \(k<n'<n\), and define \[H|_{\mathcal{P}} := \mathrm{Vand}_{r'}(\lambda_0,\cdots,\lambda_{n'-1}), \quad r'=n'-k,\] by restricting the evaluation points to \(\mathcal{P}\).
To ensure consistency with this reduced parity-check matrix, the codeword symbols are rescaled according to the updated GRS coefficients \[\nu'_i := \prod_{\substack{j\in[0,n'-1]\\ j\neq i}} (\lambda_i-\lambda_j)^{-1}, \quad i\in[0,n'-1].\] Then the rescaled vector \(\big(\nu'_0\nu_0^{-1}c_0,\cdots,\nu'_{n'-1}\nu_{n'-1}^{-1}c_{n'-1}\big)\) satisfies the parity-check equations defined by \(H|_{\mathcal{P}}\).
Therefore, without loss of generality, we assume this scaling is applied locally by each node and treat it implicitly, and represent the punctured codeword as \((c_0,\cdots,c_{n'-1})\) with parity-check matrix \(H|_{\mathcal{P}}\).
In distributed storage systems, regenerating codes are designed to efficiently repair failed storage nodes. A data file \(\mathcal{M}\) is encoded and stored across \(n\) storage nodes, and each node stores a vector of length \(\alpha\), i.e. \(\alpha\) subsymbols. When a node fails, a replacement node is generated by downloading \(b\) subsymbols from each of a subset of surviving nodes, referred to as helper nodes. The total amount of subsymbols \(db\) downloaded from \(d\) helper nodes is called repair bandwidth.
In this work, we focus on regenerating codes achieving the minimum storage point, which satisfy the MDS property. Such codes are referred to as minimum storage regenerating (MSR) codes.
Definition 3 (Minimum storage regenerating code [1]). An \((n,k;\alpha)_q\) regenerating code is called a minimum storage regenerating (MSR) code* if it achieves the cut-set bound with equality, i.e., \[\label{eq:32beta}\small \begin{align} \alpha=\frac{\mathcal{M}}{k}, \quad b = \frac{\alpha}{d-k+1}, \end{align}\tag{2}\] where \(d \leq n-1\) is the number of helper nodes and \(b\) denotes the number of subsymbols downloaded from each helper node during repair.*
For the general cut-set bound, readers may refer to [1].
We briefly recall the Hadamard-design MSR construction in [13], which supports arbitrary parameters \(n\), \(k\), and \(d\), and will be used later in our constructions.
1. Hadamard-design MSR construction: Consider an \((n,k;\alpha)\) MSR code over \(\mathbb{F}_q\) with \(q>sn\), and define \(s:=d-k+1,\, \alpha:=s^n.\) Let \((\mathbf{c}_0,\cdots,\mathbf{c}_{n-1})\) be a codeword, where \(\mathbf{c}_i=(c_{0,i},\cdots,c_{\alpha-1,i})^{\top}\) for \(i\in[0,n-1]\).
Select \(sn\) distinct elements \[\label{eq:32distinct32points} \{\lambda_{a,j}:a\in[0,s-1],\,j\in[0,n-1]\}\subseteq\mathbb{F}_q.\tag{3}\]
The Hadamard MSR construction is based on structural properties that enable efficient repair. We describe it in two steps.
Step (i) Establish the layered MDS property: For each \(w\in[0,\alpha-1]\), choose elements \(\{\alpha_{w,j}:j\in[0,n-1]\}\subseteq{\mathbb{F}}_{q}\) such that \(\alpha_{w,j}\neq\alpha_{w,j'}\quad\text{for }j\neq j'.\)
Define an array code by parity-check equations \[\label{eq:32had95pc95row} \sum_{j=0}^{n-1}\alpha_{w,j}^{t}c_{w,j}=0,\qquad t\in[0,n-k-1],\, w\in[0,\alpha-1].\tag{4}\] Clearly, each row is a scalar \([n,k]\) MDS code, and thus the full code is an \((n,k;\alpha)\) MDS array code.
Step (ii) Impose coordinate-wise periodicity: Index each row by the \(s\)-ary expansion \(w=(w_{(0)},\ldots,w_{(n-1)})\in[0,s-1]^n.\)
To endow the above MDS array code with the Hadamard structure, define \[\label{eq:32had95row95points95simple} \alpha_{w,j}:=\lambda_{w_{(j)},j},\qquad j\in[0,n-1].\tag{5}\] By 3 , we have \(\lambda_{w_{(j)},j}\neq \lambda_{w_{(j')},j'}\) for \(j\neq j'\).
2. Optimal repair property: Intuitively, 4 guarantees row-wise MDS reliability, while 5 makes each node coefficient depend only on one row digit. This allows us to group rows that differ only in the failed coordinate, so helper interference aligns into one summed subsymbol per helper, whereas the failed-node subsymbols remain distinguishable and can be solved with optimal repair bandwidth.
(i) Single-node repair: Fix a failed node \(j^*\in[0,n-1]\). Let \(D\subseteq[0,n-1]\backslash\{j^*\}\) with \(|D|=d\) be the helper-node set. For each row index \(w\), define the group \[\mathcal{G}(w,j^*):=\{R_w(j^*,a):a\in[0,s-1]\},\] where \(R_w(j^*,a)\) is obtained by replacing the \(j^*\)-th coordinate of \(w\) with \(a\). Clearly, the collection of all distinct groups \(\mathcal{G}(w,j^*)\) form a partition of \([0,\alpha-1]\). By the coordinate-wise periodicity, we have \[\label{eq:32periodicity} \alpha_{R_w(j^*,a),j}= \begin{cases} \lambda_{w_{(j)},j}, & j\neq j^*,\\ \lambda_{a,j^*}, & j=j^*, \end{cases} \quad a\in[0,s-1].\tag{6}\] For each \(t\in[0,n-k-1]\), summing the \(s\) equations in 4 corresponding to all rows in the group \(\mathcal{G}(w,j^*)\) gives \[\small \sum_{j\neq j^*}\lambda_{w_{(j)},j}^{t}\,\sum_{a=0}^{s-1}c_{R_w(j^*,a),j} +\sum_{a=0}^{s-1}\lambda_{a,j^*}^{t}\,c_{R_w(j^*,a),j^*}=0,\] where 6 ensures that the coefficients for \(j\neq j^*\) are invariant within each group. Hence, the repair procedure is given as follows:
Download: For each \(j\in D\), the \(j\)-th helper node transmits one subsymbol \(\sum_{a=0}^{s-1}c_{R_w(j^*,a),j}\) per row group;
Repair: The failed node \(j^*\) solves \(s\) unknowns \(\{c_{R_w(j^*,a),j^*}:\,a\in[0,s-1]\}\) per group.
Running over all groups recovers the whole symbol in node \(j^*\), which gives \(b=\frac{\alpha}{s}=\frac{\alpha}{d-k+1},\) meeting the cut-set bound in 2 .
(ii) Multiple-node repair: Compared with part (i), the parameter change here comes from applying the space-sharing technique for multi-node repair. Specifically, we extend \(d-k+h\) instances of the single-node repair construction, so the row index is extended and the sub-packetization becomes \(\alpha=(d-k+h)s^n\). In the multiple-node case, the repair is performed in a centralized manner that collects all downloaded data from helper nodes and recovers the failed symbols. We consider the following repair scheme from [14]. Although originally described for the cooperative repair model, it achieves the centralized cut-set bound once the cooperation phase is removed, as observed in [26].
Index each subsymbol by \((w,z)\) with \(w\in[0,s^n-1]\) and \(z\in[0,d-k+h-1]\). Thus, each node \(u\in[0,n-1]\) stores \[\{c_{w,z,u}: w\in[0,s^n-1],\;z\in[0,d-k+h-1]\},\] where \(w=(w_{(0)},\cdots,w_{(n-1)})\in[0,s-1]^n\) is the \(s\)-ary expansion of \(w\). Here \(\oplus\) denotes addition modulo \(s\).
Let the failed set be \(\mathcal{F}=\{j_1,\cdots,j_h\}\) and \(D\subseteq[0,n-1]\backslash\mathcal{F}\) with \(|D|=d\) be the helper-node set. For each \(w\) and \(l\in[h]\), define \[\small \begin{align} \mathcal{G}(w,j_l):=\{(R_w(j_l,&w_{(j_l)}\oplus a),\,a) : a\in[0,s-2]\}\cup\\ &\{(R_w(j_l,w_{(j_l)}\oplus (s-1)),\,s+l-2) \}, \end{align}\] where these groups form a partition of \([0,\alpha-1]\).
For each \(t\in[0,n-k-1]\), summing all the \(s\) parity-check equations corresponding to all rows in group \(\mathcal{G}(w,j_l)\) gives \[\label{eq:32multi95node32equation}\small \begin{align} &\sum_{a=0}^{s-2}\lambda_{w_{(j_l)}\oplus a,j_l}^{t}\,c_{R_w(j_l,w_{(j_l)}\oplus a),a,j_l}\\ +&\lambda_{w_{(j_l)}\oplus (s-1),j_l}^{t}\,c_{R_w(j_l,w_{(j_l)}\oplus (s-1)),s+l-2,j_l}\\ +&\sum_{j\neq j_l}\lambda_{w_{(j)},j}^{t}\,\big(\sum_{a=0}^{s-2}c_{R_w(j_l,w_{(j_l)}\oplus a),\,a,j}\\ +&c_{R_w(j_l,w_{(j_l)}\oplus (s-1)),s+l-2,j}\big)=0. \end{align}\tag{7}\] Then, by 7 , the repair procedure is given as follows:
Download: For \(l\in[h]\) and a group \(\mathcal{G}(w,j_l)\), each helper node \(j\in D\) transmits one group-sum \[\small \sum_{a=0}^{s-2}c_{R_w(j_l,w_{(j_l)}\oplus a),a,j}+c_{R_w(j_l,w_{(j_l)}\oplus s-1),s+l-2,j},\] and the \(d\) helper-sums can determine \(d-k+h\) unknowns in this group.
Repair: The difference from single-node repair is the composition of these unknowns: each group \(\mathcal{G}(w,j_l)\) recovers exactly \(d-k+h\) subsymbols, where
\(d-k+1\) subsymbols corresponding to failed node \(j_l\): \[\begin{align} \{c_{R_w(j_l,w_{(j_l)}\oplus a),a,j_l}: \,&a\in[0,s-2]\}\\&\cup\{c_{R_w(j_l,w_{(j_l)}\oplus s-1),s+l-2,j_l}\}. \end{align}\]
\(h-1\) subsymbols corresponding to failed nodes \(j_{l'}\), \(l'\in[h]\backslash\{ l\}\): \[\begin{align} \{\sum_{a=0}^{s-2}c_{R_w(j_{l},w_{(j_{l})}\oplus a),a,j_{l'}}+&c_{R_w(j_{l},w_{(j_{l})}\oplus s-1),s+{l}-2,j_{l'}}:\\&l'\in[h]\setminus\{l\}\}. \end{align}\]
Running over all \((w,l)\) and combining all the repaired subsymbols recovers all symbols in \(\{j_1,\cdots,j_h\}\).
Each helper sends one symbol per group, i.e., \(hs^n\) subsymbols in total. Hence the per-helper repair bandwidth is \(b=hs^n=\frac{h\alpha}{d-k+h},\) which meets the centralized multi-node cut-set bound in [16].
This section presents the system model and formalizes convertible MSR codes. We focus on two key abstractions of system reconfiguration: the cost of code conversion and the repair efficiency after conversion. Fig. 1 illustrates the system workflow, and Fig. 2 provides a symbol-level view in the merge regime.
Large-scale distributed storage systems encode data across \(n\) storage nodes using an \([n,k]\) erasure code, providing tolerance against up to \(n-k\) simultaneous node failures. Production deployments at Facebook (HDFS-RAID), Google (GFS II), and Microsoft (Windows Azure Storage) rely on such codes to protect petabyte-scale data. In practice, however, storage-node reliability is not static: it varies significantly across device types and over the lifetime of individual devices, following the well-known bathtub curve of infant mortality, useful life, and wearout [27]. This motivates adaptive redundancy, where the system dynamically updates the code parameters from \((n_I,k_I)\) to \((n_F,k_F)\) in response to observed reliability, reducing storage overhead by \(11\%\)–\(44\%\) in production clusters [27].
For the MSR setting considered in this paper, adaptive redundancy must satisfy two requirements simultaneously, as shown in Fig. 1. First, the system should perform efficient code conversion: existing data encoded under the initial MSR codes should be converted into a final codeword while accessing only a small subset of the stored symbols. Second, the resulting final code must still support efficient node repair: after conversion, any failed node in the final stripe should be repaired by contacting \(d\) helper nodes and downloading the minimum amount of data allowed by the MSR repair bound.
Existing convertible-code constructions focus on MDS codes and do not preserve the MSR repair property, while standard MSR codes do not support efficient conversion. This work addresses both requirements simultaneously by constructing convertible MSR codes, which combine efficient MSR-to-MSR conversion with optimal repair of both the initial and final codes.
We consider the merge regime, where \(m\) initial codewords encoding disjoint data blocks are converted into a single final codeword. This corresponds to the storage reconfiguration stage in Fig. 1. Specifically, let \(\mathcal{C}_{I_1},\ldots,\mathcal{C}_{I_m}\) be \(m\) initial MSR array codes over \(\mathbb{F}_q\), where \(\mathcal{C}_{I_i}\) is an \((n_{I_i},k_{I_i};\alpha)_q\) code for each \(i\in[m]\). The parameters of the initial codes may be different, which gives the irregular setting. The conversion produces a final codeword of an \((n_F,k_F;\alpha)_q\) MSR code \(\mathcal{C}_F\), where \(k_F=\sum_{i=1}^{m} k_{I_i}.\)
Fig. 2 illustrates this conversion at the symbol level. The dashed boxes represent initial and final stripes, and each square represents one vector symbol. Since we consider array codes, each vector symbol stores \(\alpha\) subsymbols, as indicated by the callout in the figure. Selected read symbols are accessed from the initial stripes and routed to the reconfiguration engine, which executes the conversion procedure \(\sigma\).
During conversion, symbols are classified into three categories:
Unchanged symbols: symbols that appear identically in both an initial codeword and the final codeword, and are reused directly in the final codeword;
Read symbols: symbols accessed from the initial codewords as inputs to the conversion procedure \(\sigma\);
Written symbols: symbols of the final codeword that are newly computed from the read symbols.
The reconfiguration engine in Fig. 2 summarizes the conversion process. It reads the required symbols from the initial stripes, computes new symbols using the conversion procedure \(\sigma\), and generates the final stripe by combining unchanged symbols and newly computed symbols. The objective is to preserve as many unchanged symbols as possible while minimizing the symbols and subsymbols accessed during conversion. These requirements are captured by the access-cost and conversion-bandwidth metrics defined below.
Definition 4 (Irregular convertible code in the merge regime [19]). Let \(m\) be a positive integer. An \((m,1)_q\) irregular convertible code \(\mathscr{C}\) over \(\mathbb{F}_q\) consists of
\(m\) initial codes \(\mathcal{C}_{I_1},\ldots,\mathcal{C}_{I_m}\) and a final code \(\mathcal{C}_F\), where \(\mathcal{C}_{I_i}\) is an \((n_{I_i},k_{I_i};\alpha)_q\) code for \(i\in[m]\), and \(\mathcal{C}_F\) is an \((n_F,k_F;\alpha)_q\) code satisfying \(\sum_{i=1}^m k_{I_i}=k_F\);
an injective conversion procedure \(\sigma:\prod_{i=1}^m \mathcal{C}_{I_i}\rightarrow \mathcal{C}_F.\)
The efficiency of conversion is quantified by two metrics. The access cost \(\rho=\rho_R+\rho_W\) counts the total number of symbols touched by the conversion, where \(\rho_R\) is the number of read symbols and \(\rho_W\) is the number of newly written final-code symbols. The conversion bandwidth \(\gamma=\gamma_R+\gamma_W\) measures the total amount of data transferred at the subsymbol level, where \(\gamma_R\) and \(\gamma_W\) are the read and write bandwidths, respectively. Since each vector symbol consists of \(\alpha\) subsymbols, conversion bandwidth captures a finer-grained cost than symbol access. These metrics serve as the design targets for the constructions in this paper, guided by the following lower bounds.
Theorem 1 ([19]). For any \((m,1)_q\) MDS irregular convertible code, the access cost satisfies \[\rho \ge r_{F} + \sum_{\substack{i\in[m],\,r_{F}\le\\ \min\{k_{I_i},r_{I_i}\}}} r_{F} + \sum_{\substack{i\in[m],\,r_{F}>\\ \min\{k_{I_i},r_{I_i}\}}} k_{I_i},\] where \(r_{F}=n_{F}-k_{F}\) and \(r_{I_i}=n_{I_i}-k_{I_i}\).
Theorem 2 ([20]). For any \((m,1)_q\) MDS convertible code with \(m\) identical initial \((n_I,k_I;\alpha)_q\) codes and one final \((n_F,mk_I;\alpha)_q\) code, the read conversion bandwidth satisfies \[\gamma_R \ge \begin{cases} m\alpha\min\{k_I,r_F\}, & r_I\ge r_F \text{ or } k_I\le r_F,\\ m\alpha\!\left(r_I+k_I\!\left(1-\tfrac{r_I}{r_F}\right)\right), & \text{otherwise}, \end{cases}\] and \(\gamma_W\ge r_F\alpha\), where \(r_I=n_I-k_I\).
The second requirement in Fig. 1 is that efficient repair must remain available after conversion. In other words, the conversion should not merely produce an MDS final code; it should produce a final code that is still an MSR code. This ensures that once the system transitions to the new code configuration, individual node failures can still be repaired with optimal repair bandwidth. This leads to the following definition.
Definition 5 (Convertible MSR code). An \((m,1)_q\) irregular convertible code \(\mathscr{C}\) is a convertible MSR code* if each initial code \(\mathcal{C}_{I_i}\), \(i\in[m]\), and the final code \(\mathcal{C}_F\) are all MSR codes.*
Motivated by the scalar MDS convertible code in [19], in this section we present a general conversion framework from \(m\) \((n_{I_i},k_{I_i};\alpha)_q\) MDS array codes, \(i\in[m]\), to an \((n_F,k_F;\alpha)_q\) MDS array code.
Throughout this section, we focus on MDS array codes. Specifically, for each \(i\in[m]\) and each subsymbol index \(w\in[0,\alpha-1]\), the coordinate-wise vector \((c^{(i)}_{w,0},\cdots,c^{(i)}_{w,n_{I_i}-1})\) forms an \((n_{I_i},k_{I_i};1)_q\) scalar MDS codeword. Therefore, the conversion can be carried out row-wise for each fixed \(w\), and the final array code is obtained by stacking all rows.
We first describe the initial-code and final-code setup, and then specify the conversion procedures \(\sigma_1\) and \(\sigma_2\) under different parameter regimes.
Define \(n_F = r_F+\sum_{i=1}^{m} k_{I_i}\) and \(k_F=\sum_{i=1}^{m} k_{I_i}\). An \((m,1)_q\) convertible code \(\mathscr{C}\) consists of the following three parts:
Initial codes: For \(i\in[m]\), choose the initial \((n_{I_i},k_{I_i};\alpha)_q\) MDS array code \(\mathcal{C}_{I_i}\). Let \(\mathbf{c}_i=(\mathbf{c}_{i,0},\ldots,\mathbf{c}_{i,n_{I_i}-1})\) be a codeword of \(\mathcal{C}_{I_i}\).
For each \(w\in[0,\alpha-1]\), the row \((c^{(i)}_{w,0},\cdots,c^{(i)}_{w,n_{I_i}-1})\) is a codeword of an \((n_{I_i},k_{I_i};1)_q\) MDS code with an \(r_{I_i}\times n_{I_i}\) parity-check matrix \(H_{i,w}.\)
Final code: The final code consists of the first \(\sum_{i=1}^m k_{I_i}\) symbols copied from the initial codes and \(r_F\) newly generated symbols.
Define the final code as \[\mathcal{C}_F := \{ \sigma(\mathbf{c}_1,\dots,\mathbf{c}_{m}) : \mathbf{c}_i\in\mathcal{C}_{I_i}, i\in[m] \},\] where \(\sigma\) is a conversion procedure defined as follows.
Conversion procedures: For each fixed row \(w\), the conversion follows three steps: (i) identify the unchanged symbols and read symbols, (ii) compute the written symbols, and (iii) deduce the parity-check matrix of the final code.
We consider the following two parameter regimes:
Regime I: \(r_F\le \min\{k_{I_i},r_{I_i}\}\) for all \(i\in[m]\), where we use conversion procedure \(\sigma_1\);
Regime II: \(r_F>\min\{k_{I_i},r_{I_i}\}\) for all \(i\in[m]\), where we use conversion procedure \(\sigma_2\).
We describe the two procedures separately.
\(\sigma_1:\) Step (i): For each \(i\in[m]\), we define: 1) the unchanged symbols as the first \(k_{I_i}\) symbols, i.e., \(\{\mathbf{c}_{i,j}: j\in[0,k_{I_i}-1]\}\); 2) the read symbols as the symbols indexed from \(k_{I_i}\) to \(k_{I_i}+r_F-1\), i.e., \(\{\mathbf{c}_{i,j}: j\in[k_{I_i}, k_{I_i}+r_F-1]\}\); 3) the written symbols as \(\hat{\mathbf{c}}=(\hat{\mathbf{c}}_0, \hat{\mathbf{c}}_1,\cdots,\hat{\mathbf{c}}_{r_F-1})\), where \(\hat{\mathbf{c}}_j=(\hat{c}_{0,j},\cdots,\hat{c}_{\alpha-1,j})\), \(j\in[0,r_F-1]\).
Thus, the final codeword can be represented by \[\label{eq:32final95codeword951} \mathbf{c}_F = (\mathbf{c}_1|_{[0,k_{I_1}-1]}, \dots, \mathbf{c}_m|_{[0,k_{I_{m}}-1]}, \hat{\mathbf{c}}).\tag{8}\]
Step (ii): For each \(i\in[m]\), let \(\mathcal{P}_i=\{0,1,\cdots,k_{I_i}+r_F-1\}\) denote the set consisting of the first \(k_{I_i}\) symbols and an additional \(r_F\) symbols. Since \(\mathcal{C}_{I_i}\) is an MDS code, its punctured code \(\mathcal{C}_{I_i}|_{\mathcal{P}_i}\) is also MDS, and the parity-check matrix of \(\mathcal{C}_{I_i}|_{\mathcal{P}_i}\) can be written as \[\label{eq:32punctured95pc} H_{i,w}|_{\mathcal{P}_i}= [\hat{H}_{i,w}^{(\mathcal{P}_i)} \mid \bar{H}_{i,w}^{(\mathcal{P}_i)}], \quad w\in[0,\alpha-1],\tag{9}\] where \(\hat{H}_{i,w}^{(\mathcal{P}_i)}\) is an \(r_{F}\times k_{I_i}\) matrix corresponding to the first \(k_{I_i}\) symbols, and \(\bar{H}_{i,w}^{(\mathcal{P}_i)}\) is an \(r_{F}\times r_{F}\) invertible matrix corresponding to the remaining \(r_F\) symbols. This gives \[\label{eq:32pc95ic} \begin{align} \hat{H}_{i,w}^{(\mathcal{P}_i)}({c}^{(i)}_{w,0},&\cdots, {c}^{(i)}_{w,k_{I_i}-1})^{\top}=\\ &-\bar{H}_{i,w}^{(\mathcal{P}_i)}({c}^{(i)}_{w,k_{I_i}},\cdots, {c}^{(i)}_{w,k_{I_i}+r_F-1})^{\top}. \end{align}\tag{10}\] Given an \(r_F\times r_F\) invertible matrix \(\hat{H}_w\) to be specified in each construction, the written symbols are computed as \[\label{eqn32conA} \begin{align} (&\hat{{c}}_{w,0},\hat{{c}}_{w,1},\cdots,\hat{{c}}_{w,r_F-1})^\top= \\ &\hat{H}^{-1}_w \sum_{i=1}^{m} \bar{H}_{i,w}^{(\mathcal{P}_i)} \cdot (c^{(i)}_{w,k_{I_i}},\cdots,c^{(i)}_{w,k_{I_i}+r_F-1})^\top. \end{align}\tag{11}\]
Step (iii): It follows from 8 , 10 , and 11 that the final code \(\mathcal{C}_F\) has parity-check matrix \[\label{eq:32parity95sigma951} H_{F,w}:= [\hat{H}_{1,w}^{(\mathcal{P}_1)}| \cdots| \hat{H}_{m,w}^{(\mathcal{P}_m)} | \hat{H}_w], \,w\in[0,\alpha-1].\tag{12}\] The MDS property of \(\mathcal{C}_F\) is determined by whether \(H_{F,w}\) is the parity-check matrix of an \((n_F,k_F;1)_q\) MDS code for each \(w\).
\(\sigma_2:\) Step (i): 1) For each \(i\in[m]\), the unchanged symbols and read symbols both consist of the first \(k_{I_i}\) symbols, i.e., \(\{\mathbf{c}_{i,j}: j\in[0,k_{I_i}-1]\}\); 2) The written symbols are defined as \(\hat{\mathbf{c}}=(\hat{\mathbf{c}}_0,\hat{\mathbf{c}}_1,\cdots, \hat{\mathbf{c}}_{r_F-1})\), where \(\hat{\mathbf{c}}_j=(\hat{c}_{0,j}, \cdots,\hat{c}_{\alpha-1,j})\), \(j\in[0,r_F-1]\).
The final codeword is still given by 8 .
Step (ii): For each \(w\in[0,\alpha-1]\), write the parity-check matrix of \(\mathcal{C}_{I_i}\) as \(H_{i,w}=[\hat{H}_{i,w}\mid\bar{H}_{i,w}]\), where \(\hat{H}_{i,w}\) is an \(r_{I_i}\times k_{I_i}\) matrix and \(\bar{H}_{i,w}\) is an \(r_{I_i}\times r_{I_i}\) invertible matrix. Let \(\hat{H}_{i,w}^E\) be an \(r_F\times k_{I_i}\) matrix obtained from \(\hat{H}_{i,w}\) by appending \(r_F-r_{I_i}\) additional rows.
The written symbols are computed as \[\label{eqn32conA95rF95gt}\small \begin{align} (\hat{{c}}_{w,0},\hat{{c}}_{w,1},&\cdots,\hat{{c}}_{w,r_F-1})^\top =\\ &- \hat{H}_w^{-1} \sum_{i=1}^{m} \hat{H}_{i,w}^E \cdot ({c}^{(i)}_{w,0},\cdots,{c}^{(i)}_{w,k_{I_i}-1})^{\top}, \end{align}\tag{13}\] where \(\hat{H}_w\) is an \(r_F\times r_F\) invertible matrix.
Step (iii): With the written symbols computed as in 13 and the final codeword 8 , the final code \(\mathcal{C}_F\) has parity-check matrix \[H_{F,w}:= [\hat{H}_{1,w}^{E}| \cdots| \hat{H}_{m,w}^{E}| \hat{H}_w], \quad w\in[0,\alpha-1].\] The MDS property of \(\mathcal{C}_F\) is determined by whether \(H_{F,w}\) is the parity-check matrix of an \((n_F,k_F;1)_q\) MDS code for each \(w\), as specified in Lemma 1.
The above framework enables row-wise conversion, where each row is treated as a scalar MDS code and stacked to form the array code.
The next lemma follows directly from Theorem 4 in [19] via row-wise application. Specifically, for each fixed subsymbol index \(w\), the setting is scalar, and thus the corresponding scalar MDS and scalar access-optimal results apply. Hence, if each row code is MDS, then stacking all rows yields the array-code MDS property. Similarly, if each row conversion is scalar access-optimal, then summing over all rows yields array-level access optimality, since access cost is measured in symbols. Therefore, the proofs are omitted for brevity.
Lemma 1. By the above conversion framework, for each \(w\in[0,\alpha-1]\), denote the parity-check matrix of the final code by \[H_{F,w}:= \begin{cases} [\hat{H}_{1,w}^{(\mathcal{P}_1)}| \cdots| \hat{H}_{m,w}^{(\mathcal{P}_m)}| \hat{H}_w], & \text{for}\, \sigma_1,\\ [\hat{H}^E_{1,w}| \cdots| \hat{H}^E_{m,w}| \hat{H}_w], & \text{for} \,\sigma_2. \end{cases}\]
If \(H_{F,w}\) is the parity-check matrix of an \((n_F,k_F;1)_q\) MDS code, then the above array code \(\mathscr{C}\) is an MDS convertible code. Furthermore, \(\mathscr{C}\) achieves optimal access cost.
Remark 1. When \(\alpha=1\), the above conversion framework reduces to the scalar setting and is consistent with [19].
In this section, we consider \((m,1)_q\) convertible MSR array codes. We first address the irregular setting, where the initial codes may have different parameters. Building on this, we further consider the practically motivated same-code setting, where all initial codewords are drawn from the same MSR code.
We begin with the irregular setting, where the \(m\) initial codes \(\mathcal{C}_{I_i}\) for \(i\in[m]\) are Hadamard-based MSR codes, which may have different parameters \((n_{I_i},k_{I_i};\alpha)\). Building on the conversion framework established in Section 4, we construct \((m,1)_q\) convertible MSR codes achieving optimal access cost.
The main challenge arises from a structural mismatch between MSR repair and code conversion. In a Hadamard MSR code, the coefficient at node \(u\) depends on \(w\) only through the \(u\)-th coordinate \(w_{(u)}\), which is the key property enabling interference alignment during repair. However, when multiple Hadamard MSR codes are merged directly via conversion, the resulting final code does not inherit this property: different nodes in the final code end up sharing the same coordinate dependence, violating the coordinate-wise periodicity required for MSR repair.
To address this issue, we design the initial codes with a subsymbol-level structure such that the required periodicity is preserved under conversion. More precisely, we observe that the periodicity required by the final code can be embedded into the initial codes at the design stage, by arranging their subsymbol-level structure according to the parameters of the final code. As we will show, this pre-alignment does not compromise the MSR repair properties of the initial codes, and ensures that the required periodic structure is automatically inherited by the final code after conversion. An example is given below.
Example 1. We use the parameters \(m=2\), \(n_I=4\), \(k_I=2\), \(d_I=3\), \(d_F=5\), \(r_F=2\). Consider two \((4,2;2^4)_q\) Hadamard MSR codes \(\mathcal{C}_{I_1}\) and \(\mathcal{C}_{I_2}\) with \(s_I=d_I-k_I+1=2\). By 4 and 5 , the parity-check equations of \(\mathcal{C}_{I_i}\) are given by \[\sum_{u=0}^{3}(\lambda^{(i)}_{w_{(u)},\,u})^{\,t}\,c^{(i)}_{w,u}=0, \quad t\in[0,1],\;w\in[0,15],\;i\in[2].\]
If the two initial codes are merged directly using the conversion framework, the coordinate-wise dependence required for the Hadamard structure is not preserved. More precisely, by our conversion framework, the parity-check equations of the final code are \[\small \begin{align} &\sum_{u=0}^{1}(\lambda^{(1)}_{w_{(u)},\,u})^{\,t}\,c_{w,u} +\sum_{u=2}^{3}(\lambda^{(2)}_{w_{(u-2)},\,u-2})^{\,t}\,c_{w,u}\\ &+\sum_{u=4}^{5}\hat{\lambda}_{w_{(u)},\,u}^{\,t}\,c_{w,u}=0, \quad t\in[0,1],\;w\in[0,15]. \end{align}\] Recall that in a Hadamard MSR code, the coefficient at node \(u\) depends on \(w\) only through the \(u\)-th coordinate \(w_{(u)}\). However, after merging, the coefficients at nodes \(0\) and \(2\) both depend on \(w_{(0)}\), and similarly nodes \(1\) and \(3\) both depend only on \(w_{(1)}\). Hence different nodes share the same periodic pattern, violating the coordinate-wise periodicity required for MSR repair.
To resolve this, we increase the subpacketization to \(\alpha=2^6=64\) and pre-align the initial codes according to the parameters of the final code. Specifically, \(\mathcal{C}_{I_1}\) retains its row coefficient structure with the extended subpacketization: \[\small \sum_{u=0}^{3}(\lambda^{(1)}_{w_{(u)},\,u})^{\,t}\,c^{(1)}_{w,u}=0, \quad t\in[0,1],\;w\in[0,63],\] while \(\mathcal{C}_{I_2}\) is additionally re-indexed by replacing \(w_{(u)}\) with \(w_{(u+2)}\) in its row coefficients: \[\sum_{u=0}^{3}(\lambda^{(2)}_{w_{(u+2)},\,u})^{\,t}\,c^{(2)}_{w,u}=0, \quad t\in[0,1],\;w\in[0,63].\] As we will show in the proof of Theorem 3, this pre-alignment does not compromise the MSR repair properties of the initial codes.
Then, define \[\begin{align} &\lambda_{w_{(u)},u}:=\lambda^{(1)}_{w_{(u)},\,u},\quad u=0,1,\\ &\lambda_{w_{(u)},u}:=\lambda^{(2)}_{w_{(u)},\,u-2},\quad u=2,3,\\ &\lambda_{w_{(u)},u}:=\hat{\lambda}_{w_{(u)},\,u},\quad u=4,5, \end{align}\] where \(\{\hat{\lambda}_{v,u}: v\in\{0,1\},\, u\in\{4,5\}\}\) are chosen to be distinct from \(\{\lambda^{(1)}_{v,u}: v\in\{0,1\},\, u\in\{0,1\}\}\) and \(\{\lambda^{(2)}_{v,u}: v\in\{0,1\},\, u\in\{0,1\}\}\), ensuring the MDS property of the final code. After applying the conversion framework with \(\hat{H}_w=\mathrm{Vand}_{2}(\hat{\lambda}_{w_{(u)},u}:u\in[4,5])\), the final code has parity-check equations \[\sum_{u=0}^{5}\lambda_{w_{(u)},\,u}^{\,t}\,c_{w,u}=0, \quad t\in[0,1],\;w\in[0,63],\] where each coefficient depends on \(w\) only through its \(u\)-th coordinate in the \(2\)-ary expansion, which is precisely the Hadamard MSR structure in 4 and 5 .
We now introduce the notation used in the construction. For \(i\in[m]\), let \(\mathcal{P}_i:=\{0,1,\cdots,k_{I_i}+r_F-1\}\). For any \(w\in[0,s^L-1]\), recall that \(w_{(u)}\) denotes the \(u\)-th coordinate in the \(s\)-ary expansion of \(w\). Let \(k_{I_i}<d_{I_i}\leq n_{I_i}-1\) and \(k_F<d_F\leq n_F-1\) denote the numbers of helper nodes used for single-node repair in \(\mathcal{C}_{I_i}\) and \(\mathcal{C}_F\), respectively. In both codes, any single-node failure can be repaired with optimal repair bandwidth. According to the lower bound on access cost given in Theorem 1, we consider two parameter regimes: \(r_F \leq \min\{k_{I_i}, r_{I_i}\}\) and \(r_F > \min\{k_{I_i}, r_{I_i}\}\) for all \(i\in[m]\).
In the following constructions, we only specify the initial codes, the conversion procedure, and the matrix \(\hat{H}_w\) for the final code; the remaining components follow directly from the framework in Section 4.
Construction 1. Consider the regime \(r_{F}\le\min\{k_{I_i},r_{I_i}\}\) for all \(i\in[m]\).
Parameters. Define \[\small s:=\mathrm{lcm}(d_{I_1}-k_{I_1}+1,\cdots,d_{I_m}-k_{I_m}+1,d_F-k_F+1)\] and \(\alpha:=s^L,\, L=\max\{\sum_{i=1}^{j} k_{I_i}+r_{j}:j\in[m]\}.\) Assume that \(q> sL\).
Initial codes. Let \(\beta\) be a primitive element of \({\mathbb{F}}_{q}\). Define \[\lambda_{v,u}:=\beta^{su+v},\quad v\in[0,s-1],\,u\in[0,L-1].\]
For any \(i\in[m]\), the initial code \(\mathcal{C}_{I_i}\) is defined by the parity-check equations \[\label{eq:32pc95initial}\small \begin{align} \sum_{u=0}^{n_{I_i}-1}\lambda_{w_{(u+\sum_{j=1}^{i-1}k_{I_j})},\,u+\sum_{j=1}^{i-1}k_{I_j}}^{\,t} \,c^{(i)}_{w,u}=& 0,\\ t \in [0,\,r_{I_i}-1],\,\,& w \in [0,\alpha-1]. \end{align}\qquad{(1)}\]
Conversion. We apply conversion procedure \(\sigma_1\), with \[\label{eq:32cons195h}\small \hat{H}_w=\mathrm{Vand}_{r_F}(\lambda_{w_{(u)},\,u}:\,u\in[\sum_{i=1}^mk_{I_i},\sum_{i=1}^mk_{I_i}+r_F-1]).\qquad{(2)}\]
Theorem 3. Construction 1 yields an \((m,1)_q\) convertible MSR code with optimal access cost. For each \(i\in[m]\), the initial code \(\mathcal{C}_{I_i}\) is an \((n_{I_i},k_{I_i};\alpha)_q\) MSR code, and the final code \(\mathcal{C}_F\) is an \((n_F,k_F;\alpha)_q\) MSR code, where \(k_F=\sum_{i=1}^m k_{I_i}\).
We prove that Construction 1 yields a convertible MSR code with optimal access cost by verifying the MSR property of both the initial codes and the final code.
Initial codes are MSR. For each \(i\in[m]\), we show that the parity-check equations ?? define a Hadamard-based MSR code with parameters \((n_{I_i},k_{I_i};\alpha)_q\) by verifying the two structural conditions in Section 2.2.
For the layered MDS property 4 , the coefficients \[\lambda_{w_{(u+\sum_{j=1}^{i-1}k_{I_j})},\,u+\sum_{j=1}^{i-1}k_{I_j}}, \quad u\in[0,n_{I_i}-1]\] are distinct for each \(w\in[0,\alpha-1]\), so each row forms an \((n_{I_i},k_{I_i};1)_q\) MDS code. For the coordinate-wise periodicity 5 , the row coefficient at position \(u\) depends only on the \((u+\sum_{j=1}^{i-1}k_{I_j})\)-th coordinate of \(w\) in the \(s\)-ary expansion, which is precisely the structure required for interference alignment in MSR repair.
Since \(s_{I_i}:=d_{I_i}-k_{I_i}+1\) divides \(s\) by definition, we partition \([0,s-1]\) into \(s/s_{I_i}\) disjoint intervals \([as_{I_i},\,(a+1)s_{I_i}-1]\) for \(a\in[0,s/s_{I_i}-1]\). For each row index \(w\), failed node \(j^*\in[0,n_{I_i}-1]\), and interval \(a\), define the sub-group \[\mathcal{G}^{(i)}_a(w,j^*):=\bigl\{R_w\bigl(j^*+{\textstyle \sum_{l=1}^{i-1}}k_{I_l},\,as_{I_i}+b\bigr):b\in[0,s_{I_i}-1]\bigr\}.\] The sub-groups \(\{\mathcal{G}^{(i)}_a(w,j^*):a\in[0,s/s_{I_i}-1],\, w\in[0,\alpha-1]\}\) form a partition of \([0,\alpha-1]\). Within each sub-group, the coordinate-wise periodicity ensures that the coefficients at all helper nodes are invariant, and the repair procedure follows the same argument as in Section 2.2 (i) with \(s_{I_i}\) in place of \(s\) and \(d_{I_i}\) in place of \(d\). Running over all sub-groups gives repair bandwidth \(b=\frac{\alpha}{s_{I_i}}=\frac{\alpha}{d_{I_i}-k_{I_i}+1},\) meeting the cut-set bound in 2 . Hence each \(\mathcal{C}_{I_i}\) is an \((n_{I_i},k_{I_i};\alpha)_q\) MSR code with optimal repair bandwidth.
Final code is MSR. By 12 and ?? , for each \(w\in[0,\alpha-1]\), the parity-check matrix \(H_{F,w}\) is a Vandermonde matrix whose evaluation points are distinct by construction. Hence \(H_{F,w}\) is the parity-check matrix of an \((n_F,k_F;1)_q\) MDS code, and stacking over all rows yields an \((n_F,k_F;\alpha)_q\) MDS array code, establishing the layered MDS property 4 for \(\mathcal{C}_F\).
It remains to show that \(\mathcal{C}_F\) satisfies the coordinate-wise periodicity required for MSR repair. By our conversion framework, the first \(k_{I_i}\) nodes of \(\mathcal{C}_{I_i}\) are unchanged. Therefore, for \(w\in[0,\alpha-1]\), we can define the final codeword as \[\small \begin{align} &c_{w,\,j+\sum_{l=1}^{i-1}k_{I_l}}:=c^{(i)}_{w,j}, \quad i\in[m],\,j\in[0,k_{I_i}-1],\\ &c_{w,\,j+\sum_{i=1}^mk_{I_i}}:=\hat{c}_{w,j}, \quad j\in[0,r_F-1]. \end{align}\] By the pre-alignment of the initial codes and the choice of \(\hat{H}_w\) in ?? , the row coefficients of \(\mathcal{C}_F\) satisfy \(\alpha_{w,u} := \lambda_{w_{(u)},\,u}, \quad u\in[0,n_F-1].\) Then the parity-check equations of \(\mathcal{C}_F\) take the form \[\small \sum_{u=0}^{n_F-1}\alpha_{w,u}^{\,t}\,c_{w,u}=0, \quad t\in[0,r_F-1],\;w\in[0,\alpha-1].\] This is exactly the Hadamard MSR structure in 5 , where each coefficient \(\alpha_{w,u}=\lambda_{w_{(u)},u}\) depends on \(w\) only through its \(u\)-th coordinate in the \(s\)-ary expansion. By the same argument as for the initial codes above, with \(s_F:=d_F-k_F+1\) in place of \(s_{I_i}\), \(d_F\) in place of \(d_{I_i}\), \(\mathcal{C}_F\) is an \((n_F,k_F;\alpha)_q\) MSR code with \(d_F\) helper nodes.
Therefore, Construction 1 yields an \((m,1)_q\) convertible MSR code, and optimal access cost follows from Lemma 1.
Remark 2 (Construction 1A). For the regime \(r_F>\min\{k_{I_i},r_{I_i}\},\, i\in[m],\) the construction is identical to Construction 1, except for the sub-packetization level and the conversion procedure. We omit the full statement for brevity.
Define \[\label{eq:32sub-packetization95cons2}\small \alpha=s^L, \qquad L=\sum_{i=1}^mk_{I_i}+r_F,\qquad{(3)}\] and assume \(q>sL\). The initial codes are still given by ?? , with \(\alpha\) defined by ?? .
The final code is generated using conversion procedure \(\sigma_2\), where \[\label{eq:32cons295h}\small \hat{H}_w = \mathrm{Vand}_{r_F} (\lambda_{w_{(u)},u}: u\in[\sum_{i=1}^mk_{I_i}, \sum_{i=1}^mk_{I_i}+r_F-1]).\qquad{(4)}\]
By the same argument as in Theorem 3, this yields an \((m,1)_q\) convertible MSR code with optimal access cost.
In this subsection, we construct \((m,1)_q\) convertible MSR array codes for the setting where the \(m\) initial codewords are drawn from a common \((n_I,k_I;\alpha)_q\) MSR code \(\mathcal{C}_I\). This setting is motivated by practical storage systems, which typically operate with a single uniformly deployed erasure code. When storage requirements change—due to data growth, node addition, or fault-tolerance adjustments—the system must convert multiple codewords of the same code into a new code. Concretely, the conversion procedure transforms \(m\) codewords of \(\mathcal{C}_I\) into a codeword of an \((n_F,k_F;\alpha)_q\) MSR code \(\mathcal{C}_F\).
In the irregular setting, since the initial codes can be designed independently, the required periodic structure can be embedded at the design stage. However, when all initial codewords are drawn from the same code, the initial codes share a common structure that must be uniformly applied to all codewords. In this case, we introduce a row-matching technique that achieves the required alignment through a bijective row remapping in the conversion procedure itself, rather than at the design stage.
The following example shows that the irregular construction in Section 5 cannot produce two initial codewords from the same code, motivating the need for a different approach.
Example 2. Consider \(m=2\) with parameters \(n_I=4\), \(k_I=2\), \(d_I=3\), \(d_F=5\), \(r_F=2\), so that \(s=\mathrm{lcm}(d_I-k_I+1, d_F-k_F+1)=2\) and \(\alpha=2^6=64\). Let \(\beta\) be a primitive element of \(\mathbb{F}_q\). The evaluation points are \(\lambda_{v,u}:=\beta^{2u+v}\) for \(v\in\{0,1\}\) and \(u\in[0,5]\). By Construction 1, the two initial codes \(\mathcal{C}_{I_1}\) and \(\mathcal{C}_{I_2}\) have row coefficients \[\label{eq:32c951} \lambda_{w_{(u)},\,u}=\beta^{2u+w_{(u)}}, \quad u\in[0,3],\qquad{(5)}\] and \(\lambda_{w_{(u+2)},\,u+2}=\beta^{2(u+2)+w_{(u+2)}}, \quad u\in[0,3],\) respectively. Table ¿tbl:tab:32ex95irregular? shows the row coefficients for the first few rows.
1.5pt
We next explain why \(\mathcal{C}_{I_1}\) and \(\mathcal{C}_{I_2}\) cannot be chosen from the same MSR code under Construction 1. If they were generated from the same MSR code, then each row of coefficients in \(\mathcal{C}_{I_2}\) would have to be a nonzero scalar multiple of the corresponding row in \(\mathcal{C}_{I_1}\), i.e., for each \(w\in[0,63]\), there would exist \(\delta_w\in\mathbb{F}_q^*\) such that \[\lambda_{w_{(u+2)},\,u+2}=\delta_w\lambda_{w_{(u)},\,u}, \quad \text{for all } u\in[0,3].\]
However, this already fails for \(w=1\). From node \(u=0\) in row \(w=1\) (where \(w_{(0)}=1\) and \(w_{(2)}=0\)): \[\delta_1=\frac{\lambda_{0,\,2}}{\lambda_{1,\,0}}= \frac{\beta^{4}}{\beta^{1}}=\beta^{3}.\] From node \(u=1\) in the same row (where \(w_{(1)}=0\) and \(w_{(3)}=0\)): \[\delta_1=\frac{\lambda_{0,\,3}}{\lambda_{0,\,1}}= \frac{\beta^{6}}{\beta^{2}}=\beta^{4},\] which contradicts \(\delta_1=\beta^3\). Hence \(\mathcal{C}_{I_1}\) and \(\mathcal{C}_{I_2}\) cannot be the same MSR code under Construction 1.
To resolve this issue, we introduce the row-matching technique, which applies a bijective row remapping \(\pi_i\) to each initial codeword before conversion. The key idea is to pair rows from the same MSR code across the initial codewords so that, after conversion, the resulting final code recovers the periodic structure required for MSR repair. The following example illustrates this approach.
Example 3. We use the same parameters as in Example 2. Both initial codewords are drawn from the same \((4,2;2^6)_q\) Hadamard MSR code \(\mathcal{C}_I\). We take \(\mathcal{C}_{I_1}\) to be the same as in Example 2, with row coefficients given by ?? . The second codeword is drawn from \(\mathcal{C}'_{I_2}\), with row coefficients \[\lambda'_{w_{(u)},\,u}=\beta^4\cdot\lambda_{w_{(u)},\,u} =\beta^{2u+w_{(u)}+4},\quad u\in[0,3].\]
Since scaling all evaluation points by \(\beta^4\) does not change the solution set of the parity-check equations, \(\mathcal{C}_{I_1}\) and \(\mathcal{C}'_{I_2}\) represent the same MSR code \(\mathcal{C}_I\). Table ¿tbl:tab:32ex95same95code? shows the row coefficients of the two initial codewords.
1.5pt
To preserve the coordinate-wise periodic structure in the final code, the rows of the two initial codewords are paired as follows. The rows of \(\mathcal{C}_{I_1}\) are kept unchanged, while the rows of \(\mathcal{C}'_{I_2}\) are cyclically shifted by \(k_I=2\) positions in their \(2\)-ary expansion before merging. Specifically, for a given row index \(w\) of the final code, the unchanged symbols of \(\mathcal{C}_{I_1}\) are taken from row \(w\), while those of \(\mathcal{C}'_{I_2}\) are taken from the row whose \(2\)-ary coordinates are shifted by \(2\) positions, i.e., from row \(w'=(w_{(2)},w_{(3)},w_{(4)},w_{(5)},w_{(0)},w_{(1)})\).
As a result, the row coefficient at node \(u\in[0,3]\) of \(\mathcal{C}'_{I_2}\), which originally depends on \(w_{(u)}\), now depends on \(w_{(u+2)}\). More precisely, the coefficient at node \(u\) under the shifted row \(w'\) satisfies \[\small \lambda'_{w'_{(u)},\,u}=\beta^{2u+w'_{(u)}+4} =\beta^{2u+w_{(u+2)}+4},\quad u\in[0,3],\] so that the dependence on \(w\) shifts from coordinate \(u\) to coordinate \(u+2\) for all \(u\in[0,3]\). Table ¿tbl:tab:32ex95matching? shows the row coefficients of the two initial codewords after applying the cyclic shift.
1.1pt
Observe that in the row-permuted \(\mathcal{C}'_{I_2}\), the coefficient at unchanged node \(0\) now depends on \(w_{(2)}\) rather than \(w_{(0)}\), and the coefficient at unchanged node \(1\) depends on \(w_{(3)}\) rather than \(w_{(1)}\). After applying the conversion framework, the final code has row coefficients as shown in Table 2.
| \(w\) | node \(0\) | node \(1\) | node \(2\) | node \(3\) | node \(4\) | node \(5\) |
|---|---|---|---|---|---|---|
| \(0\) | \(\beta^{0}\) | \(\beta^{2}\) | \(\beta^{4}\) | \(\beta^{6}\) | \(\beta^{8}\) | \(\beta^{10}\) |
| \(1\) | \(\beta^{1}\) | \(\beta^{2}\) | \(\beta^{4}\) | \(\beta^{6}\) | \(\beta^{8}\) | \(\beta^{10}\) |
| \(2\) | \(\beta^{0}\) | \(\beta^{3}\) | \(\beta^{4}\) | \(\beta^{6}\) | \(\beta^{8}\) | \(\beta^{10}\) |
| \(3\) | \(\beta^{1}\) | \(\beta^{3}\) | \(\beta^{4}\) | \(\beta^{6}\) | \(\beta^{8}\) | \(\beta^{10}\) |
| \(4\) | \(\beta^{0}\) | \(\beta^{2}\) | \(\beta^{5}\) | \(\beta^{6}\) | \(\beta^{8}\) | \(\beta^{10}\) |
| \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) |
| \(8\) | \(\beta^{0}\) | \(\beta^{2}\) | \(\beta^{4}\) | \(\beta^{7}\) | \(\beta^{8}\) | \(\beta^{10}\) |
| \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) |
| \(16\) | \(\beta^{0}\) | \(\beta^{2}\) | \(\beta^{4}\) | \(\beta^{6}\) | \(\beta^{9}\) | \(\beta^{10}\) |
| \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) |
| \(32\) | \(\beta^{0}\) | \(\beta^{2}\) | \(\beta^{4}\) | \(\beta^{6}\) | \(\beta^{8}\) | \(\beta^{11}\) |
| \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) | \(\vdots\) |
3pt
As shown in Table 2, the row coefficient at each node \(u\in[0,5]\) of the final code is \(\alpha_{w,u}:=\lambda_{w_{(u)},u}=\beta^{2u+w_{(u)}},\) which depends on \(w\) only through its \(u\)-th coordinate in the \(2\)-ary expansion. This is precisely the same subsymbol-level alignment as achieved by the pre-alignment in Construction 1: the cyclic shift of \(\mathcal{C}'_{I_2}\) by \(k_I=2\) positions produces exactly the coordinate \(w_{(u+2)}\) at nodes \(u\in[0,3]\), matching the structure of ?? . Hence, the final code is an \((n_F=6,k_F=4;2^6)_q\) MSR code by the same argument as Theorem 3.
The examples above illustrate the key ideas behind the row-matching technique. We now formalize this approach.
Let \(\mathcal{C}_{I}\) be the initial code, which is an \((n_I,k_I;s^L)_q\) Hadamard-based MSR code whose row coefficients are given by \(\alpha_{w,u}:=\lambda_{w_{(u)},u},\quad u\in[0,n_I-1],\,w\in[0,s^L-1].\)
Step 1: Scale the evaluation points. For each \(i\in[m]\), define a code \(\mathcal{C}_{I_i}\) with row coefficients \(\delta_i\alpha_{w,u}=\delta_i\lambda_{w_{(u)},u},\, u\in[0,n_I-1],\,w\in[0,s^L-1],\) where \(\delta_i\in\mathbb{F}_q^*\) is a nonzero scalar such that the scaled sets \[\label{eq:32scaled95Set} \Lambda^{(i)}_{k_I}:=\{\delta_i\lambda_{v,u}:v\in[0,s-1],\, u\in[0,k_I-1]\}\tag{14}\] are pairwise disjoint. Then, the parity-check equations of \(\mathcal{C}_{I_i}\) are given by \[\small \begin{align} \sum_{u=0}^{n_I-1}(\delta_i\lambda_{w_{(u)},u})^t c^{(i)}_{w,u}=\delta_i^t\sum_{u=0}^{n_I-1}\lambda_{w_{(u)},u}^t c^{(i)}_{w,u}=0,\\ \quad t\in[0,r_I-1],\,w\in[0,s^L-1], \end{align}\] which differ from those of \(\mathcal{C}_I\) only by the common scaling factor \(\delta_i^t\). Since multiplying all evaluation points by a common nonzero scalar does not change the solution set of the parity-check equations, all \(\mathcal{C}_{I_i}\) represent the same MSR code \(\mathcal{C}_I\). Furthermore, the disjointness condition on the first \(k_I\) evaluation points ensures that the unchanged symbols from different initial codes do not collide, which is required for the MDS property of the final code.
Step 2: Define the row-matching maps. For each \(i\in[m]\), let \(\pi_i:[0,\alpha-1]\to[0,\alpha-1]\) be a bijection. We set \(\pi_1(w)=w\), leaving the first codeword unchanged, and for \(i\geq 2\) define \(\pi_i\) as a cyclic left-shift of the \(s\)-ary expansion of \(w\) by \((i-1)k_I\) positions: \[\label{eq:32row95matching32mapping} \begin{align} \pi_i(w_{(0)},\cdots,&w_{(L-1)}):=\\ (w_{((i-1)k_I)},\cdots,&w_{(L-1)},w_{(0)},\cdots,w_{((i-1)k_I-1)}). \end{align}\tag{15}\] Since each \(\pi_i\) is induced by a coordinate permutation of the \(s\)-ary expansion of \(w\), it is a bijection on \([0,\alpha-1]\). By 15 , the \(u\)-th coordinate of \(\pi_i(w)\) satisfies \(\pi_i(w)_{(u)}=w_{(u+(i-1)k_I)}\), so the parity-check equations of the \(i\)-th codeword at row \(\pi_i(w)\) take the form \[\small \sum_{u=0}^{n_I-1}\lambda_{w_{(u+(i-1)k_I)},\,u}^t\, c^{(i)}_{\pi_i(w),u}=0,\] which is precisely ?? in Construction 1. Hence the row-matching converts the same-code conversion into an instance of Construction 1, and the MSR repair properties of both the initial codes and the final code follow directly from Theorem 3.
Step 3: Apply the conversion framework. For each \(w\in[0,\alpha-1]\), the \(m\) rows \[\small \big(c^{(i)}_{\pi_i(w),0},\cdots,c^{(i)}_{\pi_i(w),n_I-1}\big), \quad i\in[m],\] are grouped together to form one scalar conversion instance, and the remaining conversion steps follow exactly those in Section 4.
The row-matching technique applies to any Hadamard-based MSR code \(\mathcal{C}_I\) with sufficiently large \(L\) and field size \(q\), yielding convertible MSR codes in which all initial codewords are drawn from the same code. We now instantiate this procedure using Construction 1 and Construction 1A. As we will show, the same-code constraint does not incur any loss: the resulting codes achieve optimal access cost and optimal conversion bandwidth in the corresponding parameter regimes.
Since all initial codewords are drawn from \(\mathcal{C}_I\), the parameters satisfy \(n_{I_i}=n_I\), \(k_{I_i}=k_I\), and \(r_{I_i}=r_I\) for all \(i\in[m]\), and the sub-packetization parameter simplifies to \(s=\mathrm{lcm}(d_I-k_I+1,\,d_F-k_F+1)\). We next specialize the above three-step procedure to the same-code setting.
Step 1 (Scaling). We take \(\mathcal{C}_I=\mathcal{C}_{I_1}\), thus row coefficients are given by \[\label{eq:32c95195coefficient} \alpha_{w,u}:=\lambda_{w_{(u)},u}=\beta^{su+w_{(u)}},\quad u\in[0,n_I-1].\tag{16}\]
For each \(i\in[m]\), set \(\delta_i:=\beta^{(i-1)sk_I}\). The row coefficients of \(\mathcal{C}_{I_i}\) are then \[\delta_i\lambda_{w_{(u)},u}=\beta^{s((i-1)k_I+u)+w_{(u)}}, \quad u\in[0,n_I-1],\] and all \(\mathcal{C}_{I_i}\) represent the same MSR code \(\mathcal{C}_I\). By 14 and 16 , we can deduce that the scaled sets \[\small \Lambda_{k_I}^{(i)}=\bigl\{\delta_i\beta^{su+v}:v\in[0,s-1],\, u\in[0,k_I-1]\bigr\}\] are pairwise disjoint.
Step 2 (Row-matching). For each \(i\in[m]\), apply the bijection \(\pi_i\) defined in 15 to the rows of \(\mathcal{C}_{I_i}\).
Step 3 (Conversion). For each \(w\in[0,\alpha-1]\), row \(\pi_i(w)\) of \(\mathcal{C}_{I_i}\) serves as the \(i\)-th input to the conversion procedure in Section 4, with \(\hat{H}_w\) given by ?? for Construction 1 and by ?? for Construction 1A. The parity-check equations of the resulting final code \(\mathcal{C}_F\) are \[\label{eq:32step395final}\small \begin{align} \sum_{i=1}^m\sum_{u=0}^{k_I-1}\!&\left(\beta^{s((i-1)k_I+u) +\pi_i(w)_{(u)}}\right)^{\!t}\!c_{w,(i-1)k_I+u} +\\&\sum_{u=0}^{r_F-1}\!\left(\beta^{s(mk_I+u)+w_{(mk_I+u)}} \right)^{\!t}\!c_{w,mk_I+u}=0, \end{align}\tag{17}\] for \(t\in[0,r_F-1]\) and \(w\in[0,\alpha-1]\). By 15 , the row-matching bijection satisfies \[\pi_i(w)_{(u)}=w_{((i-1)k_I+u)},\quad i\in[m],\,u\in[0,n_I-1].\] Substituting into 17 yields \[\small \sum_{u=0}^{n_F-1}\left(\beta^{su+w_{(u)}}\right)^t c_{w,u}=0, \quad t\in[0,r_F-1],\;w\in[0,\alpha-1],\] which is precisely the Hadamard MSR structure in 5 . Hence \(\mathcal{C}_F\) is an MSR code.
Moreover, since all initial codes share the same parameters, the conversion bandwidth lower bound in Theorem 2 applies. Construction 1 achieves this bound for \(r_F\leq\min\{k_I,r_I\}\), and Construction 1A achieves it for \(r_F>k_I\). We summarize as follows.
Theorem 4. Applying the row-matching technique to Construction 1 in the regime \(r_F\leq \min\{k_I,r_I\}\) and to Construction 1A in the regime \(r_F>k_I\) yields \((m,1)_q\) convertible MSR codes with optimal access cost and optimal conversion bandwidth.
The MSR property of \(\mathcal{C}_F\) follows from the derivation in Step 3. For Construction 1 in the regime \(r_F\leq\min\{k_I,r_I\}\), the access cost equals \((m+1)r_F\), meeting the lower bound in Theorem 1, and the conversion bandwidth equals \((m+1)r_F\alpha\), meeting the lower bound in Theorem 2. The same holds for Construction 1A in the regime \(r_F>k_I\), where the access cost equals \(r_F+mk_I\) and the conversion bandwidth equals \(r_F\alpha+mk_I\alpha\).
Remark 3. While \(\sigma_1\) and \(\sigma_2\) achieve access optimality in the regimes \(r_F\leq\min\{k_I,r_I\}\) and \(r_F>\min\{k_I,r_I\}\), respectively, they do not necessarily achieve bandwidth optimality in all regimes.
In particular, in the regime \(r_I<r_F<k_I\), the access-optimal construction uses \(\sigma_2\), which has conversion bandwidth \(r_F\alpha+mk_I\alpha\). This exceeds the lower bound \[\label{eq:32acc43ban} \gamma\geq r_F\alpha+m\alpha(r_I+k_I(1-\frac{r_I}{r_F})).\qquad{(6)}\] This gap arises because \(\sigma_2\) computes the \(r_F\) written symbols by downloading all \(k_I\) symbols from each initial codeword.
To achieve the bound ?? , we instead use \(\sigma_1\) augmented with the multi-node repair scheme of Section 2.2 (ii), as detailed in Stages 1 and 2 of Construction 2 below. This reduces the conversion bandwidth at the cost of reading additional symbols beyond the \(mk_I\) nodes. In fact, achieving the bandwidth lower bound ?? in this regime inherently requires contacting more than \(mk_I\) nodes, which exceeds the access lower bound. Hence access-optimality and bandwidth-optimality are fundamentally incompatible in this regime, and we focus on bandwidth-optimal constructions. In particular, we set \(d_F=k_F+r_I\).
Since this construction uses the multi-node repair scheme of Section 2.2 (ii), a space-sharing extension of the subpacketization is required. We index each row by a pair \((w,z)\) with \(w\in[0,s^L-1]\) and \(z\in[0,r_F-1]\), so that \(\alpha=r_Fs^L\). The index \(w\) carries the periodic structure required for MSR repair and row-matching, while \(z\) indexes the space-sharing instances. The row-matching maps \(\pi_i\) act only on \(w\), leaving \(z\) unchanged.
Construction 2. Consider the regime \(r_I<r_F<k_I\). Let \(\mathcal{C}_I\) be an \((n_I,k_I;\alpha)_q\) initial code. Define \(k_I<d_I< n_I\) and \(d_F=k_F+r_I\) as the number of helper nodes of \(\mathcal{C}_I\) and \(\mathcal{C}_F\), respectively.
Parameters. Define \[\small s:=\mathrm{lcm}(d_I-k_I+1,\,d_F-k_F+1)=\mathrm{lcm}(d_I-k_I+1,\,r_I+1)\] and \(L:=mk_I+r_F=n_F,\, \alpha:=r_Fs^{L}.\) Assume that \(q>Ls\).
Initial code. Let \(\beta\) be a primitive element of \(\mathbb{F}_q\). Define \[\lambda_{v,u}:=\beta^{su+v},\quad v\in[0,s-1],\,u\in[0,n_I-1].\]
Node \(u\) of the \(i\)-th codeword of \(\mathcal{C}_I\) stores \[\small \begin{align} \mathbf{c}_{i,u}=\bigl(c^{(i)}_{w,z,u}:\,w\in[0,s^L-1],\, z\in[0,&r_F-1]\bigr)^\top,\quad\\ &u\in[0,n_I-1]. \end{align}\] with the same parity-check equations \[\label{eq:32pc95initial95bw} \begin{align} \sum_{u=0}^{n_I-1}\left(\lambda_{w_{(u)},\,u}\right)^t &c^{(i)}_{w,z,u}=0,\quad \\t\in[0,r_I-1],\,&w\in[0,s^L-1],\,z\in[0,r_F-1]. \end{align}\qquad{(7)}\]
Conversion.
Apply the row-matching technique in Section 5.2.2 to \(\mathcal{C}_I\), where \(\pi_i\) acts on the index \(w\) only. For each fixed \((w,z)\), the unchanged symbols from row \((\pi_i(w),z)\) of the \(i\)-th codeword serve as input to the conversion.
For any \(z\in[0,r_F-1]\), the parity-check matrix \(\hat{H}_{w,z}\) corresponding written symbols is given by \[\label{eq:32cons395h} \begin{align} \hat{H}_{w,z}=\mathrm{Vand}_{r_F}\!\left(\lambda_{w_{(u)},\,u}: u\in[mk_I,\,mk_I+r_F-1]\right), \\ w\in[0,s^L-1]. \end{align}\qquad{(8)}\]
The written symbols \[\small \begin{align} \hat{\mathbf{c}}_u=\bigl(\hat{c}_{w,z,u}:w\in[0,s^L-1],\, z\in[0,\,r_F&-1]\bigr)^\top,\quad\\& u\in[0,r_F-1], \end{align}\] are computed in two stages:
The first \(r_I\) written symbols \(\hat{\mathbf{c}}_0,\cdots,\hat{\mathbf{c}}_{r_I-1}\) are generated via \(\sigma_1\). After this stage, the \(mk_I\) unchanged symbols together with \(\hat{\mathbf{c}}_0,\cdots,\hat{\mathbf{c}}_{r_I-1}\) form \(k_F+r_I=d_F\) known nodes of the final code \(\mathcal{C}_F\), which serve as helper nodes for Stage 2.
The remaining \(r_F-r_I\) written symbols \(\hat{\mathbf{c}}_{r_I},\cdots,\hat{\mathbf{c}}_{r_F-1}\) are treated as \(r_F-r_I\) simultaneously failed nodes of the final code. As we will show in Theorem 5, the final code \(\mathcal{C}_F\) has the Hadamard MSR structure in 5 with parameter \(s_F=r_I+1\). The multi-node repair scheme of Section 2.2 (ii) is therefore applicable with \(h=r_F-r_I\) failed nodes and \(d_F=k_F+r_I\) helper nodes, yielding the \(r_F-r_I\) unknown written symbols.
Theorem 5. Construction 2 yields an \((m,1)_q\) convertible MSR code with optimal conversion bandwidth. The initial code \(\mathcal{C}_I\) is an \((n_I,k_I;\alpha)_q\) MSR code, and the final code \(\mathcal{C}_F\) is an \((n_F,k_F=mk_I;\alpha)_q\) MSR code.
We verify that Construction 2 yields a convertible MSR code with optimal conversion bandwidth by establishing the MSR property of both the initial code and the final code, and then proving bandwidth optimality.
Initial code is MSR. Fix any \(z\in[0,r_F-1]\) and treat \(\{c^{(i)}_{w,z,u}:w\in[0,s^L-1]\}\) as the subsymbols stored in node \(u\). The parity-check equations ?? have exactly the Hadamard structure in 4 and 5 , with subpacketization \(s^L\) and parameter \(s_I:=d_I-k_I+1\) dividing \(s\) by definition. For each fixed \(z\), the repair argument is analogous to that in Theorem 3: for each failed node \(j^*\in[0,n_I-1]\) and each interval \(a\in[0,s/s_I-1]\), define the sub-group \[\small \mathcal{G}_a(w,j^*):=\bigl\{R_w(j^*,\,as_I+b):b\in[0,s_I-1]\bigr\},\] and apply the repair procedure of Section 2.2 (i) within each sub-group, giving per-helper download \(s^L/s_I\) subsymbols. Running over all \(r_F\) instances indexed by \(z\in[0,r_F-1]\), the total repair bandwidth of each helper is \[b=r_F\cdot\frac{s^L}{s_I}=\frac{\alpha}{s_I}= \frac{\alpha}{d_I-k_I+1},\] meeting the cut-set bound in 2 . Hence \(\mathcal{C}_I\) is an \((n_I,k_I;\alpha)_q\) MSR code.
Final code is MSR. For \(w\in[0,s^L-1]\) and \(z\in[0,r_F-1]\), we index the symbols of the final codeword as \[\begin{align} &c_{w,z,\,j+\sum_{l=1}^{i-1}k_I}:=c^{(i)}_{\pi_i(w),z,j}, \quad i\in[m],\,j\in[0,k_I-1],\\ &c_{w,z,\,j+mk_I}:=\hat{c}_{w,z,j},\quad j\in[0,r_F-1], \end{align}\] where the first \(mk_I\) positions correspond to the unchanged symbols from the \(m\) initial codewords after row-matching, and the last \(r_F\) positions correspond to the written symbols.
The written symbols are computed in two stages.
In the first stage, \(\sigma_1\) is applied to generate the first \(r_I\) written symbols \(\hat{\mathbf{c}}_0,\cdots,\hat{\mathbf{c}}_{r_I-1}\) from the reading \(r_I\) symbols of the initial codewords, i.e., \(\{\mathbf{c}_{i,j}: j\in[k_I,k_I+r_I-1] \},\, i\in[m]\) with parity-check matrix \[\begin{align} \hat{H}'_{w,z}=\mathrm{Vand}_{r_I}\!\left(\lambda_{w_{(u)},\,u}: u\in[mk_I,\,mk_I+r_I-1]\right),\\ w\in[0,s^L-1],\quad z\in[0,r_F-1], \end{align}\] which are \(r_I\times r_I\) invertible submatrices of ?? .
In the second stage, the remaining \(r_F-r_I\) written symbols \(\hat{\mathbf{c}}_{r_I},\cdots,\hat{\mathbf{c}}_{r_F-1}\) are treated as \(h=r_F-r_I\) failed nodes, and are recovered from the \(d_F=k_F+r_I\) helper nodes consisting of the unchanged symbols and \(\hat{\mathbf{c}}_0,\cdots,\hat{\mathbf{c}}_{r_I-1}\) via the multi-node repair procedure of Section 2.2 (ii). This is valid because the parity-check equations of \(\mathcal{C}_F\) satisfy the coordinate-wise periodicity required for MSR repair. Specifically, by the row-matching bijection, the \(u\)-th coordinate of \(\pi_i(w)\) satisfies \[\pi_i(w)_{(u)}=w_{(u+(i-1)k_I)},\quad u\in[0,n_I-1],\,i\in[m],\] so the coefficient at node \(u+(i-1)k_I\) of the final code, contributed by the \(i\)-th initial codeword, is \[\begin{align} \delta_i\lambda_{\pi_i(w)_{(u)},\,u}&=\delta_i\lambda_{w_{(u+(i-1)k_I)},\,u}\\ &=\beta^{s(u+(i-1)k_I)+w_{(u+(i-1)k_I)}}. \end{align}\] Similarly, by ?? , the written symbols at node \(mk_I+j\) for \(j\in[0,r_F-1]\) have coefficient \(\beta^{s(mk_I+j)+w_{(mk_I+j)}}\). Therefore, the parity-check equations of \(\mathcal{C}_F\) take the form \[\small \begin{align} \sum_{u=0}^{n_F-1}\left(\beta^{su+w_{(u)}}\right)^t c_{w,z,u}=0,& \quad t\in[0,r_F-1],\\ w\in[0,&s^L-1],\;z\in[0,r_F-1], \end{align}\] where each coefficient \(\beta^{su+w_{(u)}}\) depends on \(w\) only through its \(u\)-th coordinate in the \(s\)-ary expansion. This is precisely the Hadamard MSR structure in 4 and 5 , with parameter \(\alpha=(d_F-k_F+h)s^{n_F}\) and \(s_F:=d_F-k_F+1=r_I+1\) dividing \(s\) by definition. The multi-node repair scheme of Section 2.2 (ii) therefore applies with \(h=r_F-r_I\) failed nodes and \(d_F\) helper nodes.
Once all written symbols are obtained, \(\mathcal{C}_F\) supports both single-node and multiple-node repair. For single-node repair, fix any \(z\in[0,r_F-1]\) and treat \(\{c_{w,z,u}:w\in[0,s^L-1]\}\) as the subsymbols of node \(u\). The repair argument follows the same argument as for \(\mathcal{C}_I\) above with \(d_F\) helper nodes, giving repair bandwidth \(b=\alpha/s_F\). For multiple-node repair of \(h=r_F-r_I\) simultaneously failed nodes, the repair procedure follows Section 2.2 (ii), with \(d_F\) helper nodes. Hence \(\mathcal{C}_F\) is an \((n_F,k_F;\alpha)_q\) MSR code.
Bandwidth optimality. The conversion bandwidth consists of two parts. The first stage reads all parity symbols from the \(m\) initial codewords via \(\sigma_1\), contributing \(mr_I\alpha\) subsymbols. The second stage downloads \((r_F-r_I)k_Fs^L\) subsymbols from the unchanged nodes via the multi-node repair procedure. The total conversion bandwidth is therefore \[\small \gamma_R=mr_I\alpha+\frac{(r_F-r_I)k_F\alpha}{r_F} =mk_I\alpha-mr_I\alpha(\frac{k_I}{r_F}-1),\] which meets the lower bound ?? with equality. Hence Construction 2 is bandwidth-optimal.
In this paper, we studied convertible MSR codes in the merge regime and proposed explicit MSR-to-MSR conversion schemes that jointly achieve efficient conversion and optimal repair. Our constructions attain optimal access cost, optimal conversion bandwidth, and the MSR repair property. These results provide a unified approach to combining conversion efficiency and repair optimality in distributed storage systems.
Y. Yang, H. Cai, X. Lei and X. Tang are with the Information Coding and Transmission Key Laboratory of Sichuan Province, Southwest Jiaotong University, Chengdu 610032, China (email: yangyumeng@my.swjtu.edu.cn, hancai@swjtu.edu.cn, xflei@swjtu.edu.cn, xhutang@swjtu.edu.cn).↩︎