Myracle commented on issue #7226: FLINK-11050 add lowerBound and upperBound for optimizing RocksDBMapState's entries URL: https://github.com/apache/flink/pull/7226#issuecomment-449844234 Thank you @StefanRRichter for your reply. The items you mentioned are all right and I learn a lot from them. But consider the great performance after my optimization, I think that this will help more persons. My code is already used in our company's online platform and it is stable for a long time. We just use IntervalJoin to deal our data. Following your suggestions and for code-simple, I think it's better to add filter(lowerBound, upperBound) rather than entries(lowerBound, upperBound) in MapState in semantics, although their function is the same. Also, we add isIntervalJoinSeekOptimization in config to open the optimization. This optimization is not open to users. Currently, only rocksDB's filter is supported. Because rocksDB's storage is different than others and only rocksDB supports large state . Also, rocksDB supports lowerBound and upperBound interfaces for users to optimize seek. Consider the specific implement for rocksDB, we only open the optimization by config parameter. For comparable, we will give a note in the comment to warn developers of key-types. Anyone who wants to use this function must guarantee the comparison for the key. As for my case in the intervalJoinOperator, the key is timestamp and it is comparable in byte-lexicographical. For upperBound, rocksDB does't support setIterateUpperBound in ReadOptions until the rocksdbjni version 5.9.2. Flink rocksdbjni's version is 5.7.5. Above is my thought. The code is modified too. Thank you.
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services
