A distributed storage system comprising: a set of table controllers collectively configured to store a plurality of partitions of a logical table, wherein: the set of table controllers includes a first table controller, the logical table includes a plurality of rows, and for each partition of the plurality of partitions, a corresponding one of the set of table controllers is configured to store a subset of the plurality of rows of the logical table across a plurality of individual pages; and a management controller configured to update a schema of the logical table from a first schema definition to a second schema definition by, for each of the plurality of partitions, sending an update command indicating the second schema definition to the corresponding one of the set of table controllers, wherein the first table controller corresponds to a first partition of the plurality of partitions, wherein the first partition of the plurality of partitions includes a first subset of the plurality of rows of the logical table, wherein the first table controller is configured to, prior to receiving the update command from the management controller, include an identifier of the first schema definition within each page of data for the first subset, wherein the first table controller is configured to, subsequent to receiving the update command from the management controller, when writing each new page of data for the first subset, include an identifier of the second schema definition, and wherein the first table controller is further configured to, in response to receiving a read request for a first page of data for the first subset subsequent to receiving the update command from the management controller: in response to the page of data including the identifier of the first schema definition, adapt the first page of data to the second schema definition and transmit a response to the read request based on the first page of data; and in response to the page of data including the identifier of the second schema definition, transmitting a response to the read request based on the non-adapted first page of data. a set of table controllers collectively configured to store a plurality of partitions of a logical table, wherein: the set of table controllers includes a first table controller, the logical table includes a plurality of rows, and for each partition of the plurality of partitions, a corresponding one of the set of table controllers is configured to store a subset of the plurality of rows of the logical table across a plurality of individual pages; and the set of table controllers includes a first table controller, the logical table includes a plurality of rows, and for each partition of the plurality of partitions, a corresponding one of the set of table controllers is configured to store a subset of the plurality of rows of the logical table across a plurality of individual pages; and a management controller configured to update a schema of the logical table from a first schema definition to a second schema definition by, for each of the plurality of partitions, sending an update command indicating the second schema definition to the corresponding one of the set of table controllers, wherein the first table controller corresponds to a first partition of the plurality of partitions, wherein the first partition of the plurality of partitions includes a first subset of the plurality of rows of the logical table, wherein the first table controller is configured to, prior to receiving the update command from the management controller, include an identifier of the first schema definition within each page of data for the first subset, wherein the first table controller is configured to, subsequent to receiving the update command from the management controller, when writing each new page of data for the first subset, include an identifier of the second schema definition, and wherein the first table controller is further configured to, in response to receiving a read request for a first page of data for the first subset subsequent to receiving the update command from the management controller: in response to the page of data including the identifier of the first schema definition, adapt the first page of data to the second schema definition and transmit a response to the read request based on the first page of data; and in response to the page of data including the identifier of the second schema definition, transmitting a response to the read request based on the non-adapted first page of data. in response to the page of data including the identifier of the first schema definition, adapt the first page of data to the second schema definition and transmit a response to the read request based on the first page of data; and in response to the page of data including the identifier of the second schema definition, transmitting a response to the read request based on the non-adapted first page of data.