Pavel Tupitsyn created IGNITE-27335:
---------------------------------------
Summary: Client data streamer does not propagate observable
timestamp
Key: IGNITE-27335
URL: https://issues.apache.org/jira/browse/IGNITE-27335
Project: Ignite
Issue Type: Bug
Components: data streamer ai3, thin clients ai3
Reporter: Pavel Tupitsyn
Assignee: Pavel Tupitsyn
Fix For: 3.2
STREAMER_BATCH_SEND client op returns zero observable timestamp. As a result,
the changes made by the streamer are not observed by the client right away.
Add the following to *ItAbstractDataStreamerTest*
{code:java}
@Test
public void testManyItemsSql() {
ignite().sql().executeScript("delete from " + TABLE_NAME);
int count = 10_000;
RecordView<Tuple> view = defaultTable().recordView();
CompletableFuture<Void> streamerFut;
try (var publisher = new
SubmissionPublisher<DataStreamerItem<Tuple>>()) {
var options = DataStreamerOptions.builder().pageSize(42).build();
streamerFut = view.streamData(publisher, options);
for (int i = 0; i < count; i++) {
publisher.submit(DataStreamerItem.of(tuple(i, "foo-" + i)));
}
}
streamerFut.orTimeout(30, TimeUnit.SECONDS).join();
ArrayList<String> sqlRes = new ArrayList<>(count);
ResultSet<SqlRow> resultSet = ignite().sql().execute(null, "SELECT name
FROM " + TABLE_NAME + " order by id");
resultSet.forEachRemaining(row -> sqlRes.add(row.stringValue(0)));
assertEquals(count, sqlRes.size());
for (int i = 0; i < sqlRes.size(); i++) {
assertEquals("foo-" + i, sqlRes.get(i));
}
}
{code}
The SQL query sees incomplete results:
{code}
Expected :10000
Actual :5628
{code}
(the actual number is random)
--
This message was sent by Atlassian Jira
(v8.20.10#820010)