YottaDB / YDB

Mirrored from https://gitlab.com/YottaDB/DB/YDB
Other
76 stars 37 forks source link

Option to reduce IO impact of MUPIP REORG #233

Closed nars1 closed 6 years ago

nars1 commented 6 years ago

Final Release Note

MUPIP -REORG_SLEEP_NSEC= specifies the number of nanoseconds that a MUPIP REORG process operating between blocks that it processes, with default value of 0 and a maximum of 999999999 (i.e. 999,999,999, or 1 nanosecond less than 1 second). Using non-zero values reduces the IO impact of MUPIP REORG, at the cost of increasing the duration of the operation. Note that the existing environment variable ydb_poollimit / gtm_poollimit is the appropriate technique to limit the impact of MUPIP REORG on global buffers; the -reorg_sleep_nsec can be used to limit the impact on the IO subsystem. (#233)

Description

MUPIP REORG can improve database layout and in turn performance. But it can slow down other concurrent users of the database (e.g. restarts) due to its heavyweight use of the database (reads and updates almost every block in the database file). Hence the desire to let the user control the speed of MUPIP REORG.

Draft Release Note

MUPIP SET -REORG_SLEEP_NSEC= on a database file specifies the number of nanoseconds that any MUPIP REORG process operating on that database sleeps before processing every block. The default value is 0. The maximum value of supported is 999,999,999 (i.e. 1 nanosecond less than 1 second).