diff --git a/asterix-common/src/main/java/edu/uci/ics/asterix/common/config/AsterixProperties.java b/asterix-common/src/main/java/edu/uci/ics/asterix/common/config/AsterixProperties.java
index 04e974d..39dec45 100644
--- a/asterix-common/src/main/java/edu/uci/ics/asterix/common/config/AsterixProperties.java
+++ b/asterix-common/src/main/java/edu/uci/ics/asterix/common/config/AsterixProperties.java
@@ -39,6 +39,8 @@
  * Intended to live in the AsterixStateProxy so it can be accessed remotely.
  */
 public class AsterixProperties implements Serializable {
+    
+    private static final Logger LOGGER = Logger.getLogger(AsterixProperties.class.getName());
 
     private static final long serialVersionUID = 1L;
     private static String metadataNodeName;
@@ -51,58 +53,61 @@
     public static class AsterixConfigurationKeys {
 
         // JVM parameters for each Node Contoller (NC)
-        public static final String NC_JAVA_OPTS = "nc_java_opts";
+        public static final String NC_JAVA_OPTS = "nc.java.opts";
         public static final String NC_JAVA_OPTS_DEFAULT = "-Xmx1024m";
 
         // JVM parameters for the Cluster Contoller (CC)
-        public static final String CC_JAVA_OPTS = "cc_java_opts";
+        public static final String CC_JAVA_OPTS = "cc.java.opts";
         public static final String CC_JAVA_OPTS_DEFAULT = "-Xmx1024m";
-
-        public static final String SIZE_MEMORY_COMPONENT = "size_memory_component";
-        public static final String SIZE_MEMORY_COMPONENT_DEFAULT = "512m";
-
-        public static final String TOTAL_SIZE_MEMORY_COMPONENT = "total_size_memory_component";
-        public static final String TOTAL_SIZE_MEMORY_COMPONENT_DEFAULT = "512m";
-
-        public static final String LOG_BUFFER_NUM_PAGES = "log_buffer_num_pages";
-        public static final String LOG_BUFFER_NUM_PAGES_DEFAULT = "8";
-
-        public static final String LOG_BUFFER_PAGE_SIZE = "log_buffer_page_size";
-        public static final String LOG_BUFFER_PAGE_SIZE_DEFAULT = "131072";
-
-        public static final String LOG_PARTITION_SIZE = "log_partition_size";
-        public static final String LOG_PARTITION_SIZE_DEFAULT = "2147483648";
-
-        public static final String GROUP_COMMIT_INTERVAL = "group_commit_interval";
-        public static final String GROUP_COMMIT_INTERVAL_DEFAULT = "200ms";
-
-        public static final String SORT_OP_MEMORY = "sort_op_memory";
-        public static final String SORT_OP_MEMORY_DEFAULT = "512m";
-
-        public static final String JOIN_OP_MEMORY = "join_op_memory";
-        public static final String JOIN_OP_MEMORY_DEFAULT = "512m";
-
-        public static final String WEB_INTERFACE_PORT = "web_interface_port";
-        public static final String WEB_INTERFACE_PORT_DEFAULT = "19001";
-
-        public static final String NUM_PAGES_BUFFER_CACHE = "num_pages_buffer_cache";
+        
+        public static final String NUM_PAGES_BUFFER_CACHE = "num.pages.buffer.cache";
         public static final String NUM_PAGES_BUFFER_CACHE_DEFAULT = "1000";
 
-        public static final String LOG_LEVEL = "log_level";
-        public static final String LOG_LEVEL_DEFAULT = "INFO";
+        public static final String TOTAL_SIZE_MEMORY_COMPONENT = "total.size.memory.component";
+        public static final String TOTAL_SIZE_MEMORY_COMPONENT_DEFAULT = "512m";
+        
+        public static final String MEMORY_COMPONENT_NUM_PAGES = "memory.component.num.pages";
+        public static final String MEMORY_COMPONENT_NUM_PAGES_DEFAULT = "1000";
+        
+        public static final String MEMORY_COMPONENT_PAGE_SIZE = "memory.component.page.size";
+        public static final String MEMORY_COMPONENT_PAGE_SIZE_DEFAULT = "32768";
 
-        public static final String LSN_THRESHOLD = "lsn_threshold";
+        public static final String LOG_BUFFER_NUM_PAGES = "log.buffer.num.pages";
+        public static final String LOG_BUFFER_NUM_PAGES_DEFAULT = "8";
+
+        public static final String LOG_BUFFER_PAGE_SIZE = "log.buffer.page.size";
+        public static final String LOG_BUFFER_PAGE_SIZE_DEFAULT = "131072";
+
+        public static final String LOG_PARTITION_SIZE = "log.partition.size";
+        public static final String LOG_PARTITION_SIZE_DEFAULT = "2147483648";
+
+        public static final String GROUP_COMMIT_INTERVAL = "group.commit.interval";
+        public static final String GROUP_COMMIT_INTERVAL_DEFAULT = "200ms";
+        
+        public static final String LSN_THRESHOLD = "lsn.threshold";
         public static final String LSN_THRESHOLD_DEFAULT = "64m";
 
-        public static final String CHECKPOINT_TERMS_IN_SECS = "checkpoint_terms_in_secs";
+        public static final String CHECKPOINT_TERMS_IN_SECS = "checkpoint.terms.in.secs";
         public static final String CHECKPOINT_TERMS_IN_SECS_DEFAULT = "120";
 
-        public static final String ESCALATE_THRSHOLD_ENTITY_TO_DATASET = "escalate_threshold_entity_to_dataset";
+        public static final String ESCALATE_THRSHOLD_ENTITY_TO_DATASET = "escalate.threshold.entity.to.dataset";
         public static final String ESCALATE_THRSHOLD_ENTITY_TO_DATASET_DEFAULT = "8";
 
-        public static final String SHRINK_TIMER_THRESHOLD = "shrink_timer_threshold";
+        public static final String SHRINK_TIMER_THRESHOLD = "shrink.timer.threshold";
         public static final String SHRINK_TIMER_THRESHOLD_DEFAULT = "120000";
 
+        public static final String SORT_OP_MEMORY = "sort.op.memory";
+        public static final String SORT_OP_MEMORY_DEFAULT = "512m";
+
+        public static final String JOIN_OP_MEMORY = "join.op.memory";
+        public static final String JOIN_OP_MEMORY_DEFAULT = "512m";
+
+        public static final String WEB_INTERFACE_PORT = "web.interface.port";
+        public static final String WEB_INTERFACE_PORT_DEFAULT = "19001";
+
+        public static final String LOG_LEVEL = "log.level";
+        public static final String LOG_LEVEL_DEFAULT = "INFO";
+
     }
 
     private AsterixProperties() {
@@ -170,12 +175,18 @@
                 case AsterixConfigurationKeys.CC_JAVA_OPTS:
                     propValue = AsterixConfigurationKeys.CC_JAVA_OPTS_DEFAULT;
                     break;
-                case AsterixConfigurationKeys.SIZE_MEMORY_COMPONENT:
-                    propValue = AsterixConfigurationKeys.SIZE_MEMORY_COMPONENT_DEFAULT;
+                case AsterixConfigurationKeys.NUM_PAGES_BUFFER_CACHE:
+                    propValue = AsterixConfigurationKeys.NUM_PAGES_BUFFER_CACHE_DEFAULT;
                     break;
                 case AsterixConfigurationKeys.TOTAL_SIZE_MEMORY_COMPONENT:
                     propValue = AsterixConfigurationKeys.TOTAL_SIZE_MEMORY_COMPONENT_DEFAULT;
                     break;
+                case AsterixConfigurationKeys.MEMORY_COMPONENT_NUM_PAGES:
+                    propValue = AsterixConfigurationKeys.MEMORY_COMPONENT_NUM_PAGES_DEFAULT;
+                    break;
+                case AsterixConfigurationKeys.MEMORY_COMPONENT_PAGE_SIZE:
+                    propValue = AsterixConfigurationKeys.MEMORY_COMPONENT_PAGE_SIZE_DEFAULT;
+                    break;
                 case AsterixConfigurationKeys.LOG_BUFFER_NUM_PAGES:
                     propValue = AsterixConfigurationKeys.LOG_BUFFER_NUM_PAGES_DEFAULT;
                     break;
@@ -188,21 +199,6 @@
                 case AsterixConfigurationKeys.GROUP_COMMIT_INTERVAL:
                     propValue = AsterixConfigurationKeys.GROUP_COMMIT_INTERVAL_DEFAULT;
                     break;
-                case AsterixConfigurationKeys.SORT_OP_MEMORY:
-                    propValue = AsterixConfigurationKeys.SORT_OP_MEMORY_DEFAULT;
-                    break;
-                case AsterixConfigurationKeys.JOIN_OP_MEMORY:
-                    propValue = AsterixConfigurationKeys.JOIN_OP_MEMORY_DEFAULT;
-                    break;
-                case AsterixConfigurationKeys.WEB_INTERFACE_PORT:
-                    propValue = AsterixConfigurationKeys.WEB_INTERFACE_PORT_DEFAULT;
-                    break;
-                case AsterixConfigurationKeys.NUM_PAGES_BUFFER_CACHE:
-                    propValue = AsterixConfigurationKeys.NUM_PAGES_BUFFER_CACHE_DEFAULT;
-                    break;
-                case AsterixConfigurationKeys.LOG_LEVEL:
-                    propValue = AsterixConfigurationKeys.LOG_LEVEL_DEFAULT;
-                    break;
                 case AsterixConfigurationKeys.LSN_THRESHOLD:
                     propValue = AsterixConfigurationKeys.LSN_THRESHOLD_DEFAULT;
                     break;
@@ -215,6 +211,22 @@
                 case AsterixConfigurationKeys.SHRINK_TIMER_THRESHOLD:
                     propValue = AsterixConfigurationKeys.SHRINK_TIMER_THRESHOLD_DEFAULT;
                     break;
+                case AsterixConfigurationKeys.SORT_OP_MEMORY:
+                    propValue = AsterixConfigurationKeys.SORT_OP_MEMORY_DEFAULT;
+                    break;
+                case AsterixConfigurationKeys.JOIN_OP_MEMORY:
+                    propValue = AsterixConfigurationKeys.JOIN_OP_MEMORY_DEFAULT;
+                    break;
+                case AsterixConfigurationKeys.WEB_INTERFACE_PORT:
+                    propValue = AsterixConfigurationKeys.WEB_INTERFACE_PORT_DEFAULT;
+                    break;
+                case AsterixConfigurationKeys.LOG_LEVEL:
+                    propValue = AsterixConfigurationKeys.LOG_LEVEL_DEFAULT;
+                    break;
+                default:
+                    if (LOGGER.isLoggable(Level.WARNING)) {
+                        LOGGER.warning("Cannot find property '" + property + "'");
+                    }
             }
         }
         return propValue;
