I have the new memcache ndb api to cluster running successfully (everything on version 7.2.4), and will be using the large field extra table to store large rows. This is working remarkably well, expiring is working, delete is working, large rows are working, great!
My question is about the unsigned int(10) for the key table's ext_id and extra data table's id column. this seems to be very limited in how long it will be able to sustain new rows.
I attempted creating the tables with bigint(20) unsigned, but received the following errors from memcached when I tried to use it: (this is after a clean restart on the new tables)
setIntValue() failed for column ext_id - unsupported column type.
setIntValue() failed for column id - unsupported column type.
when the auto_increment on ext_id reaches the limit, what is the procedure to let the system continue?
config:
mysql> select * from containers where name='production'\G
*************************** 1. row ***************************
name: production
db_schema: memcache
db_table: production
key_columns: mkey
value_columns: string_value
flags: flags
increment_column: NULL
cas_column: cas_value
expire_time_column: expire_time
large_values_table: memcache.production_extra
mysql> select * from key_prefixes where container='production'\G
*************************** 1. row ***************************
server_role_id: 0
key_prefix:
cluster_id: 0
policy: ndb-only
container: production
mysql> select * from cache_policies where policy_name='ndb-only'\G
*************************** 1. row ***************************
policy_name: ndb-only
get_policy: ndb_only
set_policy: ndb_only
delete_policy: ndb_only
flush_from_db: true
CREATE TABLE `production` (
`mkey` varchar(250) NOT NULL,
`cas_value` bigint(20) unsigned DEFAULT NULL,
`string_value` varbinary(2000) DEFAULT NULL,
`ext_id` int(10) unsigned DEFAULT NULL,
`ext_size` int(10) unsigned DEFAULT NULL,
`flags` int(10) unsigned DEFAULT NULL,
`expire_time` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`mkey`) USING HASH,
KEY `expire_time` (`expire_time`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
CREATE TABLE `production_extra` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`part` smallint(6) NOT NULL,
`content` varbinary(13950) NOT NULL,
PRIMARY KEY (`id`,`part`)
) ENGINE=ndbcluster AUTO_INCREMENT=125371 DEFAULT CHARSET=latin1
My question is about the unsigned int(10) for the key table's ext_id and extra data table's id column. this seems to be very limited in how long it will be able to sustain new rows.
I attempted creating the tables with bigint(20) unsigned, but received the following errors from memcached when I tried to use it: (this is after a clean restart on the new tables)
setIntValue() failed for column ext_id - unsupported column type.
setIntValue() failed for column id - unsupported column type.
when the auto_increment on ext_id reaches the limit, what is the procedure to let the system continue?
config:
mysql> select * from containers where name='production'\G
*************************** 1. row ***************************
name: production
db_schema: memcache
db_table: production
key_columns: mkey
value_columns: string_value
flags: flags
increment_column: NULL
cas_column: cas_value
expire_time_column: expire_time
large_values_table: memcache.production_extra
mysql> select * from key_prefixes where container='production'\G
*************************** 1. row ***************************
server_role_id: 0
key_prefix:
cluster_id: 0
policy: ndb-only
container: production
mysql> select * from cache_policies where policy_name='ndb-only'\G
*************************** 1. row ***************************
policy_name: ndb-only
get_policy: ndb_only
set_policy: ndb_only
delete_policy: ndb_only
flush_from_db: true
CREATE TABLE `production` (
`mkey` varchar(250) NOT NULL,
`cas_value` bigint(20) unsigned DEFAULT NULL,
`string_value` varbinary(2000) DEFAULT NULL,
`ext_id` int(10) unsigned DEFAULT NULL,
`ext_size` int(10) unsigned DEFAULT NULL,
`flags` int(10) unsigned DEFAULT NULL,
`expire_time` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`mkey`) USING HASH,
KEY `expire_time` (`expire_time`)
) ENGINE=ndbcluster DEFAULT CHARSET=latin1
CREATE TABLE `production_extra` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`part` smallint(6) NOT NULL,
`content` varbinary(13950) NOT NULL,
PRIMARY KEY (`id`,`part`)
) ENGINE=ndbcluster AUTO_INCREMENT=125371 DEFAULT CHARSET=latin1