POSTGRESQL NOTE: If you need support for Postgresql, use Drupal 6 along with the Drupal 6 version of Queryable Variables. The drupal 5 version does NOT have support for PGSQL.

What is this module?
It is a replacement for drupal's variable_get(), variable_set(), and variable_del(). The drupal variables system was not meant to hold tons of data and it is now being used by 100s of modules which keep packing more and more data into it. If the variable table gets to big, it significantly impacts the stability of the site and you can start to see completely random errors. Errors that appear to be truely random and it can be VERY difficult to figure out why (almost always due to the variable table being to big and memory_limit to small). This module allows modules to pack GBs of data into a new variables table without impacting stability at all. It does this by using a completely DIFFERENT table from the actual variable table. It instead uses a new table called "queryable_variables"(duh lol). This table is not loaded into memory like the variable table. When the variable table is loaded into memory and it is to large for your servers configuration you will run into the dreaded: "Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 11346001 bytes)" error. Example, if your memory_limit = 32MB in php then you will probably run into the error around 150,000 rows. But a memory limit that high isnt likely. Most shared servers use a limit of 2M to 8M. This means you will run into this error between 500 and 1500 rows in the variable which is very very low and many times the user cant change the memory_limit value because they dont have access to change the php.ini file. This to me is really an unacceptable stability problem with drupal. It would easily be fixed by not loading the variable table into memory, I'm not sure why they opted to do that. All it does is eat up memory. The speed gain from loading things into memory for the variable table is negligible. I see this problem a lot on many drupal sites and its almost always because some module is putting insane amounts of data into the variable table, something in which it was not intended to do. This module allows other modules to avoid ruining the stability of a site by overusing the easy to use variable_set/get/del functions.

Is this module for me?
If you are a module developer then I would suggest getting to know this module well because you would benefit from it in ways you could never imagine. If you are a non-php type developer and dont really mess with PHP code, then just skip this module unless a module you are trying to install is telling you that you need to install it first. It's more of a backend module than a front end UI module and if you are here its probably likely that a module you are trying to install uses this module as a requirement which is a good thing ;).

Development and maintenance by CrystalDawn.net & Kappaluppa Company

Project Information

  • Maintenance status: Unknown
  • Development status: Unknown
  • Module categories: Developer
  • Reported installs: 43 sites currently report using this module. View usage statistics.
  • Downloads: 4,585
  • Last modified: March 28, 2009

Downloads