2012-09-26 2 views
1

우리는 백엔드가 RDBMS에서 NoSQL으로 쓰기를 수행 할 것을 계획하고 있습니다. 우리는 이것이 주요 병목 현상이라고 생각합니다.주로 응용 프로그램을 작성하는 데 NoSQL 솔루션이 권장됩니까?

우리의 비즈니스 프로세스는 95 % -99 %의 동시 쓰기가 있고 평균적으로 동시 1 % -5 % 읽기 만 있습니다. 엄청난 양의 데이터가 포함되므로 메모리 내 NoSQL DB가 적합하지 않습니다.

이 경우 최적의 NoSQL DB 디스크가 있습니까?

감사합니다.

+0

상황에 NoSQL DB 시스템이 얼마나 빠르지 모를 때 관계형 DB가 병목 현상이라고 생각하십니까? – ZippyV

+0

우리는 MySQL을 사용하여 몇 가지 시뮬레이션 테스트를 수행했으며 DB에 논리적으로 데이터를 쓰는 동시 가능한 100,000 개의 소스를 가지고 있으면 속도가 느려집니다. – SyBer

+1

다양한 NoSQL 시스템에서 동일한 테스트를 수행하는 것이 어떻습니까? – ZippyV

답변

2

동시 쓰기가 충돌을 일으키고 데이터 무결성이 문제가되는 경우 NoSQL을 사용하는 것이 좋습니다. "낙관적 인 동시성"을 지원하는 데이터 관리로 이것을 쉽게 테스트 할 수 있습니다. 실제 충돌로 인한 충돌을 측정하고이를 세부적으로 분석 할 수 있습니다.

"더 자세한 내용없이 문제가 발생할 것이라고 말하면 조금 놀랐습니다. 당신이 우리에게 준 사실에 기반하여 하나의 대답을 드리겠습니다 .10 만개의 출처와 작성 시나리오는 무엇입니까? MySQl 등 확장 성이 동시 쓰기

당신이 사용 사례 (들) 또는 세부 문제를 이해하는 데 도움이 무엇이든 어떤 종류의를 제공하려는 경우 그것은 도움이 될 것입니다 처리의 가장 좋은 예는 없습니다.

날이 보자 예 : 고급 쓰기 디스패처, 데이터 버전 관리 등을 갖춘 메모리 데이터베이스에서 1M "작성자"로 작성자가 네트워크 요소로, 응용 프로그램에 고급 NMS 시스템이 쉽게 걸릴 수 있습니다. 충돌, 낙관적 동시성, 최대 16GB의 메모리 내 쓰기 버퍼링, 200 개 이상의 가상 스핀들 (SSD 또는 자기 디스크)에 대한 비동기 병렬 쓰기 등 새로운 데이터를 먹는 진정한 "빠름"! 성능을 한계까지 확장 할 수있는 훌륭한 후보자입니다.

두 번째 예 : sparse number space가있는 MSC. 모바일 숫자는 숫자의 "클러스터"입니다. 거대한 숫자 공간이지만 최대. 200M 개인 주소. 충돌하는 쓰기가있는 매우 드문 경우입니다. RDBMS는 메모리 매핑 스파 스 파일로 대체되었습니다. 그리고 성능 향상은 최악의 경우 1000x에 가까웠고, 가장 좋은 경우에는 1000x 였고, 최악의 경우에는 100x였습니다. 대체 코드는 C의 약 300 행이었습니다. 해결해야 할 문제에 적합하기 때문에 True BigNoSQL이었습니다.

자세한 내용을 모르면 간단히 말해서 질문에 답할 "은색 총알"이 없습니다. 우리는 여기서웨어 늑대를 본 사람이 아니며, 단지 "나쁜 데이터"일뿐입니다. 우리의 작업 부하가 일명 "트랜잭션"인지 여부를 알 수 없을 때. 숫자 또는 입출력 및 대기 시간에 민감하거나 "BLOB와 같은"일명. 스트리밍 미디어, 지형 데이터 등), 100 % 잘못된 결과를 줄 것입니다. 대역폭 및 io-rate/latency/transactions는 실제 생활에서 어느 정도 균형을 유지합니다.

좀 더 자세한 내용은 http://publib.boulder.ibm.com/infocenter/soliddb/v6r3/index.jsp?topic=/com.ibm.swg.im.soliddb.sql.doc/doc/pessimistic.vs.optimistic.concurrency.control.html을 참조하십시오.

+0

오랫동안 답변 해 주셔서 감사 드리며 오랜 기간 동안 답변을 드리지 못해 죄송합니다. (결국 우리는 단일 MySQL 테이블을 샤딩과 결합하여 문제가 없습니다.) – SyBer

관련 문제