저장 큰 숫자가 다양한 크기의 객체에 디스크
-
06-07-2019 - |
문제
나는 시스템을 개발하는 데 필요한 저장 큰 숫자(10 의 100 의 수천)의 개체입니다.각 객체는 이메일과 같은 주요 본문 텍스트,그리고 여러 보조 텍스트 분야의 제한 크기입니다.몸이 될 것입니다에서 몇 바이트,여러 가지 KB 크기에 있습니다.
각 항목이 있을 것이 하나의 고유 ID(아마 GUID)을 식별합니다.
저장소에만 기록할 때는 객체 추가할 것입니다.그것을 읽을 수 있다.삭제 드문 것입니다.데이터 거의 모든 인간의 텍스트를 읽을 수 있는 것입니다 그래서 쉽게 압축성.
시스템 수 있는 나에게 문제 I/Os 및 옴 메모리 캐싱하는 것이 이상적입니다.
나 유지하는 인덱스에서 메모리를 사용하여 지도 인덱스를 단순하고(주)키에 대한 개체입니다.한번에,나는 그것을 로드하는 디스크에서,또는 삭제합니다.
데이터 관리 시스템의 일부가 될 필요가 내 응용 프로그램-하고 싶지 않에 따라 달라집 OS 서비스입니다.거나 별도로 설치된 패키지가 있습니다.Native(C++)가장 좋은 것이지만,manged(C#)일이 있는 것입니다.
내가 믿는 데이터베이스의 분명한 선택,그러나 이야 슈퍼 빠르게 찾고 선적으로 메모리의 개체입니다.나는이 경험하지 않은 데이터와 함께 기본 기술 및 내가 걱정하는 일반적인 관계형 시스템을 처리하지 않습니다 이 모든 변수 크기 데이터를 효율적으로 합니다.
(참고로,이는 아무 것도 나의 일을 해당 개인정 프로젝트가 있습니다.)
에서의 경험하이 무엇인지,실행 가능한 대안에 대하여 전통적인 관계형 DB?또는 DB 작업을 위해 잘 이?
다른 팁
PFS를 시도해 볼 것입니다. http://blog.sensenet.hu/post/2008/05/portal-file-system-(pfs)-an-open-source-content-repository-for-net.aspx
Jackrabbit이 완벽한 선택 이었기 때문에 C/.NET에있는 것이 너무 나쁩니다.
당신이 정말 하지 않을 나타낼 수 있는 방법을 찾 이 데이터를 사용합니다.나는 어떤 비슷한 작업으로 어떤 텍스트 마이닝 응용 프로그램의 주요 데이터에 저장된 MySQL 그러나 나 유지하는 텍스트 검색 색인에 족제비(프로젝트에서는 루비)을 찾기 위해 적절한 행 메시지 테이블에 기초한 키워드 검색합니다.나는 생각이 하이브리드 방법 당신을 위해 일할 수 있습니다.SQLServer 고 Lucene.Net 작동할 수 있지만 당신을 위해서는 C#환경입니다.나는 확실히 보면 주위에 당신을 찾을 수 있습 유사한 솔루션에서는 C++공간입니다.
나는 사용하지 않는 것이 좋습 SQLServer 전체 텍스트 검색--루씬 및 그 파생을 것이 훨씬 더 나은 선택입니다.
내 생각에 있는 것이 훨씬 더 나은 운이 단지에 대한 모든 DB 솔루션을 통해 파일 기반 솔루션입니다.모든 현대적인 데이터베이스를 처리할 수 있어야 합 데이터 요구사항,적어도 공간이다.건물 인덱스에서 큰 분야는 다른 문제는 이유이 추천하고 싶은 텍스트 마이닝 접근 방식이 필요할 경우를 검색합니다.
버클리 DB가 설계된 것 같습니다. 그러나 나는 그것을 사용하지 않았습니다.
어쩌면 당신은 Apache+Mod-Dav와 같은 Webdav-Server에 대해 생각해야 할 것입니다. 이렇게하면 Conten 및 Metadata가 디스크에 저장됩니다. 검색을 위해서는 기존 검색 엔진을이 WebDAV 서버 위에 놓을 수 있습니다 (예 : Lucene).
이렇게하면 최소한의 개발을 최소한으로 유지하고 강력한 기능으로 시작합니다.
살펴보십시오 일견.