ndb_limits.h
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:4k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1. /* Copyright (C) 2003 MySQL AB
  2.    This program is free software; you can redistribute it and/or modify
  3.    it under the terms of the GNU General Public License as published by
  4.    the Free Software Foundation; either version 2 of the License, or
  5.    (at your option) any later version.
  6.    This program is distributed in the hope that it will be useful,
  7.    but WITHOUT ANY WARRANTY; without even the implied warranty of
  8.    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  9.    GNU General Public License for more details.
  10.    You should have received a copy of the GNU General Public License
  11.    along with this program; if not, write to the Free Software
  12.    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
  13. #ifndef NDB_LIMITS_H
  14. #define NDB_LIMITS_H
  15. #define RNIL    0xffffff00
  16. /**
  17.  * Note that actual value = MAX_NODES - 1,
  18.  *  since NodeId = 0 can not be used
  19.  */
  20. #define MAX_NDB_NODES 49
  21. #define MAX_NODES     64
  22. /**
  23.  * MAX_API_NODES = MAX_NODES - No of NDB Nodes in use
  24.  */
  25. /**
  26.  * The maximum number of replicas in the system
  27.  */
  28. #define MAX_REPLICAS 4
  29. /**
  30.  * The maximum number of local checkpoints stored at a time
  31.  */
  32. #define MAX_LCP_STORED 3
  33. /**
  34.  * The maximum number of log execution rounds at system restart
  35.  */
  36. #define MAX_LOG_EXEC 4
  37. /**
  38.  * The maximum number of tuples per page
  39.  **/
  40. #define MAX_TUPLES_PER_PAGE 8191
  41. #define MAX_TUPLES_BITS 13  /* 13 bits = 8191 tuples per page */
  42. /*#define MAX_NO_OF_TUPLEKEY 16 Not currently used */
  43. #define MAX_TABLES 1600
  44. #define MAX_TAB_NAME_SIZE 128
  45. #define MAX_ATTR_NAME_SIZE 32
  46. #define MAX_ATTR_DEFAULT_VALUE_SIZE 128
  47. #define MAX_ATTRIBUTES_IN_TABLE 128
  48. #define MAX_ATTRIBUTES_IN_INDEX 32
  49. #define MAX_TUPLE_SIZE_IN_WORDS 2013
  50. #define MAX_FIXED_KEY_LENGTH_IN_WORDS 8
  51. #define MAX_KEY_SIZE_IN_WORDS 1023
  52. #define MAX_FRM_DATA_SIZE 6000
  53. #define MIN_ATTRBUF ((MAX_ATTRIBUTES_IN_TABLE/24) + 1)
  54. /*
  55.  * Max Number of Records to fetch per SCAN_NEXTREQ in a scan in LQH. The
  56.  * API can order a multiple of this number of records at a time since
  57.  * fragments can be scanned in parallel.
  58.  */
  59. #define MAX_PARALLEL_OP_PER_SCAN 992
  60. /*
  61. * The default batch size. Configurable parameter.
  62. */
  63. #define DEF_BATCH_SIZE 64
  64. /*
  65. * When calculating the number of records sent from LQH in each batch
  66. * one uses SCAN_BATCH_SIZE divided by the expected size of signals
  67. * per row. This gives the batch size used for the scan. The NDB API
  68. * will receive one batch from each node at a time so there has to be
  69. * some care taken also so that the NDB API is not overloaded with
  70. * signals.
  71. * This parameter is configurable, this is the default value.
  72. */
  73. #define SCAN_BATCH_SIZE 32768
  74. /*
  75. * To protect the NDB API from overload we also define a maximum total
  76. * batch size from all nodes. This parameter should most likely be
  77. * configurable, or dependent on sendBufferSize.
  78. * This parameter is configurable, this is the default value.
  79. */
  80. #define MAX_SCAN_BATCH_SIZE 262144
  81. /*
  82.  * Maximum number of Parallel Scan queries on one hash index fragment
  83.  */
  84. #define MAX_PARALLEL_SCANS_PER_FRAG 12
  85. /*
  86.  * Maximum parallel ordered index scans per primary table fragment.
  87.  * Implementation limit is (256 minus 12).
  88.  */
  89. #define MAX_PARALLEL_INDEX_SCANS_PER_FRAG 32
  90. /**
  91.  * Computed defines
  92.  */
  93. #define MAXNROFATTRIBUTESINWORDS (MAX_ATTRIBUTES_IN_TABLE / 32)
  94. /*
  95.  * Ordered index constants.  Make configurable per index later.
  96.  */
  97. #define MAX_TTREE_NODE_SIZE 64     /* total words in node */
  98. #define MAX_TTREE_PREF_SIZE 4     /* words in min prefix */
  99. #define MAX_TTREE_NODE_SLACK 2     /* diff between max and min occupancy */
  100. /*
  101.  * Blobs.
  102.  */
  103. #define NDB_BLOB_HEAD_SIZE 2        /* sizeof(NdbBlob::Head) >> 2 */
  104. /*
  105.  * Long signals
  106.  */
  107. #define NDB_SECTION_SEGMENT_SZ 60
  108. #endif