Hi Zakelly, Thanks for the proposal! The structure of the Async API generally looks good to me. Some comments on the details of the design are as follows.
+1 for JingGe's suggestion to introduce an AsyncState API, instead of having both get() and asyncGet() in the same State class. As a supplement to its benefits, this design could help avoid having users to use sync and async API in a mixed way (unless they create both a State and an AsyncState from the same state descriptor), which is supposed to bring suboptimal performance according to the FLIP's description. I noticed that the FLIP proposes to place the newly introduced API in the package "org.apache.flink.api.common.state.v2", which seems a little strange to me as there has not been such a naming pattern ".v2." for packages in Flink. I would suggest discussing this topic with the main authors of Datastream V2, like Weijie Guo, so that the newly introduced APIs from both sides comply with a unified naming style. If we reach an agreement on the first comment, my personal idea is that we can place the AsyncState interfaces to "org.apache.flink.api.common.state.async", and the existing state APIs to "org.apache.flink.api.common.state" or "org.apache.flink.api.common.state.sync". Best regards, Yunfeng Zhou On Thu, Mar 7, 2024 at 4:48 PM Zakelly Lan <zakelly....@gmail.com> wrote: > > Hi devs, > > I'd like to start a discussion on a sub-FLIP of FLIP-423: Disaggregated > State Storage and Management[1], which is a joint work of Yuan Mei, Zakelly > Lan, Jinzhong Li, Hangxiang Yu, Yanfei Lei and Feng Wang: > > - FLIP-424: Asynchronous State APIs [2] > > This FLIP introduces new APIs for asynchronous state access. > > Please make sure you have read the FLIP-423[1] to know the whole story, and > we'll discuss the details of FLIP-424[2] under this mail. For the > discussion of overall architecture or topics related with multiple > sub-FLIPs, please post in the previous mail[3]. > > Looking forward to hearing from you! > > [1] https://cwiki.apache.org/confluence/x/R4p3EQ > [2] https://cwiki.apache.org/confluence/x/SYp3EQ > [3] https://lists.apache.org/thread/ct8smn6g9y0b8730z7rp9zfpnwmj8vf0 > > > Best, > Zakelly