1. A computer program product comprising a computer-readable storage medium tangibly storing instructions that, when executed by a data processing apparatus that comprises a programmable processor, cause the data processing apparatus to perform operations comprising: receiving a second request to update a second record in a second index of changes to a first index of records of a database table, the second record comprising data representing a first change to a first record of a first index of a database table, the first record comprising a first row of the database table, the request to update comprising a second change to the first record; inserting a third record representing the second change in the second index if a merge operation between the second index and the first index is not currently in progress or inserting the third record representing the second change in a third index of changes to the first index if the merge operation between the second index and the first index is currently in progress; marking a second row of the second record in the second index as invalid without deleting the second row, a first row of the first record having been previously invalidated without having been deleted from the first index upon insertion of the second record into the second index in response to a first request to update the first record; generating a result set matching a received search request, the result set comprising the first record, the second record, and the third record; and returning the result set with the first record and the second record omitted from the result set while including the third record in the result set; wherein at least one of the receiving, the inserting, the marking, the generating, and the returning are performed by the data processing apparatus.