2009-11-16 2 views
2

IIRC, 각 Facebook 사용자는 5000 명의 친구를 가질 수 있습니다. 평균은 130이지만 최대치는 훨씬 높습니다. 그 친구들 각각은 수백만 집합에서 추출한 0 개 이상의 엔티티를 '좋아할'수 있습니다. 예를 들어 N 축 (예 : 카테고리 및 크기)별로 그룹화 된 해당 엔티티의 하위 집합을보고 친구가 좋아하는 엔트리를 어떻게 찾을 수 있습니까?App Engine Datastore + 소셜 앱 - 구조 및 검색 N-D 스파 스 매트릭스

GAE를 사용하면 비용이 데이터 크기가 아닌 계산 시간이됩니다. 검색 시간에 특정 카테고리와 크기의 모든 친구를 검색 할 수 없습니다. 각 친구가 작업을 수행 할 때 사용자에 대한 항목을 추가 할 수 있지만 친구가 작업을 수행 할 때마다 최대 5000 개의 데이터 항목을 의미합니다. 이는 백그라운드 에서조차도 많은 CPU 시간입니다. 또한 앱을 시험해보고있는 새로운 친구들과 처음 추가 한 사람은 놓친다. 공간을 분할하려고 시도하는 것은 의미가 있지만 친구는 그룹화하기가 매우 어렵습니다.

아이디어가 있으십니까? 비슷한 문제를 해결 했습니까?

답변

1

항목 ID를 키로 사용하고 "친구"ID를 속성 이름으로 사용하여 하위 수준 데이터 저장소 API를 사용해보십시오 (속성 값은이 경우 true 또는 false입니다). 핵심 필터를 사용한 조회는 꽤 빠르다고 생각합니다.

+0

그 방법에는 몇 가지 문제가 있지만, 속성 공간을 사용하는 것이 솔루션의 한 부분 일 수 있으므로 아마 upvote를 줄 것입니다. 고마워, 드미트리. –

관련 문제