Exemplo n.º 1
0
        /// <summary>
        /// Processes the span query.
        /// </summary>
        /// <param name="message">The message.</param>
        /// <param name="messageContext">The message context.</param>
        private void ProcessSpanQuery(RelayMessage message, MessageContext messageContext)
        {
            SpanQueryResult spanQueryResult = SpanQueryProcessor.Instance.Process(message.GetQueryObject <SpanQuery>(),
                                                                                  messageContext, storeContext);
            bool compressOption = storeContext.GetCompressOption(message.TypeId);

            message.Payload = new RelayPayload(message.TypeId,
                                               message.Id,
                                               Serializer.Serialize(spanQueryResult, compressOption),
                                               compressOption);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Process a RemoteClusteredSpanQuery
        /// </summary>
        /// <param name="message"></param>
        /// <param name="messageContext"></param>
        private void ProcessRemoteClusteredSpanQuery(RelayMessage message, MessageContext messageContext)
        {
            SpanQueryResult result = RemoteClusteredQueryProcessor.Instance.Process <SpanQueryResult, SpanQuery>(
                PerformanceCounterEnum.IndexLookupAvgPerRemoteClusteredSpanQuery,
                message.GetQueryObject <RemoteClusteredSpanQuery>(),
                messageContext,
                storeContext,
                SpanQueryProcessor.Instance);

            bool compressOption = storeContext.GetCompressOption(message.TypeId);

            message.Payload = new RelayPayload(message.TypeId,
                                               message.Id,
                                               Serializer.Serialize(result, compressOption),
                                               compressOption);
        }
        internal SpanQueryResult Process(RemoteClusteredSpanQuery remoteClusteredSpanQuery, MessageContext messageContext, IndexStoreContext storeContext)
        {
            // increment the performance counter
            PerformanceCounters.Instance.SetCounterValue(
                PerformanceCounterEnum.IndexLookupAvgPerRemoteClusteredSpanQuery,
                messageContext.TypeId,
                remoteClusteredSpanQuery.IndexIdList.Count);

            // creating a spanQuery with copy ctor
            VirtualSpanQuery query = new VirtualSpanQuery(remoteClusteredSpanQuery)
            {
                CacheTypeName = storeContext.GetTypeName(messageContext.TypeId),

                // we get only reference at this point
                ExcludeData = true
            };

            SpanQueryResult queryResult = RelayClient.Instance.SubmitQuery <VirtualSpanQuery, SpanQueryResult>(query);

            GetDataItems(remoteClusteredSpanQuery.FullDataIdInfo, remoteClusteredSpanQuery.ExcludeData, messageContext, storeContext, queryResult);

            return(queryResult);
        }