#At file:///home/lb200670/devel/mysql/falcon-bugs/
2733 lars-erik.bjork@stripped 2008-07-11
Fix for bug#36990 - falcon_initial_allocation does not retain desired value
Completely removed all usage of falcon_initial_allocation
modified:
mysql-test/suite/falcon/r/falcon_options.result
mysql-test/suite/falcon/r/falcon_options2.result
mysql-test/suite/falcon/t/falcon_options2.test
storage/falcon/BackLog.cpp
storage/falcon/Configuration.cpp
storage/falcon/Configuration.h
storage/falcon/Database.cpp
storage/falcon/DatabaseClone.cpp
storage/falcon/Dbb.cpp
storage/falcon/Dbb.h
storage/falcon/IO.cpp
storage/falcon/IOx.h
storage/falcon/RepositoryVolume.cpp
storage/falcon/SRLCreateTableSpace.cpp
storage/falcon/SRLCreateTableSpace.h
storage/falcon/StorageHandler.cpp
storage/falcon/TableSpace.cpp
storage/falcon/TableSpace.h
storage/falcon/TableSpaceManager.cpp
storage/falcon/ha_falcon.cpp
per-file messages:
mysql-test/suite/falcon/r/falcon_options.result
Updated the test not to test on falcon_initial_allocation
mysql-test/suite/falcon/r/falcon_options2.result
Updated the test not to test on falcon_initial_allocation
mysql-test/suite/falcon/t/falcon_options2.test
Updated the test not to test on falcon_initial_allocation
storage/falcon/BackLog.cpp
No longer pass the initial allocation when creating a file
storage/falcon/Configuration.cpp
Removed all usage of falcon_initial_allocation and initialAllocation
storage/falcon/Configuration.h
Removed the variable initialAllocation
storage/falcon/Database.cpp
No longer pass the initial allocation when creating a file
storage/falcon/DatabaseClone.cpp
No longer pass the initial allocation when creating a file
storage/falcon/Dbb.cpp
No longer pass the initial allocation when creating a file
storage/falcon/Dbb.h
No longer pass the initial allocation when creating a file
storage/falcon/IO.cpp
No longer pass the initial allocation when creating a file.
Removed the code that handles the initial allocation when creating a file
storage/falcon/IOx.h
No longer pass the initial allocation when creating a file
storage/falcon/RepositoryVolume.cpp
No longer pass the initial allocation when creating a file
storage/falcon/SRLCreateTableSpace.cpp
Removed commented-out code regarding the initial size of a tablespace
storage/falcon/SRLCreateTableSpace.h
Removed the (commented-out) variable initialSize
storage/falcon/StorageHandler.cpp
No longer pass the initial allocation when creating a file. I kept it in the signatures of the methods as it was the first of several default parameters. When removing the rest, extentSize and such, we can safely remove initialSize as well
storage/falcon/TableSpace.cpp
No longer pass the initial allocation when creating a file.
Removed code regarding the removed variable initialSize
storage/falcon/TableSpace.h
Removed the variable initialSize and updated the constructors (also the commented-out one)
storage/falcon/TableSpaceManager.cpp
Removed usage of initialSize from some commented-out code
storage/falcon/ha_falcon.cpp
No longer pass the initial allocation when creating a file.
Removed the falcon_initial_allocation variable and the creation of the sysvar
=== modified file 'mysql-test/suite/falcon/r/falcon_options.result'
--- a/mysql-test/suite/falcon/r/falcon_options.result 2008-07-10 19:00:14 +0000
+++ b/mysql-test/suite/falcon/r/falcon_options.result 2008-07-11 12:41:45 +0000
@@ -9,7 +9,6 @@ falcon_debug_trace 0
falcon_direct_io 1
falcon_gopher_threads 5
falcon_index_chill_threshold 4194304
-falcon_initial_allocation 0
falcon_io_threads 2
falcon_large_blob_threshold 160000
falcon_lock_wait_timeout 50
@@ -92,7 +91,6 @@ FALCON_DEBUG_TRACE 0
FALCON_DIRECT_IO 1
FALCON_GOPHER_THREADS 5
FALCON_INDEX_CHILL_THRESHOLD 1073741824
-FALCON_INITIAL_ALLOCATION 0
FALCON_IO_THREADS 2
FALCON_LARGE_BLOB_THRESHOLD 160000
FALCON_LOCK_WAIT_TIMEOUT 50
=== modified file 'mysql-test/suite/falcon/r/falcon_options2.result'
--- a/mysql-test/suite/falcon/r/falcon_options2.result 2008-07-10 19:00:14 +0000
+++ b/mysql-test/suite/falcon/r/falcon_options2.result 2008-07-11 12:41:45 +0000
@@ -10,7 +10,6 @@ FALCON_DEBUG_TRACE 0
FALCON_DIRECT_IO 1
FALCON_GOPHER_THREADS 5
FALCON_INDEX_CHILL_THRESHOLD 4194304
-FALCON_INITIAL_ALLOCATION 0
FALCON_IO_THREADS 2
FALCON_LARGE_BLOB_THRESHOLD 160000
FALCON_LOCK_WAIT_TIMEOUT 50
@@ -54,9 +53,6 @@ SELECT @@falcon_gopher_threads;
SELECT @@falcon_index_chill_threshold;
@@falcon_index_chill_threshold
4194304
-SELECT @@falcon_initial_allocation;
-@@falcon_initial_allocation
-0
SELECT @@falcon_io_threads;
@@falcon_io_threads
2
=== modified file 'mysql-test/suite/falcon/t/falcon_options2.test'
--- a/mysql-test/suite/falcon/t/falcon_options2.test 2008-07-10 19:00:14 +0000
+++ b/mysql-test/suite/falcon/t/falcon_options2.test 2008-07-11 12:41:45 +0000
@@ -14,7 +14,6 @@ SELECT @@falcon_debug_trace;
SELECT @@falcon_direct_io;
SELECT @@falcon_gopher_threads;
SELECT @@falcon_index_chill_threshold;
-SELECT @@falcon_initial_allocation;
SELECT @@falcon_io_threads;
SELECT @@falcon_large_blob_threshold;
SELECT @@falcon_lock_wait_timeout;
=== modified file 'storage/falcon/BackLog.cpp'
--- a/storage/falcon/BackLog.cpp 2008-04-12 02:22:50 +0000
+++ b/storage/falcon/BackLog.cpp 2008-07-11 12:41:45 +0000
@@ -38,7 +38,7 @@ BackLog::BackLog(Database *db, const cha
database = db;
dbb = new Dbb(database->dbb, 0);
dbb->createPath(fileName);
- dbb->create(fileName, dbb->pageSize, 0, HdrTableSpace, 0, NULL, 0);
+ dbb->create(fileName, dbb->pageSize, 0, HdrTableSpace, 0, NULL);
dbb->noLog = true;
dbb->tableSpaceId = -1;
int32 sectionId = Section::createSection (dbb, NO_TRANSACTION);
=== modified file 'storage/falcon/Configuration.cpp'
--- a/storage/falcon/Configuration.cpp 2008-07-10 09:01:32 +0000
+++ b/storage/falcon/Configuration.cpp 2008-07-11 12:41:45 +0000
@@ -62,7 +62,6 @@
extern uint64 max_memory_address;
extern uint64 falcon_record_memory_max;
-extern uint64 falcon_initial_allocation;
extern uint falcon_allocation_extent;
extern uint64 falcon_page_cache_size;
//extern uint falcon_debug_mask;
@@ -116,7 +115,6 @@ Configuration::Configuration(const char
recordMemoryMax = falcon_record_memory_max;
recordScavengeThresholdPct = falcon_record_scavenge_threshold;
recordScavengeFloorPct = falcon_record_scavenge_floor;
- initialAllocation = falcon_initial_allocation;
allocationExtent = falcon_allocation_extent;
serialLogWindows = falcon_serial_log_buffers;
pageCacheSize = falcon_page_cache_size;
@@ -164,7 +162,6 @@ Configuration::Configuration(const char
recordScavengeThreshold = (recordMemoryMax * 100) / recordScavengeThresholdPct;
recordScavengeFloor = (recordMemoryMax * 100) / recordScavengeFloorPct;
serialLogWindows = 10;
- initialAllocation = 0;
allocationExtent = 10;
pageCacheSize = getMemorySize(PAGE_CACHE_MEMORY);
indexChillThreshold = 4 * ONE_MB;
=== modified file 'storage/falcon/Configuration.h'
--- a/storage/falcon/Configuration.h 2008-03-11 16:15:47 +0000
+++ b/storage/falcon/Configuration.h 2008-07-11 12:41:45 +0000
@@ -49,7 +49,6 @@ public:
uint64 recordScavengeFloor;
int recordScavengeThresholdPct;
int recordScavengeFloorPct;
- uint64 initialAllocation;
uint64 allocationExtent;
uint64 pageCacheSize;
int64 javaInitialAllocation;
=== modified file 'storage/falcon/Database.cpp'
--- a/storage/falcon/Database.cpp 2008-06-17 17:41:54 +0000
+++ b/storage/falcon/Database.cpp 2008-07-11 12:41:45 +0000
@@ -634,7 +634,7 @@ void Database::createDatabase(const char
int page_size = PAGE_SIZE;
#endif
- cache = dbb->create(filename, page_size, configuration->pageCacheSize, HdrDatabaseFile, 0, "", 0);
+ cache = dbb->create(filename, page_size, configuration->pageCacheSize, HdrDatabaseFile, 0, "");
try
{
=== modified file 'storage/falcon/DatabaseClone.cpp'
--- a/storage/falcon/DatabaseClone.cpp 2007-10-08 17:20:26 +0000
+++ b/storage/falcon/DatabaseClone.cpp 2008-07-11 12:41:45 +0000
@@ -50,7 +50,7 @@ void DatabaseClone::createFile(const cha
shadow = new IO;
shadow->pageSize = dbb->pageSize;
shadow->dbb = dbb;
- shadow->createFile(fileName, 0);
+ shadow->createFile(fileName);
}
const char* DatabaseClone::getFileName(void)
=== modified file 'storage/falcon/Dbb.cpp'
--- a/storage/falcon/Dbb.cpp 2008-04-12 02:22:50 +0000
+++ b/storage/falcon/Dbb.cpp 2008-07-11 12:41:45 +0000
@@ -147,7 +147,7 @@ Dbb::~Dbb()
dbb->close();
}
-Cache* Dbb::create(const char * fileName, int pageSz, int64 cacheSize, FileType fileType, TransId transId, const char *logRoot, uint64 initialAllocation)
+Cache* Dbb::create(const char * fileName, int pageSz, int64 cacheSize, FileType fileType, TransId transId, const char *logRoot)
{
serialLog = database->serialLog;
odsVersion = ODS_VERSION;
@@ -155,7 +155,7 @@ Cache* Dbb::create(const char * fileName
sequence = 1;
init(pageSz, (int) ((cacheSize + pageSz - 1) / pageSz));
- createFile(fileName, initialAllocation);
+ createFile(fileName);
try
{
Hdr::create(this, fileType, transId, logRoot);
=== modified file 'storage/falcon/Dbb.h'
--- a/storage/falcon/Dbb.h 2008-03-27 06:09:29 +0000
+++ b/storage/falcon/Dbb.h 2008-07-11 12:41:45 +0000
@@ -168,7 +168,7 @@ public:
Bdb* fakePage (int32 pageNumber, PageType pageType, TransId transId);
Bdb* trialFetch(int32 pageNumber, PageType pageType, LockType lockType);
void init(int pageSz, int cacheSize);
- Cache* create (const char *fileName, int pageSize, int64 cacheSize, FileType fileType, TransId transId, const char *logRoot, uint64 initialAllocation);
+ Cache* create (const char *fileName, int pageSize, int64 cacheSize, FileType fileType, TransId transId, const char *logRoot);
void validateCache(void);
void logUpdatedRecords(Transaction* transaction, RecordVersion* records, bool chill = false);
void logIndexUpdates(DeferredIndex* deferredIndex);
=== modified file 'storage/falcon/IO.cpp'
--- a/storage/falcon/IO.cpp 2008-07-08 21:36:34 +0000
+++ b/storage/falcon/IO.cpp 2008-07-11 12:41:45 +0000
@@ -184,7 +184,7 @@ bool IO::openFile(const char * name, boo
return fileId != -1;
}
-bool IO::createFile(const char *name, uint64 initialAllocation)
+bool IO::createFile(const char *name)
{
Log::debug("IO::createFile: creating file \"%s\"\n", name);
@@ -218,26 +218,6 @@ bool IO::createFile(const char *name, ui
#endif
#endif
- if (initialAllocation)
- {
- UCHAR *raw = new UCHAR[8192 * 257];
- UCHAR *aligned = (UCHAR*) (((UIPTR) raw + 8191) / 8192 * 8192);
- uint size = 8192 * 256;
- memset(aligned, 0, size);
- uint64 offset = 0;
-
- for (uint64 remaining = initialAllocation; remaining;)
- {
- uint n = (int) MIN(remaining, size);
- write(offset, n, aligned);
- offset += n;
- remaining -= n;
- }
-
- delete [] raw;
- sync();
- }
-
return fileId != -1;
}
=== modified file 'storage/falcon/IOx.h'
--- a/storage/falcon/IOx.h 2008-07-07 14:00:45 +0000
+++ b/storage/falcon/IOx.h 2008-07-11 12:41:45 +0000
@@ -63,7 +63,7 @@ public:
void writePage (Bdb *buffer, int type);
void writePages(int32 pageNumber, int length, const UCHAR* data, int type);
void readPage (Bdb *page);
- bool createFile (const char *name, uint64 initialAllocation);
+ bool createFile (const char *name);
bool openFile (const char *name, bool readOnly);
void longSeek(int64 offset);
void read(int64 offset, int length, UCHAR* buffer);
=== modified file 'storage/falcon/RepositoryVolume.cpp'
--- a/storage/falcon/RepositoryVolume.cpp 2008-03-28 22:44:36 +0000
+++ b/storage/falcon/RepositoryVolume.cpp 2008-07-11 12:41:45 +0000
@@ -232,7 +232,7 @@ void RepositoryVolume::makeWritable()
void RepositoryVolume::create()
{
IO::createPath (fileName);
- dbb->create(fileName, dbb->pageSize, 0, HdrRepositoryFile, 0, NULL, 0);
+ dbb->create(fileName, dbb->pageSize, 0, HdrRepositoryFile, 0, NULL);
Sync syncDDL(&database->syncSysDDL, "RepositoryVolume::create");
Transaction *transaction = database->getSystemTransaction();
syncDDL.lock(Exclusive);
=== modified file 'storage/falcon/SRLCreateTableSpace.cpp'
--- a/storage/falcon/SRLCreateTableSpace.cpp 2008-04-05 22:09:17 +0000
+++ b/storage/falcon/SRLCreateTableSpace.cpp 2008-07-11 12:41:45 +0000
@@ -53,7 +53,6 @@ void SRLCreateTableSpace::append(TableSp
putData(len, (const UCHAR*) p);
putInt(tableSpace->type);
/***
- putInt64(tableSpace->initialSize);
putInt64(tableSpace->extentSize);
putInt64(tableSpace->autoextendSize);
putInt64(tableSpace->maxSize);
@@ -82,7 +81,6 @@ void SRLCreateTableSpace::read()
if (control->version >= srlVersion15)
{
/***
- initialSize = getInt64();
extentSize = getInt64();
autoextendSize= getInt64();
maxSize = getInt64();
@@ -95,7 +93,6 @@ void SRLCreateTableSpace::read()
else
{
/***
- initialSize = 0;
extentSize = 0;
autoextendSize= 0;
maxSize = 0;
@@ -112,7 +109,6 @@ void SRLCreateTableSpace::pass1()
TableSpaceInit tsInit;
/***
- tsInit.initialSize = initialSize;
tsInit.extentSize = extentSize;
tsInit.autoextendSize = autoextendSize;
tsInit.maxSize = maxSize;
=== modified file 'storage/falcon/SRLCreateTableSpace.h'
--- a/storage/falcon/SRLCreateTableSpace.h 2008-04-05 22:09:17 +0000
+++ b/storage/falcon/SRLCreateTableSpace.h 2008-07-11 12:41:45 +0000
@@ -49,7 +49,6 @@ public:
int filenameLength;
int type;
/***
- int64 initialSize;
int64 extentSize;
int64 autoExtendSize;
int64 maxSize;
=== modified file 'storage/falcon/StorageHandler.cpp'
--- a/storage/falcon/StorageHandler.cpp 2008-07-10 19:00:14 +0000
+++ b/storage/falcon/StorageHandler.cpp 2008-07-11 12:41:45 +0000
@@ -51,7 +51,6 @@ struct StorageSavepoint {
int savepoint;
};
-extern uint64 falcon_initial_allocation;
static const char *createTempSpace = "upgrade tablespace " TEMPORARY_TABLESPACE " filename '" FALCON_TEMPORARY "'";
//static const char *dropTempSpace = "drop tablespace " TEMPORARY_TABLESPACE;
@@ -465,24 +464,24 @@ Connection* StorageHandler::getDictionar
}
JString StorageHandler::genCreateTableSpace(const char* tableSpaceName, const char* filename,
- unsigned long long initialSize,
- unsigned long long extentSize,
+ unsigned long long initialSize,
+ unsigned long long extentSize,
unsigned long long autoextendSize,
unsigned long long maxSize,
int nodegroup, bool wait, const char* comment)
{
CmdGen gen;
/***
- gen.gen("create tablespace \"%s\" filename '%s' initial_size " I64FORMAT " extent_size " I64FORMAT
+ gen.gen("create tablespace \"%s\" filename '%s' extent_size " I64FORMAT
" autoextend_size " I64FORMAT " max_size " I64FORMAT " nodegroup %d wait %d comment '%s'",
- tableSpaceName, filename, initialSize, extentSize, autoextendSize, maxSize, nodegroup, (int)wait, comment ? comment : "");
+ tableSpaceName, filename, extentSize, autoextendSize, maxSize, nodegroup, (int)wait, comment ? comment : "");
***/
gen.gen("create tablespace \"%s\" filename '%s' comment '%s'", tableSpaceName, filename, comment ? comment : "");
return (gen.getString());
}
int StorageHandler::createTablespace(const char* tableSpaceName, const char* filename,
- unsigned long long initialSize,
+ unsigned long long initialSize,
unsigned long long extentSize,
unsigned long long autoextendSize,
unsigned long long maxSize,
@@ -998,7 +997,7 @@ void StorageHandler::initialize(void)
IO::deleteFile(FALCON_TEMPORARY);
dictionaryConnection = defaultDatabase->getOpenConnection();
Statement *statement = dictionaryConnection->createStatement();
- JString createTableSpace = genCreateTableSpace(DEFAULT_TABLESPACE, FALCON_USER, falcon_initial_allocation);
+ JString createTableSpace = genCreateTableSpace(DEFAULT_TABLESPACE, FALCON_USER);
statement->executeUpdate(createTableSpace);
for (const char **ddl = falconSchema; *ddl; ++ddl)
=== modified file 'storage/falcon/TableSpace.cpp'
--- a/storage/falcon/TableSpace.cpp 2008-04-05 22:09:17 +0000
+++ b/storage/falcon/TableSpace.cpp 2008-07-11 12:41:45 +0000
@@ -50,7 +50,6 @@ TableSpace::TableSpace(Database *db, con
TableSpaceInit spaceInit;
TableSpaceInit *init = (tsInit ? tsInit : &spaceInit);
- initialSize = init->initialSize;
comment = init->comment;
/***
extentSize = init->extentSize;
@@ -132,7 +131,7 @@ void TableSpace::open()
void TableSpace::create()
{
dbb->createPath(filename);
- dbb->create(filename, dbb->pageSize, 0, HdrTableSpace, 0, NULL, initialSize);
+ dbb->create(filename, dbb->pageSize, 0, HdrTableSpace, 0, NULL);
active = true;
dbb->flush();
}
@@ -170,7 +169,6 @@ void TableSpace::save(void)
statement->setString(n++, filename);
statement->setInt(n++, type);
/***
- statement->setLong(n++, initialSize);
statement->setLong(n++, extentSize);
statement->setLong(n++, autoExtendSize);
statement->setLong(n++, maxSize);
=== modified file 'storage/falcon/TableSpace.h'
--- a/storage/falcon/TableSpace.h 2008-04-05 22:09:17 +0000
+++ b/storage/falcon/TableSpace.h 2008-07-11 12:41:45 +0000
@@ -29,16 +29,15 @@ static const int TABLESPACE_TYPE_REPOSIT
struct TableSpaceInit
{
- int64 initialSize;
JString comment;
- TableSpaceInit(): initialSize(0), comment("") {}
+ TableSpaceInit(): comment("") {}
/***
int64 extentSize;
int64 autoExtendSize;
int64 maxSize;
int nodegroup;
int wait;
- TableSpaceInit(): initialSize(0), extentSize(0), autoExtendSize(0), maxSize(0), nodegroup(0), wait(0), comment("") {}
+ TableSpaceInit(): extentSize(0), autoExtendSize(0), maxSize(0), nodegroup(0), wait(0), comment("") {}
***/
};
@@ -75,7 +74,6 @@ public:
bool active;
bool needSave;
- int64 initialSize;
/***
int64 extentSize;
int64 autoExtendSize;
=== modified file 'storage/falcon/TableSpaceManager.cpp'
--- a/storage/falcon/TableSpaceManager.cpp 2008-07-09 19:23:23 +0000
+++ b/storage/falcon/TableSpaceManager.cpp 2008-07-11 12:41:45 +0000
@@ -118,7 +118,6 @@ TableSpace* TableSpaceManager::findTable
TableSpaceInit tsInit;
/***
- tsInit.initialSize = resultSet->getLong(n++);
tsInit.extentSize = resultSet->getLong(n++);
tsInit.autoExtendSize = resultSet->getLong(n++);
tsInit.maxSize = resultSet->getLong(n++);
@@ -239,7 +238,6 @@ void TableSpaceManager::bootstrap(int se
p = EncodedDataStream::decode(p, &fileName, true);
p = EncodedDataStream::decode(p, &type, true);
/***
- p = EncodedDataStream::decode(p, &initialSize, true);
p = EncodedDataStream::decode(p, &extentSsize, true);
p = EncodedDataStream::decode(p, &autoExtendSize, true);
p = EncodedDataStream::decode(p, &maxSize, true);
@@ -248,7 +246,6 @@ void TableSpaceManager::bootstrap(int se
p = EncodedDataStream::decode(p, &comment, true);
TableSpaceInit tsInit;
- tsInit.initialSize = initialSize.getQuad();
tsInit.extentSize = extentSize.getQuad();
tsInit.autoExtendSize = autoExtendSize.getQuad();
tsInit.maxSize = maxSize.getQuad();
=== modified file 'storage/falcon/ha_falcon.cpp'
--- a/storage/falcon/ha_falcon.cpp 2008-07-09 10:23:27 +0000
+++ b/storage/falcon/ha_falcon.cpp 2008-07-11 12:41:45 +0000
@@ -83,7 +83,6 @@ static StorageHandler *storageHandler;
#undef PARAMETER_BOOL
ulonglong falcon_record_memory_max;
-ulonglong falcon_initial_allocation;
ulonglong falcon_serial_log_file_size;
uint falcon_allocation_extent;
ulonglong falcon_page_cache_size;
@@ -2073,7 +2072,6 @@ int StorageInterface::alter_tablespace(h
case CREATE_TABLESPACE:
ret = storageHandler->createTablespace( ts_info->tablespace_name,
ts_info->data_file_name,
- ts_info->initial_size,
ts_info->extent_size,
ts_info->autoextend_size,
ts_info->max_size,
@@ -3630,11 +3628,6 @@ static MYSQL_SYSVAR_ULONGLONG(record_mem
"The maximum size of the record memory cache.",
NULL, StorageInterface::updateRecordMemoryMax, LL(250)<<20, 0, (ulonglong) max_memory_address, LL(1)<<20);
-static MYSQL_SYSVAR_ULONGLONG(initial_allocation, falcon_initial_allocation,
- PLUGIN_VAR_RQCMDARG, // | PLUGIN_VAR_READONLY,
- "Initial allocation (in bytes) of falcon user tablespace.",
- NULL, NULL, 0, 0, LL(4000000000), LL(1)<<20);
-
static MYSQL_SYSVAR_ULONGLONG(serial_log_file_size, falcon_serial_log_file_size,
PLUGIN_VAR_RQCMDARG,
"If serial log file grows larger than this value, it will be truncated when it is reused",
@@ -3683,7 +3676,6 @@ static struct st_mysql_sys_var* falconVa
MYSQL_SYSVAR(scavenge_schedule),
//MYSQL_SYSVAR(debug_mask),
MYSQL_SYSVAR(record_memory_max),
- MYSQL_SYSVAR(initial_allocation),
//MYSQL_SYSVAR(allocation_extent),
MYSQL_SYSVAR(page_cache_size),
MYSQL_SYSVAR(consistent_read),