여기 내 상황이 있습니다. 여러 사용자가 사용할 수 있도록 설계된 서버 응용 프로그램이 있으므로 같은 시간에 많은 읽기/쓰기 작업이 있습니다. 그리고 응답은 빠를 필요가 있습니다.여러 프로세스의 데이터베이스 또는 메모리 파일에 동시에 액세스 할 수 있습니까?
현재 우리는 데이터 읽기/쓰기 작업이 우리가 기대 한만큼 빠르기 때문에 모든 데이터를 캐시에 저장했습니다. 데이터 잠금이 사용자의 요청을 나열하기 위해 대기열을 사용하여 문제를 일으키는 것을 방지하기 위해 핸들러 프로세스가 하나씩 처리됩니다.
그러나 곧 문제가 발견되었습니다. 프로그램은 한 번에 하나의 요청 만 처리 할 수 있습니다. 프로그램 벤치마킹 타이머조차도 프로세스에 0ms를 사용한다고보고하지만 1 초에 요청을 처리하는 데 여전히 한계가 있습니다. 이제는 초당 약 100 번 처리했습니다.
그래서 같은 시간에 8 개의 요청을 처리하는 8 개의 프로세스와 같은 몇 가지 방법을 더 찾고 있습니다. 그렇게 좋을거야. 그러나 데이터 공유에 대한 더 큰 문제가 있습니다. 나는 바퀴를 재발견하고 싶지 않습니다. 그래서 mongodb, redis 및 sqlite를 확인했습니다. 여기
내가 잘못 경우 많은에게 감사MongoDB의 날을 수정, 숙제 그리고 그들이 언급 한 바와 같이 레디 스 정말 빨리, 그러나, 그들은 하나 개의 요청을 한 번 처리 할 수있는 동일한 메커니즘을 사용, 그것은하지 무슨이다 나는 찾고있다.
그래서 sqlite는 훨씬 더 가깝고, 여러 프로세스가 동시에 동일한 db 파일을 열어 읽을 수 있습니다. 고통은 쓰기 잠금입니다 (sqlite3의 새 잠금이 얼마나 효과적이지는 않은지).
여기 내 질문에,이 시나리오에 대한 견고하고 좋은 해결책이 있습니까? 내가 쓰기 과정을 하나씩 분리한다면 도움이 될까요? MongoDB를 가진 솔루션 샤딩 된 모든 의견
모든 논리적 인 프로세스가 필연적 일 필요는 없습니다. 필연적 인 부분을 최적화하려고합니다. – davyzhang
sqlite의 경우 : http://www.sqlite.org/faq.html#q5 – tauran