저는 아마존에서 dynamodb 예제를 시도했습니다.Amazon DynamoDB 클라이언트가 너무 느립니다.
DB 자체의 장점을 알고 있지만 데이터를 쓰고 읽는 데 http 연결을 사용함을 발견했습니다. 1000 개의 쓰기/초가 있다면 1000 개의 연결을 쓸 수 있어야합니까? 그렇다면 클라이언트 서버에 너무 무겁지 않습니까?
정상적인 db로 TCP를 사용하여 연결할 수있는 방법이 있습니까? 감사.
저는 아마존에서 dynamodb 예제를 시도했습니다.Amazon DynamoDB 클라이언트가 너무 느립니다.
DB 자체의 장점을 알고 있지만 데이터를 쓰고 읽는 데 http 연결을 사용함을 발견했습니다. 1000 개의 쓰기/초가 있다면 1000 개의 연결을 쓸 수 있어야합니까? 그렇다면 클라이언트 서버에 너무 무겁지 않습니까?
정상적인 db로 TCP를 사용하여 연결할 수있는 방법이 있습니까? 감사.
각 쿼리에 대해 말마다 연결을 열지 않고 요청하는 중입니다. 아마존 내부에서 매우 빠른 속도의 네트워크를 사용하기 때문에 대기 시간은 http에서도 매우 낮습니다. 물론 TCP는 "빠름"일 수도 있지만 실제로는 비 실제 환경에서 연결 속도를 비교하는 것입니다. HTTP를 사용하면 얻을 수있는 실질적인 이점은 매우 쉽게 확장 할 수 있다는 것입니다. 그들이 한 일은 각 요청마다 수십 ms의 대기 시간을 추가했으며 결과적으로 요청이 10ms 미만임을 보장했습니다. 그들의 문서에서 보증하는 응답 시간은 한자리 숫자 (ms)입니다.
프로토콜을 비교하는 경우 HTTP가 TCP보다 느린 지 확인하십시오. 그러나 실제로 제품을 살펴보면 속도가 느린 것과는 거리가 멀다는 것을 알 수 있습니다. 대용량 데이터 세트를 염두에두고 시작할 때 설계 할 수있는 가장 빠른 데이터베이스 중 하나 일 것입니다.
처리량을 1000 개의 쓰기/초로 설정하면 데이터를 1 초 내에 1000 회 성공적으로 쓸 수 있도록 데이터가 분산됩니다. dynamodb는 확장 가능한 환경에서 정말 빠르고 안정적입니다.
초당 1000 개의 쓰기를 원할 경우 각 데이터 항목 크기가 1KB라고 가정하고 표의 쓰기 처리량을 1000으로 구성해야합니다. 1KB보다 작거나 큰 경우 1KB로 나누어 반올림 숫자를 사용합니다. 1.6kb/1kb = 1.6 ~ 2 ie 쓰기 처리량은 초 당 1000 개의 쓰기에 대해 2000이어야합니다 .HTTP 연결 후에도 삽입 서비스가 동일한 EC2 영역에서도 실행되고 있다는 사실을 고려할 때 매우 빨라졌습니다.
의미 AWS SDK는 연결 풀 자체를 유지 관리합니까? 그래서 정적 클라이언트 객체를 만들거나 각 요청에 대해 새 객체를 더 잘 초기화해야합니까? – PeiSong
http에 대한 실제 연결 풀이 없습니다. HTTP는 지속적인 연결이라고 부르는 것을 가지고 있으며 http://en.wikipedia.org/wiki/HTTP_persistent_connection을 유지합니다. 그러나 애플리케이션에서 최대한의 성능을 얻으려면 한 번에 여러 개의 연결을 열어야합니다. 각 스레드에 대해 하나의 SimpleDB 인스턴스를 만들 수 있습니다. – bwight