우리는 모든 DB에서 쉬운 것은 아니지만 디자인 질문을 감싸려고 노력하고 있습니다. 우리는 10 만개의 무작위 아이템을 가지고 있습니다. (훨씬 더 많을 수 있습니다.) 우리는 UUID를 사용할 무작위 키를 말하고 있습니다. 우리는 한 번에 하나씩 넘겨주고 싶습니다. 순서는 중요하지 않습니다. 우리는 항목의 발전기 테이블을 만든 다음 할당 된 테이블에서 삭제할 것이라고 생각하고 있습니다. 조건부 삭제를 통해 항목을 이미 지정하지 않았는지 확인할 수 있습니다. 그러나 첫 번째 항목을 찾으려고 할 때 제한 또는 1 회 검색 또는 쿼리를 수행하면 항상 첫 번째로 사용 가능한 동일한 레코드가 검색됩니까? 나는 파급 효과가 무엇인지 궁금 하네. Dynamo는 UUID를 파기합니다. 우리는 항상 같은 기록을 세우려는 모든 사람에 대해 걱정하고 있습니다. 처음에는 물론 삭제할 것이고 두 번째에 모두 맞을 수 있습니다.Dynamo에서 임의의 단일 항목 검색
탄성 캐시에 memcache/redis 인스턴스를 설정하고 사용 가능한 UUDS 목록을 유지할 수 있습니다. 임의 항목을 가져 와서 삭제하는 redis SPOP을 사용하여 무작위로 항목을 선택할 수 있습니다. 우리는 둘 사이의 동기화가 어려워 질 수있는 문제가있을 수 있지만, 대부분이 작업이 가능합니다.
캐시없이이를 수행하는 방법에 대한 생각은 아주 좋습니다. 다이나모가 다른 지점에서 시작하는 스캔을한다면, 그것은 멋쟁이 일 것입니다.
할당 가능한 모든 Id로 테이블을 만드는 이유는 무엇입니까? UUID를 사용하고 있다면 조건부 삭제 대신 조건부 쓰기를 사용할 수 있으므로 중복 가능성이 매우 낮습니다. – mkobit
고객은 제품 제공에 ID를 포함해야하므로 ID 목록을 원합니다. – CargoMeister
조건부 기록이 아마도 잘 작동 할 것입니다. – CargoMeister