diff --git a/asterix-installer/src/main/resources/conf/asterix-configuration.xml b/asterix-installer/src/main/resources/conf/asterix-configuration.xml
index 37ddf88..ba08022 100644
--- a/asterix-installer/src/main/resources/conf/asterix-configuration.xml
+++ b/asterix-installer/src/main/resources/conf/asterix-configuration.xml
@@ -1,116 +1,114 @@
 <asterixConfiguration xmlns="asterixconf">
 
 	<property>
-		<name>nc_java_opts</name>
+		<name>nc.java.opts</name>
 		<value>-Xmx1024m</value>
-                <description>JVM parameters for each Node Contoller (NC)</description>
+		<description>JVM parameters for each Node Contoller (NC)</description>
 	</property>
 
 	<property>
-		<name>cc_java_opts</name>
+		<name>cc.java.opts</name>
 		<value>-Xmx1024m</value>
-                <description>JVM parameters for each Cluster Contoller (CC)</description>
+		<description>JVM parameters for each Cluster Contoller (CC)
+		</description>
 	</property>
 
 	<property>
-		<name>size_memory_component</name>
-		<value>512m</value>
-                <description></description>
-	</property>
-
-	<property>
-		<name>total_size_memory_component</name>
-		<value>512m</value>
-                <description></description>
-	</property>
-
-	<property>
-		<name>log_buffer_num_pages</name>
-		<value>8</value>
-                <description></description>
-	</property>
-
-	<property>
-		<name>group_commit_interval</name>
-		<value>200ms</value>
-                <description></description>
-	</property>
-
-	<property>
-		<name>sort_op_memory</name>
-		<value>200m</value>
-                <description></description>
-	</property>
-
-	<property>
-		<name>join_op_memory</name>
-		<value>200m</value>
-                <description></description>
-	</property>
-
-	<property>
-		<name>web_interface_port</name>
-		<value>19001</value>
-                <description></description>
-	</property>
-
-	<property>
-		<name>num_pages_buffer_cache</name>
-		<value>8</value>
-                <description></description>
-	</property>
-
-	<property>
-		<name>log_level</name>
-		<value>INFO</value>
-                <description></description>
-	</property>
-
-	<property>
-		<name>lsn_threshold</name>
-		<value>64m</value>
-                <description></description>
-	</property>
-
-	<property>
-		<name>checkpointTermsInSecs</name>
-		<value>120</value>
-                <description></description>
-	</property>
-
-	<property>
-		<name>escalate_threshold_entity_to_dataset</name>
-		<value>8</value>
-                <description></description>
-	</property>
-
-	<property>
-		<name>num_pages_buffer_cache</name>
+		<name>num.pages.buffer.cache</name>
 		<value>1000</value>
