title: Is StreamTransformer concurrent safe?
body: <p>Suppose that I have a ignite cluster with several nodes and a partitioned non-empty IgniteCache named "TEST_CACHE". Then I run following code in one of nodes: </p>
  
  <pre><code>ignite.compute().run(new IgniteRunnable(){
      @IgniteInstanceResource
      private Ignite ignite;
  
      @Override
      public void run() {
          IgniteDataStreamer&lt;String,Long&gt; ds = ignite.dataStreamer("TEST_CACHE");
          ds.receiver(new StreamTransformer&lt;String,Long&gt;(){
              @Override
              public Object process(MutableEntry&lt;String, Long&gt; entry, Object... arguments)
                      throws EntryProcessorException {
                  Long value = entry.getValue();
                  entry.setValue(value==null?1L:(value.longValue()+1L));
                  return null;
              }
          });
  
          //loop for adding lots of String data
          while(...)
              ds.addData(...);
      }
  
  });
  </code></pre>
  
  <p>This is similar to the offical StreamTransformerExample code, but what different is each node will get a DataStreamer instance of a same cache, and invoke addData method concurrently. In other words, for the same string data in different nodes, maybe one node has just got the value by "Long value = entry.getValue()" but not execute next row code to set value and update into cache, then another node is executing "entry.getValue()". So is it possible to update wrong value in this concurrent StreamTransformer use case?</p>