public ICollection <V> Values(IPredicate <K, V> predicate)
        {
            var data       = ToData(predicate);
            var request    = TransactionalMapValuesWithPredicateCodec.EncodeRequest(GetName(), GetTransactionId(), GetThreadId(), data);
            var dataValues = Invoke(request, m => TransactionalMapValuesWithPredicateCodec.DecodeResponse(m).list);

            return(ToList <V>(dataValues));
        }
        public async Task <IReadOnlyList <TValue> > GetValuesAsync(IPredicate predicate)
        {
            var predicateData   = ToSafeData(predicate);
            var requestMessage  = TransactionalMapValuesWithPredicateCodec.EncodeRequest(Name, TransactionId, ContextId, predicateData);
            var responseMessage = await Cluster.Messaging.SendToMemberAsync(requestMessage, TransactionClientConnection).CAF();

            var response = TransactionalMapValuesWithPredicateCodec.DecodeResponse(responseMessage).Response;

            return(new ReadOnlyLazyList <TValue>(response, SerializationService));
        }