----- Original Message ----- > From: "Abhishek Dixit" <dixitabhi@xxxxxxxxx> > To: "Yehuda Sadeh-Weinraub" <yehuda@xxxxxxxxxx>, "ZHOU Yuan" <dunk007@xxxxxxxxx> > Cc: "ceph-devel" <ceph-devel@xxxxxxxxxxxxxxx> > Sent: Monday, March 16, 2015 11:31:55 PM > Subject: Re: RGW : Transaction Id in response? > > On Sat, Feb 28, 2015 at 6:54 AM, ZHOU Yuan <dunk007@xxxxxxxxx> wrote: > > On Fri, Feb 27, 2015 at 6:31 PM, Abhishek Dixit <dixitabhi@xxxxxxxxx> > > wrote: > >> On Thu, Feb 26, 2015 at 10:51 PM, Yehuda Sadeh-Weinraub > >> <yehuda@xxxxxxxxxx> wrote: > >>> > >>> > >>> ----- Original Message ----- > >>>> From: "Abhishek Dixit" <dixitabhi@xxxxxxxxx> > >>>> To: "ceph-devel" <ceph-devel@xxxxxxxxxxxxxxx> > >>>> Sent: Wednesday, February 25, 2015 8:35:40 PM > >>>> Subject: RGW : Transaction Id in response? > >>>> > >>>> Hi, > >>>> > >>>> I was doing comparison of Open Stack Swift response headers and Ceph > >>>> RGW response. > >>>> This is in regard to X-Trans-Id header in response from Open Stack > >>>> Swift storage. > >>>> Swift response to a request always have the header "X-Trans-Id". > >>>> X-Trans-Id : A unique transaction identifier for this request. > >>>> > >>>> X-Trans-Id seems to serve two purpose: > >>>> 1. Every log messages for a request will carry this and aid in > >>>> debugging/analyzing. > >>>> 2. Benchmarking for latency. > >>>> > >>>> So, do we have similar unique identifier in Ceph RGW response which > >>>> associates with each request? > >>>> > >>>> Or do we need add support for this? > >>>> > >>> > >>> At the moment there is no such identifier. We can leverage the rados > >>> client instance id that each radosgw instance gets when connecting to > >>> the backend, and there's also a unique running number that we use to > >>> identify each request within that gateway. We can probably concatenate > >>> these and return it as the unique identifier. > >>> > >>> Yehuda > >>> > >> > >> > >> Hi Yehuda, > >> > >> I will add "X-Trans-Id" as per you suggested approach. > >> I have opened a new issue particularly for adding "X-Trans-Id" as many > >> other issues report absence of this header. > >> > >> I have assigned this to myself. > >> http://tracker.ceph.com/issues/10970 > >> > > > > > > Hi Yehuda, Abhishek, > > > > may be we should follow the swift way considering the goal is to keep > > compatible with swift? This might make the log analysis a bit easier > > for swift cluster operators. > > > > def generate_trans_id(trans_id_suffix): > > return 'tx%s-%010x%s' % ( > > uuid.uuid4().hex[:21], time.time(), quote(trans_id_suffix)) > > > > The trans_id_suffix is configurable in swift setup. > > > > Thanks, -yuan > > > >> Thanks > >> Abhishek Dixit > >> -- > >> To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > >> the body of a message to majordomo@xxxxxxxxxxxxxxx > >> More majordomo info at http://vger.kernel.org/majordomo-info.html > > > Hi Yehuda, Yuan > > req_state already has req_id generated by concatenating instance_id > and RGWRequest id field > But this RGWRequest id field is not set when new RGWRequest is done in > civetweb_callback function. > So, id remains as zero. > For "new RGWLoadGenRequest" and "new RGWFCGXRequest" id is updated to > max_req_id. > So do we need to fix req->id for new RGWRequest of civetweb_callback > as at this point only, request are generated in my setup? We definitely need to fix that. > > Also, I have added uuid field in RGWRequest, from which we derive > trans_id field added in struct req_state. > This field trans_id of struct req_state is used when we are sending > Swift response. > I have concatenated trans_id with current time in milliseconds to > generate X-Trans-Id header in Swift response. > > I have created a pull request on above lines. > https://github.com/ceph/ceph/pull/4023 Thank you, I will take a look. Yehuda > > Thanks > Abhishek > -- > To unsubscribe from this list: send the line "unsubscribe ceph-devel" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe ceph-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html