aerospike / aerospike-client-java

Aerospike Java Client Library
Other
236 stars 212 forks source link

Getting "basic scan got unsupported old scan options" #194

Closed monrealis closed 3 years ago

monrealis commented 3 years ago

We get "Jul 13 2021 10:48:58 GMT: WARNING (scan): (scan.c:681) basic scan got unsupported old scan options" on the server side and "Error Code 16: Unsupported Server Feature com.aerospike.client.AerospikeException: Error Code 16: Unsupported Server Feature" on the client side after upgrading server to 5.6.0.7.

Is it possible to somehow query the server from aerospike java client 3. or 4.? What's the oldest version that would work? Is there some workaround to avoid this issue?

monrealis commented 3 years ago

Seems to be working with 4.4.10 and not working with 4.4.9.

BrianNichols commented 3 years ago

The newer servers stopped supporting scan priority and scan percent fields. Java client 4.4.9 always sends these fields on scans, but 4.4.10 only sends those fields when scan priority or scan percent are not the defaults.

Java client 5.1.0 removed those scan fields on the client side. See https://docs.aerospike.com/docs/client/java/usage/incompatible.html

monrealis commented 3 years ago

Funny thing: I did not use scan priorities, I did not use scan percent fields and I did not use scans at all (I used queries, which got executed as scans).

monrealis commented 3 years ago

Thanks for explanation, I saw everything in code, just wanted to confirm.

monrealis commented 3 years ago

Tell me please if those scan options are so unimportant that they can be ignored on the client side, why can't they be ignored on the server side? :)

BrianNichols commented 3 years ago

Those scan options were eventually removed on the client side after the server removed them. You are using an older client with a newer server, which sometimes causes gaps like this when both client and server are quickly evolving.

monrealis commented 3 years ago

I understand that. But why fail on the server side instead of ignoring?

BrianNichols commented 3 years ago

I do not make those decisions. I also don't understand why you can't use java client 4.4.10. That version (and all succeeding client versions) do not send the scan options to server 5.6.0.7.

monrealis commented 3 years ago

It's not related to this single issue, but when designing your newer version of client, take a look and how they did in JDBC. It's compatible for >20 years already and it will be compatible for > 30 years more.