dlmarion commented on PR #2665: URL: https://github.com/apache/accumulo/pull/2665#issuecomment-1153850271
> They [scan hints] were never intended to change anything about data returned I equate scan hints with Oracle's [optimizer hints](https://docs.oracle.com/cd/B19306_01/server.102/b14211/hintsref.htm#i17496) which allow the user to alter the execution plan for the query. I agree that scan hints should affect how the scan gets executed and not affect the results being returned. > It's weird to ask for eventual consistency. Nobody wants eventual consistency. Eventual consistency is always tolerated, never desired. I think setting the consistency level is the means for achieving a specific goal. Some applications may require strict consistency for correctness and others may be more concerned with speed. I looked for how other products exposed consistency levels in their api. Specifically I was looking for products that used consistency level and not some other name to show that it's not uncommon. This is by no means a complete list, but just some examples of products that document their consistency levels and then provide a method for setting the consistency level in their api. 1. [Microsoft Cosmos DB](https://docs.microsoft.com/en-us/azure/cosmos-db/sql/how-to-manage-consistency?tabs=portal%2Cdotnetv2%2Capi-async#configure-the-default-consistency-level) uses a method called `consistencyLevel` 2. [Amazon DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.ReadConsistency.html) has read operations that take a `ConsistentRead` parameter 3. [HashiCorp Consul](https://www.consul.io/api-docs/features/consistency#overriding-a-request-s-consistency-mode) has a HTTP API query parameter for specifying the consistency level Since immediate/strict consistency is the default, maybe we just need a method to disable it for a specific query instead of specifying the value. For example, `enableEventualConsistency()`, `relaxReadGuarantees()`, `disableConsistentReads()`, `allowStaleReads()`, etc. I'm also thinking that there should be a table configuration that enables/disables this feature. Currently, an admin can spin up some ScanServers and an application developer can enable eventual consistency, but do we want that on the `metadata` table for example? -- 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]