-                <description></description>
+		<description>The number of pages allocated to the disk buffer cache.</description>
+	</property>
+	
+	<property>
+		<name>total.size.memory.component</name>
+		<value>512m</value>
+		<description>The total size of memory that the sum of all open memory
+			components cannot exceed.</description>
 	</property>
 
 	<property>
-		<name>log_buffer_page_size</name>
-		<value>128k</value>
-                <description></description>
+		<name>memory.component.num.pages</name>
+		<value>1000</value>
+		<description>The number of pages to allocate for a memory component.
+		</description>
 	</property>
 
 	<property>
-		<name>log_partition_size</name>
-		<value>2147483648</value>
-                <description></description>
+		<name>memory.component.page.size</name>
+		<value>32768</value>
+		<description>The size of buffer pages for memory components.
+		</description>
 	</property>
 
 	<property>
-		<name>shrink_timer_threshold</name>
-		<value>120000</value>
-                <description></description>
-	</property>
-
-	<property>
-		<name>log_buffer_num_pages</name>
+		<name>log.buffer.num.pages</name>
 		<value>8</value>
-                <description></description>
+		<description></description>
+	</property>
+
+	<property>
+		<name>log.buffer.page.size</name>
+		<value>128k</value>
+		<description></description>
+	</property>
+
+	<property>
+		<name>log.partition.size</name>
+		<value>2147483648</value>
+		<description></description>
+	</property>
+
+	<property>
+		<name>group.commit.interval</name>
+		<value>200ms</value>
+		<description></description>
+	</property>
+
+	<property>
+		<name>lsn.threshold</name>
+		<value>64m</value>
+		<description></description>
+	</property>
+
+	<property>
+		<name>checkpoint.terms.in.secs</name>
+		<value>120</value>
+		<description></description>
+	</property>
+
+	<property>
+		<name>escalate.threshold.entity.to.dataset</name>
+		<value>8</value>
+		<description></description>
+	</property>
+
+	<property>
+		<name>shrink.timer.threshold</name>
+		<value>120000</value>
+		<description></description>
+	</property>
+	
+	<property>
+		<name>sort.op.memory</name>
+		<value>200m</value>
+		<description></description>
+	</property>
+
+	<property>
+		<name>join.op.memory</name>
+		<value>200m</value>
+		<description></description>
+	</property>
+
+	<property>
+		<name>web.interface.port</name>
+		<value>19001</value>
+		<description></description>
+	</property>
+
+	<property>
+		<name>log.level</name>
+		<value>INFO</value>
+		<description></description>
 	</property>
 </asterixConfiguration>
