The Journey of 100DaysofCode aka 100DaysofMongoDB (@Aasawari_24)

Day21 as #100DaysofMongoDB as #100daysofcode

It was a fun, interactive session and an amazing day official out of office. We had our first in person event with college students where we had the opportunity to introduce them to community and to MongoDB.

With this, will be introducing in brief about tools and techniques used in Wired Tiger.

  1. Statistics Logging: The logs are always helpful in triaging and in helping better understanding of the issues or operations. The statistics logging proves to be useful in providing performance related information.

  2. Operation Tracking: This provides more visual information on the data in detail.

  3. Performance Monitoring: This allows counting and sampling of various events in hardware. The events are available via Performance Monitoring Unit, CPU Cycles , cache misses, scheduling context, page faults.

  4. Instrumentation and introspection with Xray: This defines collect the Xray traces and analyse them

  5. CPU Flame Graphs: This helps to identify the reasons on CPU call stacks, and generate flame graphs from perf data.

  6. Testing with LLVM LibFuzzer: This is an in-process, fuzzy engine. This explains how to build and run existing fuzzers, implement new ones and visualise coverage provided by the fuzzer.

Let me know if you have questions related to the tools used in WiredTiger.



Day22 as #100DaysofMongoDB as #100daysofcode

WiredTiger comes with a lot of concepts and learning and thus a lot of pods about WiredTiger.

Describing the security concepts of WiredTiger storage.

  1. The WiredTiger database directory has its set of permissions to ensure the security with the right permissions.

  2. No file path modifications are done by wiredTiger. Applications are responsible for their valid data paths to prevent attacks.

  3. The WiredTiger created file system readable and writable by the process owner, however the process owner might change depending on the system.

  4. WIREDTIGER_HOME is the environment variable used for applications used by users other than owners. Hence, these are vulnerable in allowing access to the database.