2010-03-16 3 views

답변

1

현재로서는 불가능하고 가능성이있을 수 있습니다.

조건부 업데이트 및 삭제는 조건이 업데이트되는 항목에만 설정되도록 허용합니다. 이 외에도 동일한 데이터의 여러 버전을 저장하거나 다중 값 속성에 대한 시퀀스 정보를 저장하는 메커니즘이 내장되어 있지 않습니다. 다른 속성 이름을 사용할 수 있지만 쿼리가 중단됩니다.

최근 일관성 업데이트를 사용하면 항목 수준에서 쉽게 구현할 수 있습니다. 그러나 동일한 (또는 다른) 도메인의 여러 항목에 걸쳐 직접적인 구현은 없습니다. 또한 격리 수준 옵션도 없습니다.

가능할 수도 있지만 프로세스에서 모든 쿼리 기능이 종료 될 우려가 있습니다. 일치하지 않는 속성 이름을 사용하거나 좋은 성능보다 더 많은 SELECT 조건을 요구할 수 있습니다.

그 외에도 데이터에 대한 모든 액세스에 대해 일관된 읽기가 필요합니다. 단일 복제본 노드에 도달 할 수없는 경우에도 일관된 읽기가 실패하므로 최종 일관성있는 시스템을 사용할 경우의 가용성 이점을 모두 무효화 할 수 있습니다.

저는 논자가 되려고하지 않고, 실제로 얼마나 실용적인지 궁금합니다. SimpleDB의 고 가용성을 얻으려면 이미 많은 기능을 포기해야합니다. 이러한 기능이 필요하지 않은 경우에는 문제가 없지만 고 가용성을 포기할 경우 문제가 훨씬 적습니다. 좋은 거래가 될 것입니다.

+0

높은 가용성을 포기하는 것이 무의미하다는 것에 동의하지만 일관된 읽기 및 조건부 업데이트의 이중 기능을 함께 사용하면 다중 항목/다중 도메인 트랜잭션을 구현할 수 있다고 생각합니다. 일관된 읽기가 필요할 것이지만 일반적인 경로에서는 생각하지 않습니다 (그리고 읽기 전용 작업을 전혀 구현하지 않을 수도 있음). 다중 값 속성은 필요하지 않지만 항목의 버전, 타임 스탬프, 트랜잭션 ID 등을 저장하는 데 유리하게 사용할 수 있습니다. 답변이 '아니오'인 경우 내 질문에 답변 한 것 같습니다 (단지 내가 원하는 답변이 아님). – DavidJ

-1

Simple Savant C# library for SimpleDB에서 작업하는 동안 이것에 대해 많은 것을 생각해 보았습니다. SimpleDB와 같은 분산 시스템에서 진정한 트랜잭션 성을 구현하려고 시도하는 것은 여러 가지 이유 때문에 좋지 않은 아이디어입니다.

내가 가진 가장 좋은 점은 (과도하게 유망하지 않고 시스템을 과도하게 복잡하게 만드는 가치를 제공하는) 내가 "신뢰할 수있는 기록"이라고 부르는 것입니다. 이렇게하면 결국 교차 도메인 업데이트의 모든 작업 (put 및 삭제)이 완료됩니다. 쓰기 중 일부가 영구적으로 실패하는 유일한 방법은 업데이트 중 하나가 SimpleDB 제약 조건을 위반 한 경우입니다.

이 기능은 아직 구현되지 않았지만 기능에 대한 자세한 내용과 의견은 here 읽을 수 있습니다. 저는 여러분의 생각을 듣고 이것이 어플리케이션 개발자로서의 여러분의 요구를 어떻게 충족 시킬지에 관심이 있습니다.

+0

downvote 주셔서 감사합니다! –

관련 문제