public function registerShard($shard_name, $parameters)
    {
        if (empty($shard_name)) {
            throw new \Exception("The shard name is not specified!");
        }
        
        if (!empty($this->shard_table[$shard_name])) {
            throw new \Exception("The shard '$shard_name' has been already registered!");
        }
        
        $this->shard_table[$shard_name]["parameters"] = $parameters;
        
        return true;
    }