Dataphor.org

X1 Branch Merged

Modified: 2011/08/03 21:47 by haitrinh1592 - Categorized as: Implementation, News
The X1 Branch has been merged back into the main line. The goals of the branch were to improve overall performance, reduce the memory footprint, and increase the longevity. We believe all 3 goals have been reached. Specifically:

  • Raw execution performance is almost twice as fast as 2.1
  • Overall catalog memory usage requirements have been decreased by 25%
  • Memory allocation at runtime has been significantly reduced
  • A major stream leak was identified and corrected
  • A significant plan caching issue was identified and corrected

As a result of these successes, the X1 branch has been merged back into the trunk for inclusion in the 2.2 release.

X1 involved several significant changes to the runtime engine:
  • An extra layer of wrapping was eliminated in the storage of native values. Rows, for instance, directly hold the native values of the components rather than holding wrappers for each.
  • The catalog structures and collections were streamlined.

As a result of the native value change, logic that directly interacts with the runtime data structures (descended from DataValue) will be affected. In terms of actual application impact, this is usually not an issue except in cases where client logic uses Session.Evaluate methods. These result in DataValues, which used to have AsString, AsXXX assessors directly, but those have been removed. As such, either the result can be cast to the appropriate type (e.g. Scalar), or the overloads in the Client.DataSession class can be used.

        #region Evaluate
        public DAE.Runtime.Data.Scalar Evaluate(string AExpression)
        public DAE.Runtime.Data.Scalar Evaluate(IServerProcess AProcess, string AExpression)
        public DAE.Runtime.Data.Scalar Evaluate(string AExpression, DAE.Runtime.DataParams AParams)
        public DAE.Runtime.Data.Scalar Evaluate(string AExpression, params object[] AParams)
        public DAE.Runtime.Data.Scalar Evaluate(IServerProcess AProcess, string AExpression, params object[] AParams)
	#endregion
		
        #region EvaluateRow
        public DAE.Runtime.Data.Row EvaluateRow(string AExpression)
        public DAE.Runtime.Data.Row EvaluateRow(IServerProcess AProcess, string AExpression)
        public DAE.Runtime.Data.Row EvaluateRow(string AExpression, DAE.Runtime.DataParams AParams)
        public DAE.Runtime.Data.Row EvaluateRow(IServerProcess AProcess, string AExpression, DAE.Runtime.DataParams AParams)
        public DAE.Runtime.Data.Row EvaluateRow(string AExpression, params object[] AParams)
        public DAE.Runtime.Data.Row EvaluateRow(IServerProcess AProcess, string AExpression, params object[] AParams)
	public DAE.Runtime.Data.Row EvaluateRow(IServerProcess AProcess, string AExpression, string">"> AParamNames, object[ AParams)
	#endregion
		
        #region EvaluateList
        public DAE.Runtime.Data.ListValue EvaluateList(string AExpression)
        public DAE.Runtime.Data.ListValue EvaluateList(IServerProcess AProcess, string AExpression)
        public DAE.Runtime.Data.ListValue EvaluateList(string AExpression, DAE.Runtime.DataParams AParams)
        public DAE.Runtime.Data.ListValue EvaluateList(IServerProcess AProcess, string AExpression, DAE.Runtime.DataParams AParams)
        public DAE.Runtime.Data.ListValue EvaluateList(string AExpression, params object[] AParams)
        public DAE.Runtime.Data.ListValue EvaluateList(IServerProcess AProcess, string AExpression, params object[] AParams)
	public DAE.Runtime.Data.ListValue EvaluateList(IServerProcess AProcess, string AExpression, string">"> AParamNames, object[ AParams)
	#endregion
		
        #region EvaluateTable
        public DAE.Runtime.Data.Table EvaluateTable(string AExpression)
        public DAE.Runtime.Data.Table EvaluateTable(IServerProcess AProcess, string AExpression)
        public DAE.Runtime.Data.Table EvaluateTable(string AExpression, params object[] AParams)
        public DAE.Runtime.Data.Table EvaluateTable(IServerProcess AProcess, string AExpression, params object[] AParams)
	public DAE.Runtime.Data.Table EvaluateTable(IServerProcess AProcess, string AExpression, string">"> AParamNames, object[ AParams)
	public DAE.Runtime.Data.DataValue EvaluateRaw(string AExpression)
	public DAE.Runtime.Data.DataValue EvaluateRaw(IServerProcess AProcess, string AExpression)
	public DAE.Runtime.Data.DataValue EvaluateRaw(string AExpression, DAE.Runtime.DataParams AParams)
	public DAE.Runtime.Data.DataValue EvaluateRaw(IServerProcess AProcess, string AExpression, DAE.Runtime.DataParams AParams)
	public DAE.Runtime.Data.DataValue EvaluateRaw(string AExpression, params object[] AParams)
	public DAE.Runtime.Data.DataValue EvaluateRaw(IServerProcess AProcess, string AExpression, params object[] AParams)
	public DAE.Runtime.Data.DataValue EvaluateRaw(IServerProcess AProcess, string AExpression, string">"> AParamNames, object[ AParams)
	#endregion



To access these overloads from ScriptActions in the Frontend: Host.Session.DataSession.Evaluate... Hoc bong du hoc Du hoc Singapore

ScrewTurn Wiki version 2.0.36. Some of the icons created by FamFamFam.