public function initialise(cache_definition $definition) {
        // If the definition isn't using static acceleration then we need to be store data here.
        // The reasoning behind this is that:
        //   - If the definition is using static acceleration then the cache loader is going to
        //     store things in its static array.
        //   - If the definition is not using static acceleration then the cache loader won't try to store anything
        //     and we will need to store it here in order to make sure it is accessible.
        if ($definition->get_mode() !== self::MODE_APPLICATION) {
            // Neither the request cache nor the session cache provide static acceleration.
            $this->persist = true;
        } else {
            $this->persist = !$definition->use_static_acceleration();
        }
    }