2011-04-12 3 views
4

.NET 용 영구 키 - 값 저장소를 찾고 있습니다. 요구 사항은 다음과 같습니다..NET - 신속한 가벼운 영구 키 - 값 저장소

  • 문자열은 문자열로 식별되고 바이트 배열 인 값을 가진 여러 선택적 (명명 된) 속성이있는 개체에 사용됩니다. SQL 솔루션의 경우 하나의 문자열 -> id 테이블과 여러 개의 id -> blob 테이블로 모델링합니다.
  • 예상 된 양의 데이터는 몇 메가 바이트 (이상 10 메가가 현재 가능성은 있지만, 100 메가까지 확장하는 것은 좋은 보너스 것)이다
  • 경량 - 바람직 하나 조립, 확실히
  • 읽고 외부 응용 프로그램없이 최소한 100 배 이상 쓰기가 더 빈번합니다.
  • 빠른 읽기/쓰기 액세스 - 데이터 업데이트에 메모리 내 저장과 지연 기록이 예상됩니다. 비동기 쓰기를 주기적으로 수행 할 수 있으며 스토리지가 수행하는 경우 보너스 포인트가 있습니다.
  • 원자 I/O - 쓰기가 진행되는 동안 프로세스가 종료되면 데이터베이스가 중단되지 않아야합니다. 그렇지 않으면 데이터가 중요하지 않으므로 추가 중복이 필요하지 않습니다.

현재 SQLite가 작동한다고 생각합니다. 그러나 그것은 약간 과잉이라고 생각됩니다. 전체 SQL 지원이 아닌 키 값 저장 만 필요합니다. 나는 또한 bdb와 libdb-dotnet 바인딩에 대해 들어 봤다. 이것은 더 가벼운 것 같지만 성능/일관성 특성을 모른다.

누구든지 여기에 뭔가를 추천 할 수 있습니까? SQLite 또는 libdb-dotnet (또는 일반적으로 bdb) 또는 집에서 만든 솔루션을 사용한 경험뿐만 아니라 추가 참조 자료도 환영합니다 (예 : .NET Framework에서 작업을 수행 할 수있는 것이면 정말 멋집니다). .

+0

모든 종류의 데이터베이스를 사용하여 저에게 들리는 소리는 과장 될 것입니다. 단지 10MB의 디스크로 한 번에 모든 것을 읽고 쓰지 않는 이유는 무엇입니까? (많은 메모리를 차지하지 않는 것 같지 않다) – Doggett

+0

@Doggett, 제안 된 애플리케이션이 사소한 경우 데이터베이스를 다시 발명하는 것처럼 들린다. – driis

+0

@Doggett, 문제는 모든 업데이트에 전체 DB를 작성하는 속도가 느려지고 단일 플러시 포인트가 없다는 것입니다. 즉, 앱이 중간에 종료 될 수 있으므로 앱 종료시 전체 DB를 쓸 수 없습니다. 나는 부분적인 홍조를 지원해야하고, 그것들을 원자화시켜야 할 것입니다 - 이것은 이것에 관한 유일한 사소한 일입니다. – zeuxcg

답변

0

아마도 http://ravendb.net/을 살펴보십시오. JSON 문서를 키 - 값 저장소에 저장하지만 훌륭한 .NET 객체를 지원합니다.

귀하의 필요 사항에 대한 설명을 통해 관리되는 스토리지 엔진 인 "Raven.Munin"을 활용할 수 있습니다.이 엔진은 단일 어셈블리입니다.

관련 문제