Hi Christoph,

Thanks for your suggestion and review. I've made the branch 
mysqlnd-azure-php723-1.0.0 the default branch. 
@pecl-dev@lists.php.net   May I ask is there any update for  my PHP and PECL 
account requests? Many thanks.

Best Regards,
Qianqian Bu

> -----Original Message---------------------------------------------
> From: Christoph M. Becker <cmbecke...@gmx.de>
> Sent: Thursday, September 26, 2019 4:25 PM
> To: Qianqian Bu <qianqian...@microsoft.com>; pecl-dev@lists.php.net
> Cc: Hong Wang (R&D) <how...@microsoft.com>; Hang Zhang
> <h...@microsoft.com>; Xiangyu Hu <xiangyu...@microsoft.com>; Shuode Li
> <shu...@microsoft.com>; Andrea Lam <andrea....@microsoft.com>
> Subject: Re: Request for submitting a PECL extension which uses
> mysqlndpluginAPIand enables redirection functionality for MySQL servers
> 
> Hi Qianqian Bu!
> 
> On 24.09.2019 at 04:19, Qianqian Bu via pecl-dev wrote:
> 
> > Hi Christoph,
> >
> > Thanks for checking. The actual code is only on branch mysqlnd-azure-
> php723-1.0.0 or tag v1.0.0. Is this ok? Can you have a look again?  Thanks.
> 
> Sorry, I missed that.  I think it's okay to use some other branch as master as
> the default branch; you may consider to mark that branch as default branch
> in the Github settings.
> 
> From a quick review, the actual code and meta information (package.xml,
> LICENSE, etc.) looks good to me, and I consider this to be a useful mysqlnd
> plugin which should be available on PECL, what would increase public 
> visibility
> of the extension, and would make it easier to use (e.g. for Windows there
> would be pre-built DLLs).
> 
> So, could any of the admins please approve the PHP and PECL account
> requests, and grant the necessary karma?  Thanks in advance.
> 
> Best regards,
> Christoph
> 
> > Best Regards,
> > Qianqian Bu
> >
> >> -----Original Message-----
> >> From: Christoph M. Becker <cmbecke...@gmx.de>
> >> Sent: Tuesday, September 24, 2019 1:12 AM
> >> To: Qianqian Bu <qianqian...@microsoft.com>; pecl-dev@lists.php.net
> >> Cc: Hong Wang (R&D) <how...@microsoft.com>; Hang Zhang
> >> <h...@microsoft.com>; Xiangyu Hu <xiangyu...@microsoft.com>;
> Shuode Li
> >> <shu...@microsoft.com>; Andrea Lam <andrea....@microsoft.com>
> >> Subject: Re: Request for submitting a PECL extension which uses
> >> mysqlnd pluginAPIand enables redirection functionality for MySQL
> >> servers
> >>
> >> Hi Qianqian Bu,
> >>
> >>
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgi
> >> t
> hub.com%2Fmicrosoft%2Fmysqlnd_azure&amp;data=02%7C01%7CQianqian.
> >>
> Bu%40microsoft.com%7C415eada329404f827dd108d7404926ff%7C72f988bf8
> >>
> 6f141af91ab2d7cd011db47%7C1%7C0%7C637048555261501446&amp;sdata=C
> >>
> qL3O2oH4g8RcQVUv%2Fs6kZ%2F%2FUM0qi%2FQ3BpmdZcjmP0Y%3D&amp;
> >> reserved=0> looks fine so far, but there is no actual code yet; I
> >> only can see .gitignore, LICENSE.txt and README.md.
> >>
> >> Best regards,
> >> Christoph
> >>
> >> On 20.09.2019 at 08:37, Qianqian Bu wrote:
> >>
> >>> Hi Christoph,
> >>>
> >>> It has been a while, and we have a public repo
> >>
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit
> >> h
> ub.com%2Fmicrosoft%2Fmysqlnd_azure&amp;data=02%7C01%7CQianqian.B
> >>
> u%40microsoft.com%7C415eada329404f827dd108d7404926ff%7C72f988bf86f
> >>
> 141af91ab2d7cd011db47%7C1%7C0%7C637048555261501446&amp;sdata=Cq
> >>
> L3O2oH4g8RcQVUv%2Fs6kZ%2F%2FUM0qi%2FQ3BpmdZcjmP0Y%3D&amp;r
> >> eserved=0 available now for the extension source code. I've created
> >> the package.xml file and add a brief Readme.txt under folder
> mysqlnd_azure.
> >> Could you help review the code again if any problem?  The user name
> >> in the package.xml is invalid since I just submitted the php user
> >> account form and request is not finished yet.  Thanks.
> >>>
> >>> Best Regards,
> >>> Qianqian Bu
> >>>
> >>>
> >>> -----Original
> >>> Message-------------------------------------------------------------
> >>> --
> >>> --------------------------------------------------
> >>> From: Christoph M. Becker <cmbecke...@gmx.de>
> >>> Sent: Monday, August 12, 2019 4:56 PM
> >>> To: Qianqian Bu <qianqian...@microsoft.com>; pecl-dev@lists.php.net
> >>> Cc: Hong Wang (R&D) <how...@microsoft.com>; Hang Zhang
> >>> <h...@microsoft.com>; Xiangyu Hu <xiangyu...@microsoft.com>;
> Shuode
> >> Li
> >>> <shu...@microsoft.com>
> >>> Subject: Re: Request for submitting a PECL extension which uses
> >>> mysqlnd pluginAPIand enables redirection functionality for MySQL
> >>> servers
> >>>
> >>> Hi Qianqian Bu!
> >>>
> >>> On 12.08.2019 at 05:03, Qianqian Bu via pecl-dev wrote:
> >>>
> >>>> Hi Christoph,
> >>>>
> >>>> Thanks so much for your checking and response. For the code repo,
> >>>> we
> >> currently have  a private github repo which is currently on-going
> >> legal review and will be publicly accessible in near future.  I think
> >> it will be suitable to hold the code, I'll update with you when it is
> >> ready.  And I'll try to generate package.xml later. There is a change
> >> for the extension implementation, that is we decide to rename the
> >> extension with name from mysqlnd_rd to mysqlnd_azure, may I ask does
> the name sound good to you?
> >>>
> >>> I have no objections regarding the name.
> >>>
> >>> Regards,
> >>> Christoph
> >>>
> >>>> Thanks & Best Regards,
> >>>> Qianqian Bu
> >>>>
> >>>> -----Original
> >>>> Message------------------------------------------------------------
> >>>> --
> >>>> -
> >>>> ---------------------------------
> >>>> From: Christoph M. Becker <cmbecke...@gmx.de>
> >>>> Sent: Wednesday, August 7, 2019 5:23 PM
> >>>> To: Qianqian Bu <qianqian...@microsoft.com>; pecl-
> d...@lists.php.net
> >>>> Cc: Hong Wang (R&D) <how...@microsoft.com>; Hang Zhang
> >>>> <h...@microsoft.com>; Xiangyu Hu <xiangyu...@microsoft.com>;
> >> Shuode Li
> >>>> <shu...@microsoft.com>
> >>>> Subject: Re: Request for submitting a PECL extension which uses
> >>>> mysqlnd plugin APIand enables redirection functionality for MySQL
> >>>> servers
> >>>>
> >>>> Hi!
> >>>>
> >>>> On 07.08.2019 at 10:03, Qianqian Bu via pecl-dev wrote:
> >>>>
> >>>>> Dear Madam/Sir,
> >>>>>
> >>>>> My name is Qianqian Bu, I'm from Microsoft company and recently
> >>>>> work
> >> on a project which enables redirection functionality for MySQL
> >> servers using PHP mysqlnd driver. The functionality has been
> >> implemented as a PHP extension using mysqlnd plugin API, and I'd like
> >> to request submitting it to PECL website.
> >>>>>
> >>>>> There is a document
> >>
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fjira.
> >> mariadb.org%2Fbrowse%2FMDEV-
> >>
> 15935&amp;data=02%7C01%7CQianqian.Bu%40microsoft.com%7C415eada32
> >>
> 9404f827dd108d7404926ff%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C
> >>
> 0%7C637048555261501446&amp;sdata=AEX0PZxMiA57jKEH3dwBZEF43wcW3
> >> rv0OpAgLd%2B%2B5Ns%3D&amp;reserved=0  for MariaDB Connector J
> for the
> >> same purpose which you may use as a reference. The document gives the
> >> purpose and initial approach. The final implementation takes use of
> >> the message field of OK packet, server fills the message field with
> >> redirection information, then driver side needs extract the
> >> information and use it to establish a new connection. There is a
> >> ongoing pull request
> >>
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit
> >> h
> >> ub.com%2FMariaDB%2Fmariadb-connector-
> >>
> j%2Fpull%2F134&amp;data=02%7C01%7CQianqian.Bu%40microsoft.com%7C
> >>
> 415eada329404f827dd108d7404926ff%7C72f988bf86f141af91ab2d7cd011db47
> >> %7C1%7C0%7C637048555261501446&amp;sdata=0SB4oVxP7gS%2F4q72g7
> By
> >> MfrKPIHmWgx7s4D8C3TXCtg%3D&amp;reserved=0  for MariaDB
> Connector J
> >> for this, which you may also use as a reference. Following is the
> >> detailed description of the scenario and extension solution for PHP
> mysqlnd.
> >>>>>
> >>>>> Scenario (same as described in MDEV-15935):
> >>>>> Currently when multiple servers share one proxy, proxy forwards
> >>>>> all the
> >> packets between servers and clients. Thus, the proxy adds latency,
> >> take many computing resources and impacts the overall performance.
> >> Especially for short connections scenarios like WordPress, the
> >> latency can be a critical issue.
> >>>>> Supporting redirection mechanism is helpful for proxy-based
> >>>>> scenario. It
> >> is more like HTTP redirects or Oracle redirected connections. Clients
> >> get the servers' address from proxies and connect to servers
> >> transparently without latency and computing resource wasted.
> >>>>>
> >>>>> Extension solution:
> >>>>> We implement the solution as a PECL style extension using mysqlnd
> >> plugin API, and the basic idea is modifying the
> >> MYSQLND_METHOD(mysqlnd_data, connect) method, make it possible to
> >> establish a new connection based on the redirection information
> >> provided by the response OK packet in the last message field, and use
> >> the new connection if connection succeed. And then cache the
> >> redirection information, so next time, it only need one establishment
> >> phase to connect to MySQL server.
> >>>>> There are three MYSQLND_METHOD  methods replaced as follows:
> >>>>> conn_m->connect = MYSQLND_METHOD(mysqlnd_rd, connect);
> >>>>> conn_d_m->connect = MYSQLND_METHOD(mysqlnd_rd_data,
> connect);
> >>>>> conn_d_m->dtor = MYSQLND_METHOD_PRIVATE(mysqlnd_rd_data,
> >> dtor);
> >>>>>
> >>>>> And I've modified the interface of
> >> MYSQLND_METHOD(mysqlnd_rd_data, connect) a little, make the first
> >> parameter as MYSQLND_CONN_DATA ** instead of
> MYSQLND_CONN_DATA *, so
> >> I can modify the content of the connection object the pointer points to.
> >>>>> After the first connection established and before send the
> >> init_command which may update last message field:
> >>>>>        {
> >>>>>               const MYSQLND_CSTRING scheme = { transport.s, transport.l 
> >>>>> };
> >>>>>               if (FAIL == conn->m->connect_handshake(conn,
> >>>>> &scheme,
> >> &username, &password, &database, mysql_flags)) {
> >>>>>                      goto err;
> >>>>>               }
> >>>>>        }
> >>>>> Try to establish a new connection:
> >>>>>                 enum_func_status redirectState =
> >>>>> redirect_conn->m->connect_handshake(redirect_conn,
> >> &redirect_scheme, &redirect_username, &password, &database,
> >> mysql_flags); If succeeds, close the original connection, and update
> >> the connection information:
> >>>>>        conn->m->send_close(conn);
> >>>>>        conn->m->dtor(conn);
> >>>>>        ...
> >>>>>        conn = redirect_conn;
> >>>>>        ...
> >>>>> *pconn = redirect_conn; //use new conn outside for caller
> >>>>>        ...
> >>>>>        hostname = redirect_hostname;
> >>>>>        username = redirect_username;
> >>>>>        port = ui_redirect_port;
> >>>>
> >>>> Thanks for the detailed explanation.  From what I can tell, this
> >>>> looks good
> >> to me.
> >>>>
> >>>>> I've presented the code to @Christoph Becker (HAYS Professional
> >> Solutions GM)<mailto:a-chb...@microsoft.com> before. Since currently
> >> the code is hold on a private repository, and there is a limit foe
> >> email size so I cannot add it in the attachment, may I ask how should
> >> I present the code to you?
> >>>>
> >>>> One option could be to move it to a public Github repository.  Some
> >>>> other
> >> PECL extensions are also hosted there (e.g. Imagick[1]).
> >>>>
> >>>>> The code does not have a package.xml yet, from
> >>
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpea
> >> r
> >> .php.net%2Fmanual%2Fen%2Fpyrus.commands.pickle.php&amp;data=02
> %7
> >>
> C01%7CQianqian.Bu%40microsoft.com%7C415eada329404f827dd108d740492
> >>
> 6ff%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6370485552615014
> >>
> 46&amp;sdata=QR1p4yFGH3RhRrhlsprr7b1%2FW0oxix42ebhZjevxbIU%3D&a
> >> mp;reserved=0 it says that I can use picke with pyrus.phar to
> >> generate the package file, but it seems pyrus.phar cannot work with
> >> PHP7. I cannot find pyrus.phar from pear2.php.net as described on
> >>
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpea
> >> r
> >> .php.net%2Fmanual%2Fen%2Finstallationpyrus.introduction.php&amp;d
> ata
> >>
> =02%7C01%7CQianqian.Bu%40microsoft.com%7C415eada329404f827dd108d
> >>
> 7404926ff%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C6370485552
> >>
> 61501446&amp;sdata=O11jp26x9N0VKsSSAZJlkTUvHQF0JTclManFEkNzixA%3
> >> D&amp;reserved=0, and the download version from
> >>
> https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit
> >> h
> ub.com%2Fpyrus%2FPyrus&amp;data=02%7C01%7CQianqian.Bu%40microso
> >>
> ft.com%7C415eada329404f827dd108d7404926ff%7C72f988bf86f141af91ab2d
> >>
> 7cd011db47%7C1%7C0%7C637048555261511440&amp;sdata=Zgq3Pgguw6Bx
> >> TvYWKHgBdyG0jrVhws6sJFRb8oObhf8%3D&amp;reserved=0 does not
> work, and
> >> the repo has not been updated for many years. May I ask can you give
> >> me some help about how to generate the package.xml file?
> >>>>
> >>>> I've filed a bug report regarding the obviously out-dated Pyrus
> >>>> documentation[2].  It seems to me that you would have to write the
> >>>> package.xml manually. :(
> >>>>
> >>>> [1]
> >>>>
> >>
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgi
> >>>> t
> >>>>
> >>
> hub.com%2FImagick%2Fimagick&amp;data=02%7C01%7CQianqian.Bu%40mi
> >> crosof
> >>>> t
> >>>> .com%7C0f78a037b5ea42ccf72c08d71f02f1a5%7C72f988bf86f141af91ab
> 2d
> >> 7cd01
> >>>> 1
> >>>>
> >>
> db47%7C1%7C0%7C637011969848073885&amp;sdata=vpUVVADXbyQMz5igk
> >> gYMqCZkv
> >>>> J be5QLLd0G7%2BiMhIbA%3D&amp;reserved=0>
> >>>> [2]
> >>>>
> >>
> <https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fpe
> >>>> a
> >>>>
> >>
> r.php.net%2Fbugs%2Fbug.php%3Fid%3D23840&amp;data=02%7C01%7CQian
> >> qian.B
> >>>> u
> >>>> %40microsoft.com%7C0f78a037b5ea42ccf72c08d71f02f1a5%7C72f988bf
> 86
> >> f141a
> >>>> f
> >>>>
> >>
> 91ab2d7cd011db47%7C1%7C0%7C637011969848073885&amp;sdata=eAkV5av
> >> MBWi2e
> >>>> 6 cWxzSXBrPlkXt115EGWuIpASHG4AM%3D&amp;reserved=0>
> >>>>
> >>>> Thanks,
> >>>> Christoph
> >>>>
> >>>


-- 
PECL development discussion Mailing List (http://pecl.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to