I think let's try again. Would it be reasonable to declare this 'experimental' for the time being, just as we did with Flight/Flight SQL/etc?
On Tue, Mar 19, 2024, at 15:24, Matt Topol wrote: > Hey All, It's been another month and we've gotten a whole bunch of feedback > and engagement on the document from a variety of individuals. Myself and a > few others have proactively attempted to reach out to as many third parties > as we could, hoping to pull more engagement also. While it would be great > to get even more feedback, the comments have slowed down and we haven't > gotten anything in a few days at this point. > > If there's no objections, I'd like to try to open up for voting again to > officially adopt this as a protocol to add to our docs. > > Thanks all! > > --Matt > > On Sat, Mar 2, 2024 at 6:43 PM Paul Whalen <pgwha...@gmail.com> wrote: > >> Agreed that it makes sense not to focus on in-place updating for this >> proposal. I’m not even sure it’s a great fit as a “general purpose” Arrow >> protocol, because of all the assumptions and restrictions required as you >> noted. >> >> I took another look at the proposal and don’t think there’s anything >> preventing in-place updating in the future - ultimately the data body could >> just be in the same location for subsequent messages. >> >> Thanks! >> Paul >> >> On Fri, Mar 1, 2024 at 5:28 PM Matt Topol <zotthewiz...@gmail.com> wrote: >> >> > > @pgwhalen: As a potential "end user developer," (and aspiring >> > contributor) this >> > immediately excited me when I first saw it. >> > >> > Yay! Good to hear that! >> > >> > > @pgwhalen: And it wasn't clear to me whether updating batches in >> > place (and the producer/consumer coordination that comes with that) was >> > supported or encouraged as part of the proposal. >> > >> > So, updating batches in place was not a particular use-case we were >> > targeting with this approach. Instead using shared memory to produce and >> > consume the buffers/batches without having to physically copy the data. >> > Trying to update a batch in place is a dangerous prospect for a number of >> > reasons, but as you've mentioned it can technically be made safe if the >> > shape is staying the same and you're only modifying fixed-width data >> types >> > (i.e. not only is the *shape* unchanged but the sizes of the underlying >> > data buffers are also remaining unchanged). The producer/consumer >> > coordination that would be needed for updating batches in place is not >> part >> > of this proposal but is definitely something we can look into as a >> > follow-up to this for extending it. There's a number of discussions that >> > would need to be had around that so I don't want to add on another >> > complexity to this already complex proposal. >> > >> > That said, if you or anyone see something in this proposal that would >> > hinder or prevent being able to use it for your use case please let me >> know >> > so we can address it. Even though the proposal as it currently exists >> > doesn't fully support the in-place updating of batches, I don't want to >> > make things harder for us in such a follow-up where we'd end up requiring >> > an entirely new protocol to support that. >> > >> > > @octalene.dev: I know of a third party that is interested in Arrow for >> > HPC environments that could be interested in the proposal and I can see >> if >> > they're interested in providing feedback. >> > >> > Awesome! Thanks much! >> > >> > >> > For reference to anyone who hasn't looked at the document in a while, >> since >> > the original discussion thread on this I have added a full "Background >> > Context" page to the beginning of the proposal to help anyone who isn't >> > already familiar with the issues this protocol is trying to solve or >> isn't >> > already familiar with ucx or libfabric transports to better understand >> > *why* I'm >> > proposing this and what it is trying to solve. The point of this >> background >> > information is to help ensure that anyone who might have thoughts on >> > protocols in general or APIs should still be able to understand the base >> > reasons and goals that we're trying to achieve with this protocol >> proposal. >> > You don't need to already understand managing GPU/device memory or ucx to >> > be able to have meaningful input on the document. >> > >> > Thanks again to all who have contributed so far and please spread to any >> > contacts that you think might be interested in this for their particular >> > use cases. >> > >> > --Matt >> > >> > On Wed, Feb 28, 2024 at 1:39 AM Aldrin <octalene....@pm.me.invalid> >> wrote: >> > >> > > I am interested in this as well, but I haven't gotten to a point where >> I >> > > can have valuable input (I haven't tried other transports). I know of a >> > > third party that is interested in Arrow for HPC environments that could >> > be >> > > interested in the proposal and I can see if they're interested in >> > providing >> > > feedback. >> > > >> > > I glanced at the document before but I'll go through again to see if >> > there >> > > is anything I can comment on. >> > > >> > > >> > > >> > > # ------------------------------ >> > > # Aldrin >> > > >> > > >> > > https://github.com/drin/ >> > > https://gitlab.com/octalene >> > > https://keybase.io/octalene >> > > >> > > >> > > On Tuesday, February 27th, 2024 at 17:43, Paul Whalen < >> > pgwha...@gmail.com> >> > > wrote: >> > > >> > > > As a potential "end user developer," (and aspiring contributor) this >> > > > immediately excited me when I first saw it. >> > > > >> > > >> > > > I work at a trading firm, and my team has developed an IPC mechanism >> > for >> > > > efficiently transmitting pandas dataframes both remotely via TCP and >> > > > locally via shared memory, where the interface for the application >> > > > developer is the same for both. The data in the dataframes may change >> > > > rapidly, so when communicating locally via shared memory, if the >> shape >> > of >> > > > the dataframe doesn't change, we update the memory in place, >> > coordinating >> > > > between the producer and consumer via TCP. >> > > > >> > > >> > > > We intend to move away from our remote TCP mechanism towards Arrow >> > > Flight, >> > > > or a lighter-weight version of Arrow IPC. For the local shared memory >> > > > mechanism which we previously did not have a good answer for, it >> seems >> > > like >> > > > Disassociated Arrow IPC maps quite well to our problem. >> > > > >> > > >> > > > So some features that enable our use case are: >> > > > - Updating existing batches in place is supported >> > > > - The interface is pretty similar to Flight >> > > > >> > > >> > > > I'd imagine we're not the only financial firm to implement something >> > like >> > > > this, given how widespread pandas usage is, so that could be a place >> to >> > > > seek feedback. >> > > > >> > > >> > > > As I was reading the proposal initially, I gleaned that the most >> > > important >> > > > audience was those writing interfaces to GPUs/remote >> > memory/non-standard >> > > > transports/etc. And it wasn't clear to me whether updating batches in >> > > > place (and the producer/consumer coordination that comes with that) >> was >> > > > supported or encouraged as part of the proposal. But regardless, as >> an >> > > end >> > > > user, this seems like an easier and more efficient way to glue pieces >> > in >> > > > the Arrow ecosystem together if it was adopted broadly. >> > > > >> > > >> > > > Paul >> > > > >> > > >> > > > On Tue, Feb 27, 2024 at 6:05 PM Matt Topol zotthewiz...@gmail.com >> > wrote: >> > > > >> > > >> > > > > I'll continue my efforts of trying to reach out to other interested >> > > > > parties, but if anyone else here has any contacts or connections >> that >> > > they >> > > > > think might be interested please forward them the link to the >> Google >> > > doc. >> > > > > >> > > >> > > > > I really do want to get as much engagement and feedback as possible >> > on >> > > > > this. >> > > > > >> > > >> > > > > Thanks! >> > > > > >> > > >> > > > > On Tue, Feb 27, 2024, 6:38 PM Wes McKinney wesmck...@gmail.com >> > wrote: >> > > > > >> > > >> > > > > > Have there been efforts to proactively reach out to other third >> > > parties >> > > > > > that might have an interest in this or be a potential user at >> some >> > > point? >> > > > > > There are a lot of interested parties in Arrow that may not >> > actively >> > > > > > follow >> > > > > > the mailing list. >> > > > > > >> > > >> > > > > > Seems like folks from the Dask, Ray, RAPIDS (especially folks at >> > > NVIDIA >> > > > > > or >> > > > > > working on UCX), or other communities like that might have >> > > constructive >> > > > > > thoughts about this. DLPack ( >> https://dmlc.github.io/dlpack/latest/ >> > ) >> > > also >> > > > > > seems adjacent and worth reaching out to. Other ideas for >> projects >> > or >> > > > > > companies that could be reached out to for feedback. >> > > > > > >> > > >> > > > > > On Tue, Feb 27, 2024 at 5:23 PM Antoine Pitrou >> anto...@python.org >> > > > > > wrote: >> > > > > > >> > > >> > > > > > > If there's no engagement, then I'm afraid it might mean that >> > third >> > > > > > > parties have no interest in this. I don't really have any >> > solution >> > > for >> > > > > > > generating engagement except nagging and pinging people >> > explicitly >> > > :-) >> > > > > > > >> > > >> > > > > > > Le 27/02/2024 à 19:09, Matt Topol a écrit : >> > > > > > > >> > > >> > > > > > > > I would like to see the same Antoine, currently given the >> lack >> > of >> > > > > > > > engagement (both for OR against) I was going to take the >> > silence >> > > as >> > > > > > > > assent >> > > > > > > > and hope for non-Voltron Data PMC members to vote in this. >> > > > > > > > >> > > >> > > > > > > > If anyone has any suggestions on how we could potentially >> > > generate >> > > > > > > > more >> > > > > > > > engagement and discussion on this, please let me know as I >> want >> > > as >> > > > > > > > many >> > > > > > > > parties in the community as possible to be part of this. >> > > > > > > > >> > > >> > > > > > > > Thanks everyone. >> > > > > > > > >> > > >> > > > > > > > --Matt >> > > > > > > > >> > > >> > > > > > > > On Tue, Feb 27, 2024 at 12:48 PM Antoine Pitrou >> > > anto...@python.org >> > > > > > > > wrote: >> > > > > > > > >> > > >> > > > > > > > > Hello, >> > > > > > > > > >> > > >> > > > > > > > > I'd really like to see more engagement and criticism from >> > > > > > > > > non-Voltron >> > > > > > > > > Data parties before this is formally adopted as an Arrow >> > spec. >> > > > > > > > > >> > > >> > > > > > > > > Regards >> > > > > > > > > >> > > >> > > > > > > > > Antoine. >> > > > > > > > > >> > > >> > > > > > > > > Le 27/02/2024 à 18:35, Matt Topol a écrit : >> > > > > > > > > >> > > >> > > > > > > > > > Hey all, >> > > > > > > > > > >> > > >> > > > > > > > > > I'd like to propose a vote for us to officially adopt the >> > > protocol >> > > > > > > > > > described in the google doc[1] for Dissociated Arrow IPC >> > > > > > > > > > Transports. >> > > > > > > > > > This >> > > > > > > > > > proposal was originally discussed at 2. Once this >> proposal >> > is >> > > > > > > > > > adopted, >> > > > > > > > > > I >> > > > > > > > > > will work on adding the necessary documentation to the >> > Arrow >> > > > > > > > > > website >> > > > > > > > > > along >> > > > > > > > > > with examples etc. >> > > > > > > > > > >> > > >> > > > > > > > > > The vote will be open for at least 72 hours. >> > > > > > > > > > >> > > >> > > > > > > > > > [ ] +1 Accept this Proposal >> > > > > > > > > > [ ] +0 >> > > > > > > > > > [ ] -1 Do not accept this proposal because... >> > > > > > > > > > >> > > >> > > > > > > > > > Thank you everyone! >> > > > > > > > > > >> > > >> > > > > > > > > > --Matt >> > > > > > > > > > >> > > >> > > > > > > > > > [1]: >> > > > > >> > > >> > > > > >> > > >> > >> https://docs.google.com/document/d/1zHbnyK1r6KHpMOtEdIg1EZKNzHx-MVgUMOzB87GuXyk/edit#heading=h.38515dnp2bdb >> > >>