연습문제
Replication Lag for Exercises
Local Machine에서 여러 Replication 을 동작시켰을 때 대부분의 데이터 전달 지연 등은 0에 가깝다.
따라서, Read Concern과 Write Concern 의 동작을 확인해보기 위해서 Replication Lag을 고의로 지정해본다.
Replication Lag을 SECONDARY nodes에 적용해본다.
기본적으로 각각의 Replication 들의 상태는 아래와 같은 방식으로 확인할 수 있다. (?)
rs1:PRIMARY> rs.conf().members
[
{
"_id" : 0,
"host" : "127.0.0.1:30000",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : {
},
"slaveDelay" : NumberLong(0),
"votes" : 1
},
...
priority
,slaveDelay
라는 항목이 있는데 이를 이용해서 Replication Lag을 발생시켜본다.priority
= 0 : This node will never been voted.slaveDelay
= 16 : This node will process a oplog after 16 seconds from transaction committed.
rs1:PRIMARY> cfg = rs.conf()
rs1:PRIMARY> cfg.members[1].priority = 0
rs1:PRIMARY> cfg.members[1].slaveDelay = 16
rs1:PRIMARY> rs.reconfig(cfg)
Exercise 1 : Journaling
Execute two scripts
아래 두개의 Javascript file을 작성한 뒤 Mongo Shell을 통해 실행시켜보자
속도비교 안하나?
for (var i = 0; i < 10000; i++) {
db.journal_test.insertOne({'id': i, 'content': 'hello~'})
}
for (var i = 0; i < 10000; i++) {
db.journal_test.insertOne({'id': i, 'content': 'hello~'})
}
mongo --port 30000 < with_journal.js
mongo --port 30000 < without_journal.js
Exercise 2 : Write Concern
Suggest results using quires with a below option
w
: 2,wtimeout
: 10000w
: 'majority',wtimeout
: 10000w
: 3,wtimeout
: 10000
db.write_concern.insertOne({
'document_key': 'document_field'},{
'writeConcern': {
w : value,
j : Boolean,
wtimeout : value
})
Exercise 3: Read Concern
Set the other SECONDARY node's properties like
priority
= 0,slaveDelay
= 16
Insert a document
db.read_concern.insertOne({'hello': 'world'})
Subsequently, performs a count() query with read concern option
majority
local
Last updated
Was this helpful?