하나의 문제가 발생합니다. 푸른 색 테이블에 목록을 저장해야합니다. 내가하고있는 일은 그것을 문자열에 직렬화하고 저장하는 것이다. 이제 그 행을 읽을 때 업데이트 된 목록을 얻지 못한 경우가 있습니다. 결과적으로 우리가 목록에 항목을 추가하면 독서를 올리면 오래된 항목이 사라집니다. 누구든지이 문제가 발생하기 전에이 솔루션을 무엇입니까.Azure 테이블 일관성 유지
C가 B를 확장하고 B가 A를 확장하는 3 개의 클래스가 있다고 가정 해 봅시다. 이제 B와 C의 모든 객체도 A의 객체입니다. 이제 A의 모든 객체 (B c) Azure Table의 한 열에있는 목록으로. [A ', B', C ', A "] 같이 객체의 현재 상태 우리는 여러 응용 프로그램 서버가있을 때 문제가 발생합니다. 이제 Server1은 현재 목록을 가져 와서 B의 인스턴스를 목록에 추가하려고합니다. 예를 들어 [A ', B', C ', A' '] , A '', B ''] 동시에 Server2는 [A ', B', C ', A' ']로 목록을 가져오고 C' '를 추가하여 [[A', B ', C' A ''], C "]. 이제 개체 B ''에 대한 정보가 손실됩니다. 이런 종류의 문제를 완화하는 방법.
나는 도트 넷 클라이언트 라이브러리입니다. 아래 코드는 동일합니다.
TableOperation retrieveTypedInstancesOperation = TableOperation.Retrieve (partitionKey, RowKey); TableResult retrievedTypedInstancesResult = instancesTable.Execute (retrieveTypedInstancesOperation); 목록 instanceLists = 새 목록(); (retrievedTypedInstancesResult.Result! = NULL)이 {
string instances = ((TypedInstancesRow)retrievedTypedInstancesResult.Result).Instances;
if (!String.IsNullOrEmpty(instances)) instanceLists = JsonConvert.DeserializeObject<List<string>>(instances);
}
instanceLists.Add(InstanceId);
heirarchy.PartitionKey = partitionKey;
heirarchy.RowKey =rowKey;
heirarchy.Instances = JsonConvert.SerializeObject(instanceLists);
TableOperation insertOperation = TableOperation.InsertOrReplace(heirarchy);
instancesTable.Execute(insertOperation);
코드가 없으면 아무도 아무 것도 할 수 없습니다. – Soaku
설명에 따르면 행이 업데이트되지 않는 이유를 직접 확인할 수 없습니다. 목록을 업데이트하는 방법에 대한 세부 정보 코드를 게시 할 수 있습니까? 테이블 행을 업로드하는 데 사용 된 파티션 키 및 행 키. 자세한 내용을 게시 할 수 있다면 솔루션을 찾을 수있는 것이 더 쉬워 질 것입니다. –
적절한 설명을 추가했습니다. 추가 정보를 제공 할 수 있는지 알려 주시기 바랍니다. – Nishant