Sorry, please ignore the previous email, it was sent by mistake.
1. I download apache-ignite-fabric-1.9.0-bin.zip, and unzip it.
2. In terminal, I start an ignite instance by *bin/ignite.sh
examples/config/example-ignite.xml*
3. I create a Java application, source code as below:
public static void main(String[] args) {
String ORG_CACHE = "org_cache_remote";
* Ignition.setClientMode(true);*
Ignite ignite = Ignition.start("example-ignite.xml");
CacheConfiguration<Long, Organization> orgCacheCfg = new
CacheConfiguration<>(ORG_CACHE);
orgCacheCfg.setIndexedTypes(Long.class, Organization.class);
ignite.destroyCache(ORG_CACHE);
IgniteCache<Long, Organization> cache = ignite.createCache(orgCacheCfg);
cache.put(1L, new Organization(1L, "org1", true, "jurong east",
"1111"));
cache.put(2L, new Organization(2L, "org2", false, "orchard", "2222"));
cache.put(3L, new Organization(3L, "org3", true, "jurong west",
"3333"));
cache.put(4L, new Organization(4L, "org4", false, "woodlands", "4444"));
cache.put(5L, new Organization(5L, "org5", false, "changi", "5555"));
// cache.put(6L, new Organization(6L, "org6", true, "jurong island",
"6666"));
IgniteCache<Long, BinaryObject> binaryCache = cache.withKeepBinary();
List<Cache.Entry<Long, BinaryObject>> result;
System.out.println("Scan by address");
ScanQuery<Long, BinaryObject> scanAddress = new ScanQuery<>(
new IgniteBiPredicate<Long, BinaryObject>() {
@Override
public boolean apply(Long aLong, BinaryObject binaryObject) {
*// first time filter by jurong, got two entries, org1 and
org3*
* // second time filter by changi, got two entries, org1 and
org3*
* // third time filter by changi as well, uncomment org6,
got three entries, org1, org3 and org6*
* return
binaryObject.<String>field("address").startsWith("jurong");*
}
}
);
result = binaryCache.query(scanAddress).getAll();
System.out.println("result: " + result.size());
for (Cache.Entry<Long, BinaryObject> entry : result) {
System.out.println(entry.getValue().deserialize().toString());
}
ignite.close();
}
Here what I want to do is start a client node, connect to the server node
started in step 2. Then I create a cache, put some data inside,
then try to run a scan query to find entries by its address.
The problem is when I run this program first time, it will return two
entries, their addresses are started with "jurong", which is correct.
When I run the program again, with changed value, eg. "changi", it should
return one entry, somehow, it still return two entries with address started
with "jurong", rather than "changi".
When I uncomment the line of "org6", and run the program again, it will
return three entries, all of their addresses are started with "jurong".
I have no idea what is going on.