---
title: Functional Batch Codes
url: https://www.emergentmind.com/topics/functional-batch-codes
type: topic
---

# Functional Batch Codes

A functional batch code is a family of linear codes designed for distributed storage systems which guarantee that any multiset of $k$ requests—each a linear combination of $s$ independent information symbols—can be answered by $k$ disjoint recovery sets of servers, with each recovery set yielding its respective requested combination. The central question is, for given $s$ and $k$, what is the minimum code length $n$ (i.e., the minimum number of servers) required for such a code. Functional batch codes generalize standard $k$-batch codes and functional PIR codes, and are deeply connected to simplex code constructions, combinatorial designs, and storage-efficient distributed retrieval.

## 1. Definition and Core Properties

A linear functional $k$-batch code of dimension $s$ and length $n$, denoted $\operatorname{FB}(n,s,k)$, is specified by a generator matrix $G\in\mathbb{F}_2^{s\times n}$. Each server $j$ stores a code symbol $y_j=g_j\cdot x$, where $x\in\mathbb{F}_2^s$ is the information vector and $g_j$ is the $j$-th column of $G$. For any multiset of $k$ request vectors $v_1,\ldots,v_k\in\mathbb{F}_2^s$, there exist $k$ pairwise disjoint recovery sets $R_1,\ldots,R_k\subseteq [n]$ such that for each $i$,
\[
\sum_{j\in R_i} y_j = v_i \cdot x,
\]
with all computations over $\mathbb{F}_2$. The code must serve *all* such multisets, including repeated and arbitrary requests. Special cases include:
- Functional $k$-PIR code (FP): all $k$ requests coincide.
- $k$-batch code: each request is a unit vector (single information symbol).

Standard parameters include $\operatorname{FB}(s,k)=\min\{n: \exists\ \operatorname{FB}(n,s,k)\}$ and analogous PIR/batch parameters [2101.06722].

## 2. Main Bounds and Existence Results

Functional batch codes are subject to tight bounds relating $s$, $k$, and $n$.

### Binary Codes, Maximal Batch Size:

- **Conjecture (Zhang–Etzion–Yaakobi):** For $k=2^{s-1}$, the minimal code length is $n=2^s-1$, i.e., $\operatorname{FB}(s,2^{s-1})=2^s-1$ [2101.06722, 2501.11122].
- Verified for $s\leq5$ via computer-assisted proofs; all known constructions use the binary simplex code, whose columns enumerate nonzero vectors of $\mathbb{F}_2^s$.

### Improved Existence:

- **Hadamard-based Construction:** There exists an $\operatorname{FB}(2^s-1, s, k)$ code for $k=\left\lfloor \frac{5}{6}2^{s-1}\right\rfloor-s$, closing the prior gap where only $k\approx 2^{s-1}/2$ was achievable [2101.06722].
- **Optimal for $k=2^s$:** $\operatorname{FB}(s,2^s)=2^{s+1}-2$; constructed via double-Hadamard matrices [2101.06722].
- For general $k$, tight lower bounds are supplied (e.g., sphere-covering arguments), with asymptotic minimum length $\operatorname{FB}(s,k)\gtrsim \frac{k}{\log_2(k+1)}s$ as $s\to\infty$ [1901.01605].

### Generalized Regimes (Nonbinary):

- Over $\mathbb{F}_q$, for $k,t$, and $q$,
  \[
    t+k-1 \leq \operatorname{FP}(k,t,q) \leq \operatorname{FB}(k,t,q) \leq k t,
  \]
  with explicit values computed for small parameters, e.g., $\operatorname{FB}(2,t,q) = t + \lceil \frac{q t}{q+2}\rceil$ [2508.02586].
- Asymptotically, for $t\to\infty$, $\operatorname{FB}(k,t,q)/t\to \frac{2(q^k-1)}{q^k+q-2}$ [2508.02586].

## 3. Constructions: Simplex and Hadamard Codes

The most prominent constructions for functional batch codes use simplex (Hadamard) codes:

