Version 11.3.0
General information on portability

Supported CPU architectures

The supported list of CPU target architectures may be found by inspecting the WT_ARCH variable present in the cmake configuration. Note that the loongarch64 platform is community-supported.

POSIX compliance

WiredTiger aims to be generally portable to any 64-bit system supporting the ANSI C11 and POSIX 1003.1 standards. Unfortunately, the real world is a little messier than the standards dictate, so WiredTiger may not compile (or work correctly) on every POSIX platform.

If WiredTiger does fail to compile (or work correctly) on your platform, we welcome either a bug report or a pull request.

Testing

To see a list of the CPU and operating system combinations WiredTiger is currently tested on, please visit our test results page. This list is determined by the availability of suitable machines. The lack of an operating system or CPU architecture on this page does not make it unsupported.

Hardware requirements of WiredTiger

Atomic reads and writes

WiredTiger requires that pointers (void *) and variables that are 8, 16, 32 and 64 bits to be read/written to atomically. For example if the first 8 bits of a 32 bit write took place and then separately the remaining 24 bits were written, another thread of control could read the memory location after the first 8 bits were written but before the subsequent 24 bits, seeing an invalid state. If two threads of control attempt to write to the same location simultaneously, the result must be one of the two values, not some combination of the both.

As WiredTiger uses unmarked atomic reads it requires that the compiler does not insert additional writes to memory, even if that write matches the value recently loaded. These writes are often referred to as invented stores. WiredTiger does not rely on unaligned reads and writes being atomic, nor any writes greater than 8 bytes.