cshannon commented on PR #5284: URL: https://github.com/apache/accumulo/pull/5284#issuecomment-2614488519
> > I believe most of the code assumes the TabletMergeability column always exists, but I'm not sure if we should be handling it missing. I don't recall if we talked about adding it on upgrade or not if not set. > > I like assuming it always exists and resolving things at upgrade. Could mark everything as never at upgrade since we do not know. In the past when things were not resolved at upgrade and conditional logic was left in the code for old versions of Accumulo it caused really hard to test tech debt to accumulate. Ok that makes sense, I went back and looked at my last PR and one thing I did do was [set](https://github.com/apache/accumulo/blob/a156308c82ddef3f3716d569f85a4aac482875d6/core/src/main/java/org/apache/accumulo/core/metadata/schema/TabletMetadata.java#L705) the default in the TabletMetadata builder to NEVER which is the same pattern that TabletAvailability [uses](https://github.com/apache/accumulo/blob/a156308c82ddef3f3716d569f85a4aac482875d6/core/src/main/java/org/apache/accumulo/core/metadata/schema/TabletMetadata.java#L698) (sets to ONDEMAND). We can still handle it on upgrade but at least if it was missing it would set a default and not fail. > > > Do you have any ideas on how to better test the API for retrieving TabletMergeabilityInfo on errors? The logic will retry splits if there are errors but I couldn't think of a great way to test it, at least with integration tests. Maybe we need something with mocking. > > Its probabilistic, but could create 10 threads that each add 100 splits to a table. Each thread adds some splits that are unique to it and some that are common to all threads. This should cause colllisions and retries in the code. After all the threads are done should be able to see an expected set of splits and mergabilites. > That is a good idea I'll see what I can come up with for a test. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
