2014-11-27 2 views
2

우리는 모든 DB에서 쉬운 것은 아니지만 디자인 질문을 감싸려고 노력하고 있습니다. 우리는 10 만개의 무작위 아이템을 가지고 있습니다. (훨씬 더 많을 수 있습니다.) 우리는 UUID를 사용할 무작위 키를 말하고 있습니다. 우리는 한 번에 하나씩 넘겨주고 싶습니다. 순서는 중요하지 않습니다. 우리는 항목의 발전기 테이블을 만든 다음 할당 된 테이블에서 삭제할 것이라고 생각하고 있습니다. 조건부 삭제를 통해 항목을 이미 지정하지 않았는지 확인할 수 있습니다. 그러나 첫 번째 항목을 찾으려고 할 때 제한 또는 1 회 검색 또는 쿼리를 수행하면 항상 첫 번째로 사용 가능한 동일한 레코드가 검색됩니까? 나는 파급 효과가 무엇인지 궁금 하네. Dynamo는 UUID를 파기합니다. 우리는 항상 같은 기록을 세우려는 모든 사람에 대해 걱정하고 있습니다. 처음에는 물론 삭제할 것이고 두 번째에 모두 맞을 수 있습니다.Dynamo에서 임의의 단일 항목 검색

탄성 캐시에 memcache/redis 인스턴스를 설정하고 사용 가능한 UUDS 목록을 유지할 수 있습니다. 임의 항목을 가져 와서 삭제하는 redis SPOP을 사용하여 무작위로 항목을 선택할 수 있습니다. 우리는 둘 사이의 동기화가 어려워 질 수있는 문제가있을 수 있지만, 대부분이 작업이 가능합니다.

캐시없이이를 수행하는 방법에 대한 생각은 아주 좋습니다. 다이나모가 다른 지점에서 시작하는 스캔을한다면, 그것은 멋쟁이 일 것입니다.

+0

할당 가능한 모든 Id로 테이블을 만드는 이유는 무엇입니까? UUID를 사용하고 있다면 조건부 삭제 대신 조건부 쓰기를 사용할 수 있으므로 중복 가능성이 매우 낮습니다. – mkobit

+0

고객은 제품 제공에 ID를 포함해야하므로 ID 목록을 원합니다. – CargoMeister

+0

조건부 기록이 아마도 잘 작동 할 것입니다. – CargoMeister

답변

1

나는 DynamoDB에서 UUID를 키로 설정 한 상황이 동일하며 API 호출에서 무작위로 선택해야합니다. 성능 문제와 쉬운 구현을 위해. 네가 말한대로 나는 레디 스를 사용했다.

  1. 는 DynamoDB의
  2. 델이 UUID,

스캔 작업의 성능입니다으로 설정

  • 에서
  • 전화가 온다 레디 스
  • , SPOP의 설정에 UUID를 UUID를 추가 나쁜, 당신이 할 수있는 한 그것을 최대한 피하려고 노력해야한다.

    +0

    Tx, Dynamo로 시작한 다음 성능을 확인한 후에 Redis에 추가 할 것입니다. – CargoMeister

    +0

    또한, 스캔 성능이 1의 한계로 나쁠 지 확신하지 못합니다. 첫 번째 읽기 이후에 멈 춥니 다. 우리는 그것이 괜찮을 것을 희망 할 수 있습니다. – CargoMeister