2012-09-17 3 views
2

올바른 용어조차 모르겠다. 내 목표로 시작하자. 파일에서 메모리로 거대한 데이터 덩어리를 읽는 간단한 앱 ("Data Doler")을 만든 다음 그 데이터 조각을 "Data Lapper"라는 단일 멀티 스레드 응용 프로그램이나 Data Lapper의 여러 인스턴스에 제공하십시오.sqlite 대 공유 메모리 응용 프로그램 vs ipc vs?

데이터 Doler를 시작하고 데이터 덩어리를 한 번 읽는 것만으로도 적어도 아마겟돈까지 머물러 있어야합니다. 데이터 도저는 데이터 래퍼가 연결하여 데이터 요청을 시작할 때까지 기다리는 동안 그냥 앉아 있어야합니다. Data Doler는 항상 50 기가 바이트 이상의 메모리가있는 멀티 코어 시스템에서 실행됩니다.

데이터는 정적이며 읽기 전용이며 모든 Data Lapper가 수행해야하는 색인이 생성되어 Data Doler에 메모리 주소가 부여되고 요청 된 데이터 슬라이스가 즉시 반환됩니다.

데이터 Doler는 모든 언어 (C, C++, AtariBasic 등)로 작성할 수 있습니다.

데이터 래퍼에 대한 C 소스 코드가 있으므로 Data Doler에 연결하는 방법이 완전히 열려 있습니다.

나는 SqLite, 공유 메모리 응용 프로그램, 명명 된 파이프, ipc 등에 대해 교육하기 시작했습니다.하지만 누군가 내가 짖어서야하는 나무를 말하면 누군가 나를 잠시 구할 수 있기를 바랍니다. 이 물건들에 관해선 우둔 해. 현관에 머물러있는 것이 낫다.

+0

높은 읽기 또는 쓰기입니까? 독서가 쟁점이 되는가? doler는 데이터를 얼마나 오래 붙잡습니까? –

+1

왜 데이터 래퍼가 파일을 직접 읽게하고 OS의 파일 캐시가 나머지를 처리하게해야합니까? 그리고 어떤 OS? –

답변

0

처리량과 데이터가 얼마나 오래 붙는 지에 따라 자신 만의 롤링보다 간단한 솔루션이있을 수 있습니다.

memcached과 같은 것은 사용자의 요구 사항에 맞으면 정말 멋질 것입니다. 그것은 웹 전체에서 사용 중입니다.

코드 솔루션을 직접 만드는 경우 boost interprocess을 고려해보십시오. IPC는 꽤 합리적입니다.

관련 문제