- **Simplex Code Construction:** The $[2^s-1, s]$ simplex code, with generator matrix containing all nonzero vectors of $\mathbb{F}_2^s$, achieves functional batch codes optimal for $k\leq 2^{s-1}-O(2^{s-1})$. For $s\leq4$, it serves $k=2^{s-1}$ requests [2309.06806]. The double-simplex $[2^{s+1}-2, s]$ serves $k=2^s$ requests and is optimal [2101.06722].
- **Coset-graph and polynomial partitioning:** Recovery sets correspond to disjoint cosets or pair partitions in the support space, relying on combinatorial and algebraic methods, including Nullstellensatz and Vandermonde matrix criteria [2501.11122].

### Algorithmic Recovery (Combinatorial):

Codes exploit multigraph decompositions (using an offset vector $\hat{x}$). Cycles in the multigraph correspond to recovery set partitions, and recovery is guaranteed via careful path selection and reordering, ensuring disjoint recovery sets and collision avoidance [2101.06722].

## 4. Lower Bounds, Asymptotics, and Rate Analysis

Information-theoretic techniques provide fundamental limits:

- **Redundancy bounds:** For functional $(s,t)$-batch codes, the minimum redundancy $r_F(n;s,t)\geq r(n;s,t)$ matches ordinary batch code bounds, with explicit polynomial-counting inequalities given [2309.06806].
- **Labelling recursion for restricted locality:** For batch codes with maximum recovery set size $r$, code length must satisfy
  \[
    n \geq t - (t+1)/(2r) + [(2^k-1)(r-1)!]^{1/r},
  \]
  growing exponentially with $k$ for constant $r$ [2601.12302].
- **Asymptotic tightness:** For $r=2$, optimal constructions use double-simplex codes with $n=2^{k+1}-2$ columns for $t=2^k$. Double-simplex constructions achieve near-optimality within a factor of 2 for small $k$ [2601.12302].

## 5. Functional Batch Array Codes and Locality Constraints

Functional batch codes are extensively studied in array format, generalizing recovery to multiple requests and multiple reads per storage column [2001.10770]:

- **(s,k,m,t,\ell) functional batch array codes:** Designed for arrays of $t\times m$ bits, allowing up to $\ell$ bits to be read from each column per request. Recovery sets are subsets of columns, bounded by locality $r$.
- **Lower bounds via Stirling counts:** Minimal number of columns $m$ grows with the number of possible requests and the combinatorics of partitioning recovery sets.
- **Construction paradigms:** Codes arise from partitioning the data space into spreads, using combinatorial designs, and covering code reductions, providing flexibility in controlling retrieval locality and code rate.

## 6. Algebraic and Graph-Theoretic Methods

Recent advances recast the existence question as equivalent to algebraic and graph-theoretic problems:

- **Pairing and polynomial criteria:** The optimality conjecture for $k=2^{s-1}$ is equivalent to finding partitions of $\mathbb{F}_2^s$ into $k$ pairs satisfying specified vector sums, or establishing non-vanishing of special polynomials in a suitable quotient ring [2501.11122].
- **Nullstellensatz and Vandermonde conditions:** Codes corresponding to full-rank Vandermonde-type matrices over extension fields yield new sufficiency criteria, broadening known ad-hoc sufficient conditions and relating combinatorial existence to algebraic nondegeneracy [2501.11122].

## 7. Open Problems and Future Directions

Despite rapid progress, several questions remain unresolved:

- **Full generality of the simplex code conjecture:** The statement $\operatorname{FB}(s,2^{s-1})=2^s-1$, while verified for small $s$, is open for all $s$. Algebraic sufficient conditions have been recognized for large parameter ranges, but exhaustive or combinatorial proofs are lacking [2501.11122].
- **Extension to nonbinary and larger fields:** Precisely determining minimal code lengths for functional batch codes over $\mathbb{F}_q$, especially for $t \sim q^k$, remains open, with ongoing research offering asymptotic and constructive bounds [2508.02586].
- **Locality-optimal constructions:** Explicit codes for fixed locality $r > 2$ matching established lower bounds are essentially unknown; finding such families remains an outstanding challenge [2601.12302].
- **Tight asymptotics for small locality:** Quantifying the precise constant-factor increase in code length when constraining recovery sets to small size is an active research front [2601.12302].

The study of functional batch codes continues to impact storage system design, random I/O codes, and associated combinatorial structures, with simplex-based, algebraic, and array formulations providing the foundation for current and future advances.

Source: https://www.emergentmind.com/topics/functional-batch-codes