2015-01-25 3 views
7

DynamoDB 로컬은 내 테이블에 대해 단일 put 작업을 수행하는 데 100 밀리 초가 걸립니다. 문서에서는 처리량이 로컬 DB에 대해 무시되고 하드 디스크/컴퓨터의 속도에 의해서만 제한된다는 말을 듣습니다.DynamoDB 로컬 끔찍한 성능

mongodb와 비교할 때 쓰기 성능은 100 배 느립니다. 이 속도를 높이기 위해 할 수있는 일이 있습니까?

일괄 처리를 시도하지만 문제는 여전히 남아 있습니다. 이 시점에서, 내 (다소 큰) 테스트 데이터를 입력하는 데 몇 년이 걸릴 것입니다.

클라이언트 API로 Clojure와 Faraday를 사용하고 있지만 병목 현상이 아닌 것으로 확인되었습니다.

DynamoDB 로컬에서 쓰기 속도가 매우 느린 사람이 있습니까?

편집 : 25 : 약 배의 총 진행을 둔화 (25) 당 구현 배치, 이후했습니다

. 따라서 일괄 처리를하더라도 항목 당 약 120ms의 쓰기 속도를 얻게됩니다.

보수적 인 WriteConcern/ACKNOWLEDGED 플래그를 사용하더라도 Mongo를 사용하면 항목 당 약 250 마이크로 초 (약 500 배 빨라짐)의 결과가 나오며 배치를 보낼 필요조차 없습니다. 따라서 내 하드 드라이브 나 OS가 문제가 아닙니다.

어떤 통찰력이라도 대단히 감사하겠습니다.

당신이 당신의 질문을하지만 난 여전히 몇 가지 배경 정보를 제공 할 이후 시간이 지났는데

+0

어떤 Dynamo DB Local 버전을 사용하고 있습니까? 당신은 여전히 ​​최신 릴리스에서 이런 종류의 성능을 볼 수 있습니까? – mkobit

답변

7

SK.

MongoDB는 디스크에 기록하기 전에 업데이트를 메모리에 버퍼링하기 때문에 속도가 빠릅니다. 공식 MongoDB FAQ here

DynamoDBLocal 반면에 SQLite 데이터베이스를 사용하기 때문에 DynamoDBLocal은 매우 느립니다 (DynamoDBLocal 디렉토리의 * .db 파일을 열어서 확인할 수 있습니다). SQLite Browser) 및 SQLite는 다른 데이터베이스에 비해 쓰기 속도가 매우 느립니다. 더 많은 정보 here.

DynamoDBLocal은 DynamoDB API의 하위 집합을 간단한 SQLite 데이터베이스로 둘러싼 로컬 개발을위한 기본 도구 일뿐입니다. 실제 DynamoDB는 물론 SQLite에 의존하지 않고 훨씬 빠릅니다.

+5

왜 -inMemory 옵션을 사용하면 속도가 더 빠릅니까? 이 "에뮬레이터"가 너무 느리다는 것은 말이되지 않습니다. – goofballLogic