A system for updating a second node of a distributed storage system, the distributed storage system comprising a first node, the second node, and a master storage node, wherein: the first node and the second node are configured to store respective databases of key-value pairs (301, 302, 303), the key-value pairs (301, 302, 303) of each said database being grouped into a plurality of buckets (B 11; 300), wherein the key-value pairs (301, 302, 303) of each said bucket (B 11; 300) are stored in storage of the appropriate node (202, 208) in one underlying database file on the appropriate node; and the master storage node is configured to receive file operation requests and, based on a master table stored by the master storage node, direct the file operation requests to the appropriate node (202; 208) of the distributed storage system that stores the key-value pair associated with the requested file operation; the system comprising: a processor; and a memory coupled to the processor and configured to provide the processor with instructions that, when executed by the processor, cause the processor to perform actions including: selecting a bucket (B 11; 300) of the plurality of buckets stored at the first node to migrate to the second node; identifying an underlying database file corresponding to the selected bucket (B 11; 300) according to a map that associates the selected bucket (B 11; 300) with said underlying database file; copying the identified underlying database file from the storage of the first node to the storage of the second node; suspending updates to the identified underlying database file while the file is being copied; updating the database of the second node by referencing the identified underlying database file in the database of the second node; and updating the master table to configure the master storage node to direct file operation requests received by the master storage node and relating to the key-value pairs (301, 302, 303) stored by the selected bucket (B 11; 300) to the second node. the first node and the second node are configured to store respective databases of key-value pairs (301, 302, 303), the key-value pairs (301, 302, 303) of each said database being grouped into a plurality of buckets (B 11; 300), wherein the key-value pairs (301, 302, 303) of each said bucket (B 11; 300) are stored in storage of the appropriate node (202, 208) in one underlying database file on the appropriate node; and the master storage node is configured to receive file operation requests and, based on a master table stored by the master storage node, direct the file operation requests to the appropriate node (202; 208) of the distributed storage system that stores the key-value pair associated with the requested file operation; a processor; and a memory coupled to the processor and configured to provide the processor with instructions that, when executed by the processor, cause the processor to perform actions including: selecting a bucket (B 11; 300) of the plurality of buckets stored at the first node to migrate to the second node; identifying an underlying database file corresponding to the selected bucket (B 11; 300) according to a map that associates the selected bucket (B 11; 300) with said underlying database file; copying the identified underlying database file from the storage of the first node to the storage of the second node; suspending updates to the identified underlying database file while the file is being copied; updating the database of the second node by referencing the identified underlying database file in the database of the second node; and updating the master table to configure the master storage node to direct file operation requests received by the master storage node and relating to the key-value pairs (301, 302, 303) stored by the selected bucket (B 11; 300) to the second node. selecting a bucket (B 11; 300) of the plurality of buckets stored at the first node to migrate to the second node; identifying an underlying database file corresponding to the selected bucket (B 11; 300) according to a map that associates the selected bucket (B 11; 300) with said underlying database file; copying the identified underlying database file from the storage of the first node to the storage of the second node; suspending updates to the identified underlying database file while the file is being copied; updating the database of the second node by referencing the identified underlying database file in the database of the second node; and updating the master table to configure the master storage node to direct file operation requests received by the master storage node and relating to the key-value pairs (301, 302, 303) stored by the selected bucket (B 11; 300) to the second node.