Skip to content

Instantly share code, notes, and snippets.

@joepol
Last active June 13, 2022 15:55
Show Gist options
  • Save joepol/940d1ef00924c52920f4606d4166139d to your computer and use it in GitHub Desktop.
Save joepol/940d1ef00924c52920f4606d4166139d to your computer and use it in GitHub Desktop.
Things to examine before committing a new feature :

Things to examine before committing a new feature :

  1. OS
    • what will happen in Linux/Win/AIX/POWERPC? (vice versa)
    • Is agent / db on other OSs acts the same? (process per connection, …)
    • Do common parts of the code use os agnostic code ? (types.h, no OS specific API, …)
    • Environments
      • K8S
      • BigData
  2. Memory
    • Heap / pool allocation
    • Deletion - what happens at deletion of the object, container (pool deleted, pointers still exist)
    • When does this memory becomes invalid?
    • Can it be used uninitialized / deleted / destructed ?
    • TLS - if same thread will be reused? (For same connection for instance, is TLS in Dynamic lib?)
  3. Edge cases
    • collector goes down
      • crashed with db
      • stopped
    • Agent goes down - are there any leftovers in db?
    • Configuration is changed during runtime (after init)
    • Open mode connections
    • Encrypted connections
    • Race conditions? ____________
    • Initialization order (db’s after agent and vice versa)
    • Recursion - might loop infinitely?
    • Overflows (if we get more than bytes than existing buffer?)
    • Are all code flows covered (what happens when a basic obvious function returns false?)
  4. Scale
    • High load - short / long connections
    • High payload (large queries)
    • Frequency - how much times is expected to run for different cases
  5. Security
    • Might be blocked by antivirus?
    • Permissions
    • Can some one else affect this functionality ? (A file on disk, an object , ipc)
  6. Co-existence
    • Multiple db instances on same machine?
    • Multiple different db’s on same machine?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment