diff --git a/ChaosAgent/ChaosAgent.cpp b/ChaosAgent/ChaosAgent.cpp
index 8f92f408fbba10f7b7568df24fc8d3f399b0dac2..c0ab9fa9af8e11227fdb9713bda4cc3d932db7b6 100644
--- a/ChaosAgent/ChaosAgent.cpp
+++ b/ChaosAgent/ChaosAgent.cpp
@@ -73,7 +73,9 @@ void ChaosAgent::init(void *init_data)  {
     if(settings.working_directory.size() == 0) {
         settings.working_directory = FSUtility::getExecutablePath();
     }
-    
+    if(nodeuid.size()==0){
+        nodeuid="agent_"+chaos::GlobalConfiguration::getInstance()->getHostname();
+    }
     ChaosAgent::getInstance()->settings.agent_uid=nodeuid;
     //settings.agent_uid = CHAOS_FORMAT("ChaosAgent_%1%",%chaos::GlobalConfiguration::getInstance()->getLocalServerAddressAnBasePort());
     
diff --git a/ChaosMetadataService/ChaosMetadataService.cpp b/ChaosMetadataService/ChaosMetadataService.cpp
index e3e491ee5e0af8fbc945c53d3ec57db575e483a3..43e5ccfe19c9174ef3d1c7d1bae28c0fb8a61407 100644
--- a/ChaosMetadataService/ChaosMetadataService.cpp
+++ b/ChaosMetadataService/ChaosMetadataService.cpp
@@ -199,7 +199,9 @@ void ChaosMetadataService::init(void* init_data) {
     if (!message_consumer.get()) throw chaos::CException(-7, "Error instantiating message data consumer", __PRETTY_FUNCTION__);
     message_consumer.init(NULL, __PRETTY_FUNCTION__);
 #endif
-
+  if(nodeuid.size()==0){
+        nodeuid="cds_"+chaos::GlobalConfiguration::getInstance()->getHostname();
+    }
     //! batch system
     StartableService::initImplementation(MDSBatchExecutor::getInstance(), NULL, "MDSBatchExecutor", __PRETTY_FUNCTION__);
 
diff --git a/chaos/common/data/cache/AttributeCache.cpp b/chaos/common/data/cache/AttributeCache.cpp
index 0394ddd3367a48a8fd75e57977bca3904079dc57..2375a41bd9928c0a5698ba5243b85c80bbdecb4d 100644
--- a/chaos/common/data/cache/AttributeCache.cpp
+++ b/chaos/common/data/cache/AttributeCache.cpp
@@ -113,6 +113,7 @@ void AttributeCache::addAttribute(const std::string& name,
             size = sizeof(int64_t);
             break;
         case chaos::DataType::TYPE_STRING:
+        case chaos::DataType::TYPE_CLUSTER:
             size = value.asString().size();
             break;
             
diff --git a/tools/chaos_services.sh b/tools/chaos_services.sh
index dd5448f7721946226183098f74dac8001cc358aa..db7264cc4bca3c1ad235426eae9daf977372e361 100755
--- a/tools/chaos_services.sh
+++ b/tools/chaos_services.sh
@@ -81,12 +81,11 @@ usage(){
     info_mesg "Usage :$0 {start|stop|status| config| start agent| start mds | start webui| start us |start devel | stop webui|stop mds| stop us}"
 }
 start_mds(){
-    if [ -n "$CHAOS_MDS" ];then
-        if ! [[ "$CHAOS_MDS" =~ localhost ]];then
-            echo "* Using $CHAOS_MDS"
-            return 1
-        fi
-    fi
+#    if [ -n "$CHAOS_MDS" ];then
+#        if ! [[ "$CHAOS_MDS" =~ localhost ]];then
+#            echo "* Using $CHAOS_MDS"
+#            return 1
+#        fi
     backend_checks;
     mds_checks;
     if check_proc "$CHAOS_PREFIX/bin/$MDS_EXEC";then
diff --git a/tools/common_util.sh b/tools/common_util.sh
index 99b3973b40ba2d3cd0b7d507b933d7b533fb8825..37665585bbdf66e5bde20ecb1e67bd0c14840684 100644
--- a/tools/common_util.sh
+++ b/tools/common_util.sh
@@ -25,11 +25,11 @@ if [ -n "$CHAOS_INTERFACE" ];then
     CHAOS_OVERALL_OPT="$CHAOS_OVERALL_OPT --publishing-interface $CHAOS_INTERFACE"
 fi
 if [ -z "$CHAOS_MDS" ];then
-    export CHAOS_MDS=localhost:5000
+    export CHAOS_MDS=localhost:9092
 else
     export CHAOS_EXTERNAL_MDS=$CHAOS_MDS
 fi
-CHAOS_OVERALL_OPT="$CHAOS_OVERALL_OPT --metadata-server $CHAOS_MDS"
+CHAOS_OVERALL_OPT="$CHAOS_OVERALL_OPT --msg-broker-server $CHAOS_MDS"
 if [ -n "$CHAOS_IP" ];then
     CHAOS_OVERALL_OPT="$CHAOS_OVERALL_OPT --publishing-ip $CHAOS_IP"
 fi
@@ -328,8 +328,8 @@ function chaos_configure(){
     
     path=`echo $PREFIX/vfs|$SED 's/\//\\\\\//g'`
     logpath=`echo $PREFIX/log/cds.log|$SED 's/\//\\\\\//g'`
-    echo -e "metadata-server=localhost:5000\nlog-level=debug\nevent-disable=1\n" > $PREFIX/etc/cu-localhost.cfg
-    echo -e "metadata-server=localhost:5000\nlog-level=debug\nserver_port=8081\nevent-disable=1\n" > $PREFIX/etc/cuiserver-localhost.cfg
+    echo -e "msg-broker-server=localhost:9092\nlog-level=debug\nevent-disable=1\n" > $PREFIX/etc/cu-localhost.cfg
+    echo -e "msg-broker-server=localhost:9092\nlog-level=debug\nserver_port=8081\nevent-disable=1\n" > $PREFIX/etc/cuiserver-localhost.cfg
 
     cp -r $CHAOS_BUNDLE/chaosframework/Documentation/html $PREFIX/doc/ >& /dev/null
     cp -r $CHAOS_BUNDLE/service/webgui/w3chaos/public_html/* $PREFIX/www/html
@@ -735,12 +735,12 @@ chaos_cli_cmd(){
     if [ "$CHAOS_RUNTYPE" == "callgrind" ]; then
 	timeout=$((timeout * 10))
     fi
-    cli_cmd=`$CHAOS_PREFIX/bin/ChaosCLI --log-on-file 1 $CHAOS_TEST_DEBUG --log-file $CHAOS_PREFIX/log/ChaosCLI.log --metadata-server $meta --device-id $cuname --timeout $timeout $param 2>&1`
+    cli_cmd=`$CHAOS_PREFIX/bin/ChaosCLI --log-on-file 1 $CHAOS_TEST_DEBUG --log-file $CHAOS_PREFIX/log/ChaosCLI.log --msg-broker-server $meta --device-id $cuname --timeout $timeout $param 2>&1`
 
     if [ $? -eq 0 ]; then
 	return 0
     fi
-    error_mesg "Error \"$CHAOS_PREFIX/bin/ChaosCLI --metadata-server $meta --device-id $cuname --timeout $timeout $param \" returned:$cli_cmd"
+    error_mesg "Error \"$CHAOS_PREFIX/bin/ChaosCLI --msg-broker-server $meta --device-id $cuname --timeout $timeout $param \" returned:$cli_cmd"
     return 1
 
 }
@@ -806,7 +806,7 @@ get_hdataset_cu(){
     local end_time="$4"
     local filename="$5"
     info_mesg "dumping historical data for cu $cuname interval " "$end_time-$st_time"
-    if ! $CHAOS_PREFIX/bin/ChaosDataExport --metadata-server $meta --device-id $cuname --start-time $st_time --end-time $end_time --dest-file $filename --dest-type 1 > $CHAOS_PREFIX/log/ChaosDataExport.log 2>&1 ;then
+    if ! $CHAOS_PREFIX/bin/ChaosDataExport --msg-broker-server $meta --device-id $cuname --start-time $st_time --end-time $end_time --dest-file $filename --dest-type 1 > $CHAOS_PREFIX/log/ChaosDataExport.log 2>&1 ;then
 	return 1
     fi
     return 0
@@ -897,7 +897,7 @@ launch_us_cu(){
     local USNAME=UnitServer
     local NUS=2
     local NCU=5
-    local META="localhost:5000"
+    local META="localhost:9092"
     local ALIAS="TEST_UNIT"
     if [ -n "$1" ];then
 	NUS=$1