Specifications related to MongoDB
Branch: master
Clone or download
ShaneHarvey SPEC-1168 Update transaction spec for sharded transaction recoveryTo…
…ken (#471)

Unpin a session earlier now that the recoveryToken is available.
Test changes:
Introduce topology, useMultipleMongoses, and object: testRunner.
Add tests for sharded recoveryToken behavior.
Add tests for updated session pinning behavior.
Remove skipReason now that Mongos supports writeConcern on commit.
Remove outdated workaround for killAllSessions.
Mention drivers should decrease transactionLifetimeLimitSeconds for testing.
Add mongos-pin-auto-test.py to generate extensive unpinning tests.
Latest commit 884d364 Feb 21, 2019


MongoDB Specifications

This repository holds in progress and completed specification for features of MongoDB, Drivers, and associated products. Also contained is a rudimentary system for producing these documents.

Writing Documents

Write documents using reStructuredText, following the MongoDB Documentation Style Guidelines.

Store all source documents in the source/ directory.

Building Documents

To build documents issue the make command in a local copy of this repository. The output PDFs end up in the build/ directory. The build depends on:

make all will build all documents in the source/ folder. The system builds all targets in build/.

Run make setup to generate (or regenerate) a makefile.generated file which provides specific targets for all files in the source file so you can choose to compile only some of the files that you need. Once generated, running "make [file-name-without-extension]" will rebuild only those files (if needed.)

Use make clean to remove the build/ directory and "make cleanup" to remove the LaTeX by-products from build/.

Converting to JSON

There are many YAML to JSON converters. There are even several converters called yaml2json in NPM. Alas, we are not using yaml2json anymore, but instead the js-yaml package. Use only that converter, so that JSON is formatted consistently.

Run npm install -g js-yaml, then run make in the source directory at the top level of this repository to convert all YAML test files to JSON.


All the specs in this repository are available under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 United States License.

In the future...

  • Templates will have logos, and templates for authorship, copyright, disclaimers, etc.
  • Non-PDF output targets.

If you have specific feature requests, or need help getting things running, please contact samk@10gen.com.