internal DeployableShardedDataset(IShardedDataset <TKeyI1, TPayloadI1, TDataSetI1> input, Expression <Func <TDataSetI1, IMoveDescriptor, TDataSetI2[]> > splitter, Expression <Func <TDataSetI2[], IMoveDescriptor, TDataSetO> > merger, IMoveDescriptor moveDescriptor) { _input1 = input; _input2 = null; _operationType = OperatorType.Move; var closureEliminator = new ClosureEliminator(); _splitter = closureEliminator.Visit(splitter) as Expression <Func <TDataSetI1, IMoveDescriptor, TDataSetI2[]> >; _merger = closureEliminator.Visit(merger) as Expression <Func <TDataSetI2[], IMoveDescriptor, TDataSetO> >; _moveDescriptor = moveDescriptor; _unaryTransformer = null; _binaryTransformer = null; }
public static ShardedVertexInfo Create( string vertexName, string epochId, List <string> allInstances, List <int> allShards, List <int> addedShards, List <int> removedShards, Expression <Func <int, int> > shardLocator) { var strAllInstances = string.Join(";", allInstances); var strAllShards = string.Join(";", allShards); var strAddedShards = string.Join(";", addedShards); var strRemovedShards = string.Join(";", removedShards); var strShardLocator = ""; if (shardLocator != null) { var closureEliminator = new ClosureEliminator(); Expression vertexedUserLambdaExpression = closureEliminator.Visit(shardLocator); strShardLocator = SerializationHelper.Serialize(vertexedUserLambdaExpression); } return(new ShardedVertexInfo( vertexName: vertexName, epochId: epochId, allInstances: strAllInstances, allShards: strAllShards, addedShards: strAddedShards, removedShards: strRemovedShards, shardLocator: strShardLocator)); }
public static VertexInfo Create( string instanceName, string vertexName, string vertexDefinition, string address, int port, Expression <Func <IShardedVertex> > vertexCreateAction, object vertexParameter, bool isActive, bool isSharded) { string vertexCreateActionStr = null; if (vertexCreateAction != null) { var closureEliminator = new ClosureEliminator(); Expression vertexedUserLambdaExpression = closureEliminator.Visit( vertexCreateAction); vertexCreateActionStr = SerializationHelper.Serialize(vertexedUserLambdaExpression); } string vertexParameterStr = SerializationHelper.SerializeObject(vertexParameter); return(new VertexInfo( instanceName: instanceName, address: address, port: port, vertexName: vertexName, vertexDefinition: vertexDefinition, vertexCreateAction: vertexCreateActionStr, vertexParameter: vertexParameterStr, isActive: isActive, isSharded: isSharded)); }
internal DeployableShardedDataset(IShardedDataset <TKeyI1, TPayloadI1, TDataSetI1> input1, IShardedDataset <TKeyI2, TPayloadI2, TDataSetI2> input2, Expression <Func <TDataSetI1, TDataSetI2, TDataSetO> > transform) { _input1 = input1; _input2 = input2; _operationType = OperatorType.BinaryTransform; var closureEliminator = new ClosureEliminator(); _binaryTransformer = closureEliminator.Visit(transform) as Expression <Func <TDataSetI1, TDataSetI2, TDataSetO> >; _unaryTransformer = null; _splitter = null; _merger = null; _moveDescriptor = null; }
internal DeployableShardedDataset( IDataProvider dataProvider, IShardedDataset <TKeyI1, TPayloadI1, TDataSetI1> input, Expression <Func <TDataSetI1, TDataSetO> > transform) : base(dataProvider) { _input1 = input; _input2 = null; _operationType = OperatorType.UnaryTransform; var closureEliminator = new ClosureEliminator(); _unaryTransformer = closureEliminator.Visit(transform) as Expression <Func <TDataSetI1, TDataSetO> >; _binaryTransformer = null; _splitter = null; _merger = null; _moveDescriptor = null; _dataProvider = dataProvider; }
/// <summary> /// Constructor /// </summary> /// <param name="instanceName"></param> /// <param name="vertexName"></param> /// <param name="vertexDefinition"></param> /// <param name="address"></param> /// <param name="port"></param> /// <param name="vertexCreateAction"></param> /// <param name="vertexParameter"></param> /// <param name="isActive"></param> public VertexTable(string instanceName, string vertexName, string vertexDefinition, string address, int port, Expression <Func <IShardedVertex> > vertexCreateAction, object vertexParameter, bool isActive) { this.PartitionKey = instanceName; this.RowKey = vertexName; this.VertexDefinition = vertexDefinition; this.Address = address; this.Port = port; this.VertexCreateAction = ""; this.IsActive = isActive; this.IsSharded = true; if (vertexCreateAction != null) { var closureEliminator = new ClosureEliminator(); Expression vertexedUserLambdaExpression = closureEliminator.Visit( vertexCreateAction); this.VertexCreateAction = SerializationHelper.Serialize(vertexedUserLambdaExpression); } this.VertexParameter = SerializationHelper.SerializeObject(vertexParameter); }