티스토리 뷰

반응형

 

MongoDB v3.6.2  vs  CockroachDb v19.1.2

 

CockroachDB와 MongoDB를 각각 3개의 서버로 클러스터링을 구성한 후에 8만건 데이터를 입력해 보았습니다.

환경에 따라 다르겠지만, CockroachDB와 MongoDB를 1000개의 Rows(Document)로 입력 하도록 했습니다.

 

TEST_1 - 기본 설정 

  • MongoDB = 3초
  • CockroachDB = 41초     

 

TEST_2 - CockroachDB 테스트시 JDBC Connection( PostgreSQL) 설정 변경으로 50% 빨리짐(?)

 TRANSACTION ISOLATION LEVEL를 TRANSACTION_REPEATABLE_READ로 변경함. 

 TRANSACTION_REPEATABLE_READ외에 다른 TRANSACTION ISOLATION LEVEL로 설정하고

 10만건 이상을 반복적으로 INSERT하면 에러가 남.

  • CockroachDB = 21초 또는 43초  // 여러번 테스트시 빨라졌다 느렸다 함. 일정하지 않음

 

TEST_3 - MongoDB가 Auto Commit이라서, CockroachDB도 Auto Commit으로 변경 후 테스트

  • CockroachDB = 1분 46초   // Connection.setAutoCommit(true)

 

TEST_4 - PreparedStatement의  Batch 기능이 아닌 CockroachDB의 multiple insert

   url = https://www.cockroachlabs.com/docs/stable/insert.html#insert-multiple-rows-into-an-existing-table

   ex) insert into orders (order_id, prdt_nm)values (1, 'laptop'), (2, 'tablet')

  • CockroachDB = ???

 

새로운 OLTP용 DB를 알아보고 싶은 분들에게 "CockroachDB"를 추천해 드립니다.

 

- 참고 -  

URL = https://www.cockroachlabs.com/docs/stable/set-transaction.html

CockroachDB now only supports SERIALIZABLE isolation, so transactions can no longer be meaningfully set to any other ISOLATION LEVEL. In previous versions of CockroachDB, you could set transactions to SNAPSHOT isolation, but that feature has been removed.

 

 

 

반응형