문제

내가 원하는 데이터 구조할 수 있는 쿼리 얼마나 많은 품목에서의 마지막 X.는 항목 수 있습니다 간단한 식별자 또는 더 복잡한 데이터 구조,바람직하게는 타임 스탬프의 항목에서 항목보다는,외부에 저장(해시 또는 이와 유사한 것,원하지 않을 것을 문제가 있으로 여러 개의 항목을 동일한 타임스탬프).

그래서 멀리 보인다는 LINQ 수 있게 필터는 항목으로 타임 스탬프 이상 주어진 시간과 집계합니다.그러나 나에게 주저하는 일을하려고합니다.NET3.5 특정 재료로 내 생산 환경이 아직입니다.다른을위한 제안 유사한 데이터 구조는?

다른 일부는 내가 관심이 aging 오래된 데이터는 경우에,내가 될 것을 요청의 카운트 항목보다 6 시간 전에 나는 아무것도 나보다는 것을 제거에서 내 데이터 구조 때의 길이가 길어질 수 있습니다-실행하는 프로그램입니다.

도움이 되었습니까?

해결책

간단한 연결 목록을 사용할 수 있습니다.

기본적으로 새로운 항목을 추가,끝까지 및 제거하고 너무 오래 된 항목에서 시작,그것은 저렴한 데이터 구조입니다.

예제 코드:

list.push_end(new_data)
while list.head.age >= age_limit:
    list.pop_head()

는 경우 목록이 바쁜 것을 보증하기에 충분히 자르고 큰 조각보다 한번에 하나씩,그때에 동의 dmo, 사용 트리 구조 또는 이와 유사한할 수 있는 가지치기에서 더 높은 수준입니다.

다른 팁

내가 생각하는 중요한 고려 사항이 될 것이의 주파수를 쿼리하는 대추가/제거.당신이 할 것이 빈번한 쿼리(특히 경우에 당신은 큰 컬렉션)B-트리 방법이 있을 수 있습 이동:

http://en.wikipedia.org/wiki/B-tree

당신의 스레드를 통해 이동 및 청소 이 나무는 정기적으로 또는 그것의 일부 검색(시,사용법에 따라서).기본적으로,당신이 할 것이 트리를 검색하는 자리를 찾"x 분 전에"다음의 수를 계산하 어린이 노드에서 최신다.을 유지하는 경우의 어린이는 노드 최,이 합 신속하게 수행 할 수 있습니다.

캐시와 슬라이딩 만료 일을 할 것입니다....

재료의 항목 및 캐시 처리하는 노화 방지....

http://www.sharedcache.com/cms/

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top