1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-30 16:24:05 +03:00

First step for WL 2025

Not yet fully working
Scan reads work fine, not scan updates


ndb/include/kernel/ndb_limits.h:
  Introducing a new parameter plus increasing the max no of parallel
  operations per scan in LQH, first step in WL 2025
ndb/include/kernel/signaldata/ScanFrag.hpp:
  Only need one clientOpPtr
  Concurrency is batch_size to use in this scan
  batch_byte_size is max no of bytes sent in a batch
  first_batch_size is the batch size in the first batch
ndb/include/kernel/signaldata/ScanTab.hpp:
  apiOperationPtr is sent as long signal data
  batch_byte_size and first_batch_size is needed for further transport
  to LQH
  batch size can now be bigger than before
ndb/include/kernel/signaldata/TcKeyReq.hpp:
  More concurrency means more size for scanInfo also in TCKEYREQ
ndb/include/ndbapi/NdbReceiver.hpp:
  New subroutine to caclculate batch size and similar parameters
ndb/include/ndbapi/NdbScanOperation.hpp:
  batch size calculated before sending, not necessary to store anymore
ndb/src/common/debugger/signaldata/ScanTab.cpp:
  Updated signal printer for SCAN_TABREQ
ndb/src/kernel/blocks/backup/Backup.cpp:
  Fixes to make it compile, not fixed for BACKUP being useful yet
ndb/src/kernel/blocks/dblqh/Dblqh.hpp:
  Removed parameters no longer needed and added some new ones.
ndb/src/kernel/blocks/dblqh/DblqhMain.cpp:
  Fix for cmaxAccOps that was using the wrong constant
  Removed old code
  New SCAN_FRAGREQ signal
ndb/src/kernel/blocks/dbtc/Dbtc.hpp:
  New variables
  Removed dead code
ndb/src/kernel/blocks/dbtc/DbtcMain.cpp:
  New SCAN_TABREQ, SCAN_FRAGREQ, SCAN_FRAGCONF and SCAN_TABCONF
  Fixed some error handling to be more efficient
ndb/src/kernel/blocks/suma/Suma.cpp:
  Fixes to make it compile, not yet usable for SUMA features
ndb/src/kernel/vm/Configuration.cpp:
  Fix for wrong constant
ndb/src/ndbapi/NdbApiSignal.cpp:
  Fix for not using constants
ndb/src/ndbapi/NdbApiSignal.hpp:
  Added possibility to get signal sending node from signal
ndb/src/ndbapi/NdbConnectionScan.cpp:
  Moved declaration
ndb/src/ndbapi/NdbReceiver.cpp:
  New routine to calculate batch_size etc.
ndb/src/ndbapi/NdbScanOperation.cpp:
  Various fixes for sending SCAN_TABREQ and other stuff
This commit is contained in:
unknown
2004-08-09 17:43:15 +02:00
parent 01e1451ad8
commit fd566261a4
19 changed files with 254 additions and 236 deletions

View File

@ -33,7 +33,7 @@ class ScanFragReq {
*/
friend class Dblqh;
public:
STATIC_CONST( SignalLength = 25 );
STATIC_CONST( SignalLength = 13 );
public:
Uint32 senderData;
@ -45,9 +45,11 @@ public:
Uint32 schemaVersion;
Uint32 transId1;
Uint32 transId2;
Uint32 clientOpPtr[MAX_PARALLEL_OP_PER_SCAN];
Uint32 clientOpPtr;
Uint32 concurrency;
Uint32 batch_byte_size;
Uint32 first_batch_size;
static Uint32 getConcurrency(const Uint32 & requestInfo);
static Uint32 getLockMode(const Uint32 & requestInfo);
static Uint32 getHoldLockFlag(const Uint32 & requestInfo);
static Uint32 getKeyinfoFlag(const Uint32 & requestInfo);
@ -56,7 +58,6 @@ public:
static Uint32 getAttrLen(const Uint32 & requestInfo);
static Uint32 getScanPrio(const Uint32 & requestInfo);
static void setConcurrency(Uint32 & requestInfo, Uint32 concurrency);
static void setLockMode(Uint32 & requestInfo, Uint32 lockMode);
static void setHoldLockFlag(Uint32 & requestInfo, Uint32 holdLock);
static void setKeyinfoFlag(Uint32 & requestInfo, Uint32 keyinfo);
@ -79,7 +80,6 @@ class KeyInfo20 {
friend class NdbOperation;
friend class NdbScanReceiver;
public:
//STATIC_CONST( SignalLength = 21 );
STATIC_CONST( HeaderLength = 5);
STATIC_CONST( DataLength = 20 );
@ -110,15 +110,15 @@ class ScanFragConf {
friend class Backup;
friend class Suma;
public:
STATIC_CONST( SignalLength = 21 );
STATIC_CONST( SignalLength = 6 );
public:
Uint32 senderData;
Uint32 completedOps;
Uint32 fragmentCompleted;
Uint32 opReturnDataLen[16];
Uint32 transId1;
Uint32 transId2;
Uint32 total_len;
};
class ScanFragRef {
@ -188,7 +188,6 @@ public:
* Request Info
*
* a = Length of attrinfo - 16 Bits (16-31)
* c = Concurrency - 5 Bits (0-4) -> Max 31
* l = Lock Mode - 1 Bit 5
* h = Hold lock - 1 Bit 7
* k = Keyinfo - 1 Bit 8
@ -198,11 +197,8 @@ public:
*
* 1111111111222222222233
* 01234567890123456789012345678901
* ccccclxhkr ppppaaaaaaaaaaaaaaaa
* lxhkr ppppaaaaaaaaaaaaaaaa
*/
#define SF_CONCURRENCY_SHIFT (0)
#define SF_CONCURRENCY_MASK (31)
#define SF_LOCK_MODE_SHIFT (5)
#define SF_LOCK_MODE_MASK (1)
@ -217,12 +213,6 @@ public:
#define SF_PRIO_SHIFT 12
#define SF_PRIO_MASK 15
inline
Uint32
ScanFragReq::getConcurrency(const Uint32 & requestInfo){
return (requestInfo >> SF_CONCURRENCY_SHIFT) & SF_CONCURRENCY_MASK;
}
inline
Uint32
ScanFragReq::getLockMode(const Uint32 & requestInfo){
@ -272,13 +262,6 @@ ScanFragReq::setScanPrio(UintR & requestInfo, UintR val){
requestInfo |= (val << SF_PRIO_SHIFT);
}
inline
void
ScanFragReq::setConcurrency(UintR & requestInfo, UintR val){
ASSERT_MAX(val, SF_CONCURRENCY_MASK, "ScanFragReq::setConcurrency");
requestInfo |= (val << SF_CONCURRENCY_SHIFT);
}
inline
void
ScanFragReq::setLockMode(UintR & requestInfo, UintR val){
@ -324,7 +307,7 @@ ScanFragReq::setAttrLen(UintR & requestInfo, UintR val){
inline
Uint32
KeyInfo20::setScanInfo(Uint32 opNo, Uint32 scanNo){
ASSERT_MAX(opNo, 15, "KeyInfo20::setScanInfo");
ASSERT_MAX(opNo, 1023, "KeyInfo20::setScanInfo");
ASSERT_MAX(scanNo, 255, "KeyInfo20::setScanInfo");
return (opNo << 8) + scanNo;
}
@ -338,7 +321,7 @@ KeyInfo20::getScanNo(Uint32 scanInfo){
inline
Uint32
KeyInfo20::getScanOp(Uint32 scanInfo){
return (scanInfo >> 8) & 0xF;
return (scanInfo >> 8) & 0x1023;
}
#endif