Grigory Domozhirov created IGNITE-20665:
-------------------------------------------

             Summary: DataStreamer: keep order for entries with equal keys / 
replace values before streaming
                 Key: IGNITE-20665
                 URL: https://issues.apache.org/jira/browse/IGNITE-20665
             Project: Ignite
          Issue Type: Improvement
          Components: streaming
    Affects Versions: 2.15
            Reporter: Grigory Domozhirov


Code below returns "old value":
{code:java}
try (
        Ignite ignite = Ignition.start();
        IgniteCache<Integer, String> cache = ignite.createCache("test");
        IgniteDataStreamer<Integer, String> dataStreamer = 
ignite.dataStreamer(cache.getName())) {
    dataStreamer.allowOverwrite(true);
    for (int i = 0; i < 1000; i++) {
        dataStreamer.addData(0, "old value");
    }
    dataStreamer.addData(0, "new value");
    dataStreamer.flush();
    System.out.println(cache.get(0));
}
{code}
Despite streaming order is not guaranteed by DataStreamer such behaviour might 
be surprising and effectively voids allowOverwrite option. 

Also, it ends up with a lot of outdated entries streamed, decreasing overall 
loading process.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to