public function update($key, $value, $namespace, $lifetime = null, $userdata = null)
    {
        // Get internal used key
        $key = $this->calculateUuid($key . $namespace);

        // Build dataset from input
        $dataset = array(
            $this->getExpiresAbsolute($lifetime),
            $userdata,
            $this->encode($value),
            $namespace,
        );

        if (
            true !== $result = $this->connection->replace(
                $key,
                $dataset,
                ($this->getCompress() === true) ? MEMCACHE_COMPRESSED : 0,
                $this->getExpiresAbsolute($lifetime)
            )
        ) {
            throw new Doozr_Cache_Service_Exception(
                'Error while updating dataset!'
            );
        }

        if ($result === true) {
            // On create we need to purge the old entry from runtime cache ...
            $this->addToRuntimeCache(
                $key,
                $dataset,
                $namespace
            );
        }

        return true;
    }