2014-11-14 2 views
2

이 질문을 전에 보았지만 대답은 매우 모호했습니다. 나는 oplog에 대한 연구를 해왔고 정확하게 작동하는 방법을 이해하려고 노력하고 있습니다. 특히, 나는 oplog 문서의 필드와 그들이 저장하는 데이터를 잘 이해하고 싶습니다.oplog 필드는 실제로 무엇을 의미합니까?

  • TS : 쓰기 작업의 타임 스탬프/oplog 항목
  • 이러한 필드 내가 테스트를 통해 발견 한 나는 그들은 내가 아직도 확신이 누구인지뿐만 아니라 무엇을 의미하는지 생각 은 h : oplog 항목에 대한 고유 한 식별자 (그러나 때로는 양수이고 때로는 음수 인 이유는 무엇입니까?)

  • op : 수행 된 작업 유형 (일반적으로 삽입, 업데이트 또는 삭제에 대해 i/u/d)
  • ns : database & 컬렉션이 영향을 받음
  • o : 변경 후 문서의 새 상태
  • o2 : 업데이트 작업 중에 문서의 _id 필드가 포함 된 것으로 보입니다. 같은 필드가 문서의 나머지 부분을 포함하는 o 필드의 일부로 존재할 때 이것이 필요한 이유는 무엇입니까?
  • b : 삭제 작업시 나타나는 bool 인 것 같습니다. 이 분야의 중요성은 무엇입니까?

내가 위에서 언급 한 점이 정확하고 명확하지 않은 비트가 명확한지를 확인하고 싶습니다. 또한 oplog 문서에 나타날 수있는 다른 필드가 있는지 알고 싶습니다.

+0

대체로 http://stackoverflow.com/questions/17878835/what-does-the-h-in-oplog-rs-document-stand-for이지만 그 분야는 다음과 같습니다. 아무도 실제로 무엇을 알 수없는 것 같습니다. 그것은 문서화 된 것 같지 않습니다. – Sammaye

+0

SO 링크에 올바른 AFAIK 설명이 있습니다. oplog의 형식은 구현의 세부 사항을 의미하고 MongoDB는 oplog 메커니즘을 조정하거나 완전히 변경할 수있는 기능을 예약하기 때문에 문서화되지 않은 것입니다. 그것을 문서화하면 의도적으로 기대를 창출 할 수 있습니다. – wdberkeley

답변

4
  • 시간은 해시 (긴 서명)
  • TS는 (이하 "\ X11"유형 bsonspec.org에 표시된 내부 타임 스탬프 형식이다;에 대한 api.mongodb.org에서 드라이버의 API 문서를 검색 추가 정보)
  • 당신은 op, ns, o 및 o2에 대해 정확합니다.
  • "v"필드가 있습니다 (이 버전이 oplog 용 스키마를 업데이트 할 수 있다고 추측합니다.).
  • b는 내가 찾을 수있는 모든 삭제 작업에 대해 True이므로 아무 정보도 제공 할 수 없습니다.

가장 좋은 문서 소스는 this입니다. 2014 년 MongoDB World 컨퍼런스에서 Stripe이라는 회사의 프레젠테이션이었으며 몇 가지 샘플 Ruby 코드가 포함되어 있습니다.

+0

"b"는 제거되었지만 주석은 다음과 같이 말합니다. null이 아닌 경우 b : param으로 상대방을 전달할 부울을 지정합니다. 'd', 'u'의 "justOne"또는 "upsert"플래그에 사용됩니다. 참조 : https://github.com/mongodb/mongo/blob/c456786eb2e812440fa6854e2f730b161e6e70ea/src/mongo/db/repl/oplog.cpp#L218-L220 – makhdumi

+1

"t"라는 새로운 필드가 있습니다.이 필드는 선거입니다 복제본의 "용어". 모든 입력란은 https://github.com/mongodb/mongo/blob/master/src/mongo/db/repl/oplog.cpp#L273-L296을 참조하십시오. – makhdumi

관련 문제