-
Notifications
You must be signed in to change notification settings - Fork 29
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NullPointer exception when overriding AerospikeTypeAliasAccessor(null) after update to 4.7.1 #743
Comments
Hello @Ferioney, |
Hello, Could you please support backward compatibility in your clients? Once backward compatibility will be provided from aerospike client version x.y.z, we will block internally all the clients with the lower versions. Such an approach will help us to keep the production environment healthy. Thanks |
@vladislav-sidorovich, could you elaborate on your client backward compatibility request? |
@vladislav-sidorovich Can you please elaborate on what is exactly meant by "backward compatibility in aerospike clients"? The change of writing Maps to TreeMaps instead of HashMaps has been applied in Spring Data Aerospike and across different Aerospike frameworks as far as I remember to ensure comparing Maps. As an alternative solution, there is an opportunity to add a configuration flag that will enable to write Maps as HashMaps instead of TreeMaps. |
@agrgr yes, the flag is much better, we will use the flag during the library update and it should help us. @reugn the scenario is the following: |
I see, so by "client" you meant the Spring Data library. |
Yes, sorry if it was confusing. I mean |
The configuration flag will be a part of the upcoming 4.8.0 release expected within about a week. |
@Ferioney and @vladislav-sidorovich, the version 4.8.0 with the configuration flag has been released. |
@Ferioney, @vladislav-sidorovich PR #745 introduced a configuration property that allows using unsorted maps for write operations, which provides backward compatibility with previous library versions. Please note that we recommend switching to the default after the migration is complete. |
@Ferioney feel free to reopen if you have any further questions. |
Hi folks,
I upgraded my application from Spring Data Aerospike from
3.5.0
to4.7.1
.In the application, I override
AerospikeTypeAliasAccessor
bean to skip writing@class
bin:My application does regular
findById
andupdate
(save
) operations.Then I deployed my application to the environment. I use k8s rolling update. After a new pod (based on
4.7.1
) started I saw that all older pods (based on3.5.0
) threw a null pointer exception for findById operation:NullPointerException log
After research, I found that version
4.2.0
changed the behaviour of map-key ordering (in the case of the ordered mapTreeMap
is used, FMWK-53 Find by POJO). These changes were not applicable when usingAerospikeTypeAliasAccessor(null)
Fix null pointer issue when typeKey is set as null and it was fixed in4.7.0
.Now I have a situation where some documents that were updated by the new pods (
4.7.1
) can not be fetched by older pods (3.5.0
).I understand that I can deploy a new version with the new map-key ordering and wait until older pods are killed. But for deploying
time I will have a lot of errors. In a real production environment, I have а hundreds pods of applications and high load. Deploying time can take 30-60 mins. In case of deploying, I will affect real users for deploying time.
I didn't find any possibility to change map-key ordering. Is it possible to add some flag that can switch map-key ordering?
The text was updated successfully, but these errors were encountered: