Объединение контрольных сумм - PullRequest
0 голосов
/ 07 мая 2020

Допустим, у нас есть система хранения, и клиент отправляет свои данные и контрольную сумму данных (контрольные суммы рассчитываются на стороне клиента). Например:

column1 = 1
column2 = 'a'
checksum(column1 = 1, column2='a')

Это хорошо, потому что теперь при каждом чтении мы можем предоставить контрольную сумму, чтобы читатель мог подтвердить, что не было повреждения данных (от конца до конца):

Однако, если теперь клиент обновляет:

column1 = 2

Контрольная сумма становится неверной, и нет возможности произвести полную контрольную сумму на стороне клиента. Мы могли бы произвести контрольную сумму на стороне сервера, но для нас важно сделать это на стороне клиента. Есть ли способ произвести частичную контрольную сумму:

column1 = 2
checksum(column1 = 2)

и позже в хранилище сервера

column1 = 2
column2 = 'a'
checksum = combine(checksum(column1 = 1, column2='a'), checksum(column1=2))
...