Hi Nishani,

Any progress on your module for including the SQL query in the UI?

Thanks,
Nick

On Wed, Jun 24, 2015 at 11:46 AM, Ayola Jayamaha <raphaelan...@gmail.com>
wrote:

> Hi All,
> I'll create a javascript module in angular to solve this issue and share.
>
> Thanks,
> Nishani.
>
> On Thu, Jun 25, 2015 at 12:09 AM, James Taylor <jamestay...@apache.org>
> wrote:
>
>> Yes, exactly right.
>>
>> On Wed, Jun 24, 2015 at 11:35 AM, Ayola Jayamaha <raphaelan...@gmail.com>
>> wrote:
>> > Hi All,
>> >
>> > Now it is clear. We can create a statement from the user's input query
>> to
>> > the format in the description column and filter out the possible root
>> spans
>> > of the traces of the query. Then by selecting the traces which have
>> their
>> > parent ids equal to span id of the root span we can get all the traces
>> > relevant to the query.
>> > We can find the total duration for a particular statement. Interesting
>> > statements/traces can viewed as a timeline.
>> > Is this method alright?
>> >
>> > Thanks,
>> > Nishani
>> >
>> >
>> > On Wed, Jun 24, 2015 at 11:21 PM, James Taylor <jamestay...@apache.org>
>> > wrote:
>> >
>> >> Yep, Jesse's right - the query is in the description column of the
>> >> root span of the trace. We'll need to include this in the trace UI,
>> >> otherwise the user won't have the context they need to know what
>> >> they're looking at. If there's something missing from the way we're
>> >> capturing, we can fix it.
>> >> Thanks,
>> >> James
>> >>
>> >> On Wed, Jun 24, 2015 at 9:09 AM, Jesse Yates <jesse.k.ya...@gmail.com>
>> >> wrote:
>> >> > There was some discussion (maybe internal to salesforce?) around how
>> to
>> >> > include the query in the trace. I think the simplest we came up with
>> was
>> >> > just adding it to the trace metadata (as an annotation?) and then
>> you can
>> >> > pull it out later since you know the key it was stored as
>> >> >
>> >> > On Wed, Jun 24, 2015 at 9:05 AM Ayola Jayamaha <
>> raphaelan...@gmail.com>
>> >> > wrote:
>> >> >>
>> >> >> Hi James,
>> >> >>
>> >> >> I find it difficult to come up with a method to include the SQL
>> >> statements
>> >> >> with the traces. But it is possible to filter out the traces for a
>> >> >> particular table for a given time period.
>> >> >>
>> >> >> Aggregating over the time spent for each SQL statement is possible.
>> With
>> >> >> the relationship between parent and span ids it is possible to
>> >> >> differentiate between traces belonging to each query.
>> >> >>
>> >> >> Thanks,
>> >> >> Nishani
>> >> >>
>> >> >> On Wed, Jun 24, 2015 at 12:11 PM, James Taylor <
>> jamestay...@apache.org>
>> >> >> wrote:
>> >> >>
>> >> >> > Hi Nishani,
>> >> >> > I think this is a good start. One important part is tying this
>> back to
>> >> >> > something to which the user can relate - namely the SQL statement
>> that
>> >> >> > was
>> >> >> > executed. Would it be possible to include the string of the
>> statement?
>> >> >> >
>> >> >> > Another interesting angle would be to group by the statement and
>> >> >> > aggregate
>> >> >> > the overall time spent to get an idea of the "top N queries" over
>> a
>> >> >> > given
>> >> >> > time range. Then drilling into those to see the traces.
>> >> >> >
>> >> >> > Thanks,
>> >> >> > James
>> >> >> >
>> >> >> > On Fri, Jun 19, 2015 at 11:01 AM, Ayola Jayamaha
>> >> >> > <raphaelan...@gmail.com>
>> >> >> > wrote:
>> >> >> >
>> >> >> >> Hi All,
>> >> >> >>
>> >> >> >> Milestone-1 can be found in my git repo[1].
>> >> >> >> Features :
>> >> >> >>
>> >> >> >>    - Adding tracing to a timeline using sample json
>> >> >> >>    - Comparing two or more traces on the timeline
>> >> >> >>    - Visualizing the trace distribution across the time axis
>> >> >> >>    - Removing a trace from the list of traces represented on the
>> >> chart
>> >> >> >>    - Listing the tracing information on a table
>> >> >>
>> >> >> >>
>> >> >> >> Any feedback will be appreciated.
>> >> >> >> Thanks.
>> >> >> >>
>> >> >> >>  [1]
>> https://github.com/AyolaJayamaha/TracingWebApp/tree/milestone-1
>> >> >> >>
>> >> >> >> On Wed, Jun 17, 2015 at 11:35 PM, Ayola Jayamaha
>> >> >> >> <raphaelan...@gmail.com>
>> >> >> >> wrote:
>> >> >> >>
>> >> >> >>>
>> >> >> >>> Hi All,
>> >> >> >>>
>> >> >> >>> You can find milestone-1 in my git repo. This is the working
>> >> >> >>> branch[1].
>> >> >> >>> It has not been binded to backend yet. But the visualization of
>> >> traces
>> >> >> >>> can
>> >> >> >>> be seen from the code.
>> >> >> >>> Traces can be selected from table/time period and shown on the
>> >> >> >>> timeline
>> >> >> >>> as [2]. The parameters could be entered as TableName, StartTime,
>> >> >> >>> EndTime
>> >> >> >>> and the traces would be listed down. The user can select the
>> traces
>> >> as
>> >> >> >>> his
>> >> >> >>> preference and view their timelines. Is the procedure ok?
>> >> >> >>> The start time of different traces could be visualized by
>> bringing
>> >> >> >>> them
>> >> >> >>> up to a same time reference for comparison.
>> >> >> >>>
>> >> >> >>>
>> >> >> >>> [1]
>> https://github.com/AyolaJayamaha/TracingWebApp/tree/milestone-1
>> >> >> >>> [2]
>> >> >> >>>
>> >> https://issues.apache.org/jira/secure/attachment/12740161/timeline.png
>> >> >> >>>
>> >> >> >>>
>> >> >> >>> On Tue, Jun 16, 2015 at 11:10 AM, Ayola Jayamaha
>> >> >> >>> <raphaelan...@gmail.com
>> >> >> >>> > wrote:
>> >> >> >>>
>> >> >> >>>> Hi All,
>> >> >> >>>>
>> >> >> >>>> Attached here are the table schema and data for the join query
>> I
>> >> >> >>>> executed.
>> >> >> >>>>
>> >> >> >>>> ./psql.py localhost:2181/hbase ../examples/school/school.sql
>> >> >> >>>> ../examples/school/STUDENTS.csv ../examples/school/SUBJECTS.csv
>> >> >> >>>> ../examples/school/MARKS.csv
>> ../examples/school/school_queries.sql
>> >> >> >>>>
>> >> >> >>>> Above is the command I executed. But the last query
>> >> >> >>>>
>> >> >> >>>> SELECT M.GRADE
>> >> >> >>>> FROM MARKS AS M
>> >> >> >>>> INNER JOIN SUBJECTS AS S
>> >> >> >>>> ON M.SUBJECT_ID = S.SUBJECT_ID;
>> >> >> >>>>
>> >> >> >>>> doesn't give any results and when I check for the traces
>> >> >> >>>> corresponding
>> >> >> >>>> the inner join query I couldn't find them.
>> >> >> >>>>
>> >> >> >>>> What might be the issue?
>> >> >> >>>>
>> >> >> >>>> Thanks.
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>>  school.zip
>> >> >> >>>>
>> >> >> >>>> <
>> >>
>> https://drive.google.com/file/d/0Bxpj3lSPvr6WdW15bUc0YkdYemc/edit?usp=drive_web
>> >> >
>> >> >>
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>> On Sun, Jun 14, 2015 at 9:58 PM, Ayola Jayamaha
>> >> >> >>>> <raphaelan...@gmail.com
>> >> >> >>>> > wrote:
>> >> >> >>>>
>> >> >> >>>>> Hi All,
>> >> >> >>>>>
>> >> >> >>>>> On the explain plan to show which part of the code is run
>> where a
>> >> >> >>>>> graph is shown[1]. Default chart will be a Pie chart and I'm
>> >> planing
>> >> >> >>>>> to use
>> >> >> >>>>> few more chat types so user can pick his choice. If any node
>> >> >> >>>>> responding
>> >> >> >>>>> slowly. Phoenix database administrator can exam the node and
>> >> examin
>> >> >> >>>>> what
>> >> >> >>>>> are queries run on a particular time.
>> >> >> >>>>>
>> >> >> >>>>> I have run few examples on secondary indexes[4] and I got
>> sample
>> >> >> >>>>> data
>> >> >> >>>>> and it can be used for the milestone1(end of this week). It is
>> >> shown
>> >> >> >>>>> with
>> >> >> >>>>> timesliding capabilities. Trace segments are shown in a
>> >> timeline.[2]
>> >> >> >>>>>
>> >> >> >>>>> Does filters mean 'where' like logic statements? The database
>> >> admin
>> >> >> >>>>> can track the duration for a particular trace from timeline
>> >> >> >>>>> visualization
>> >> >> >>>>> so he can use the filters effectively (best order of the
>> filters)
>> >> in
>> >> >> >>>>> a
>> >> >> >>>>> query to get a quick respond.
>> >> >> >>>>>
>> >> >> >>>>> I tried the join query and it didn't give any results or
>> >> >> >>>>> corresponding
>> >> >> >>>>> traces. This is the reference I followed [3]. Is there any
>> more
>> >> >> >>>>> steps to
>> >> >> >>>>> follow?
>> >> >> >>>>>
>> >> >> >>>>> To visualize the tracing details I looked through few charting
>> >> >> >>>>> libraries and I will give the comparison details over them.
>> >> >> >>>>> Please feel free to give the feedback on the mock uis.
>> >> >> >>>>>
>> >> >> >>>>> Thanks.
>> >> >> >>>>>
>> >> >> >>>>> [1]
>> >> >> >>>>>
>> >> >> >>>>>
>> >>
>> https://issues.apache.org/jira/secure/attachment/12739498/m1-mockUI-tracedistribution.png
>> >> >> >>>>> [2]
>> >> >> >>>>>
>> >> >> >>>>>
>> >>
>> https://issues.apache.org/jira/secure/attachment/12739499/m1-mockUI-tracetimeline.png
>> >> >> >>>>> [3] https://phoenix.apache.org/joins.html
>> >> >> >>>>> [4]
>> >> >> >>>>>
>> >> >> >>>>>
>> >>
>> http://ayolajayamaha.blogspot.com/2015/06/tracing-data-secondary-indixes.html
>> >> >> >>>>>
>> >> >> >>>>> On Thu, Jun 11, 2015 at 11:39 AM, Ayola Jayamaha <
>> >> >> >>>>> raphaelan...@gmail.com> wrote:
>> >> >> >>>>>
>> >> >> >>>>>> Yes. It  was a bit confusing :-). But it was useful to get a
>> good
>> >> >> >>>>>> idea on the use cases.
>> >> >> >>>>>> Thanks.
>> >> >> >>>>>>
>> >> >> >>>>>> On Wed, Jun 10, 2015 at 11:57 PM, James Taylor <
>> >> >> >>>>>> jamestay...@apache.org> wrote:
>> >> >> >>>>>>
>> >> >> >>>>>>> Excellent, Nishani (and you forgot to say "rambling" :-),
>> but
>> >> I'm
>> >> >> >>>>>>> glad
>> >> >> >>>>>>> it helped).
>> >> >> >>>>>>>
>> >> >> >>>>>>> On Wed, Jun 10, 2015 at 11:16 AM, Ayola Jayamaha <
>> >> >> >>>>>>> raphaelan...@gmail.com> wrote:
>> >> >> >>>>>>> > Hi James,
>> >> >> >>>>>>> >
>> >> >> >>>>>>> > Thanks a lot for the lengthy and descriptive reply. I am
>> >> >> >>>>>>> > currently
>> >> >> >>>>>>> looking
>> >> >> >>>>>>> > through UI components and charting libraries that can be
>> used
>> >> >> >>>>>>> > for
>> >> >> >>>>>>> the UI. I
>> >> >> >>>>>>> > refered [1] with regard to your explaination and came up
>> with
>> >> >> >>>>>>> > some
>> >> >> >>>>>>> mock ups
>> >> >> >>>>>>> > which I will share soon.
>> >> >> >>>>>>> >
>> >> >> >>>>>>> > Thanks,
>> >> >> >>>>>>> > Nishani
>> >> >> >>>>>>> >
>> >> >> >>>>>>> > [1] https://phoenix.apache.org/language/#index_hint
>> >> >> >>>>>>> > [2]
>> >> >> >>>>>>> >
>> >> >> >>>>>>>
>> >> >> >>>>>>>
>> >>
>> https://phoenix.apache.org/faq.html#How_do_I_create_Secondary_Index_on_a_table
>> >> >> >>>>>>> >
>> >> >> >>>>>>> > On Tue, Jun 9, 2015 at 11:39 PM, James Taylor <
>> >> >> >>>>>>> jamestay...@apache.org>
>> >> >> >>>>>>> > wrote:
>> >> >> >>>>>>> >
>> >> >> >>>>>>> >> Hi Nishani,
>> >> >> >>>>>>> >> I'd recommend focusing on higher level use cases. From
>> the
>> >> >> >>>>>>> >> user's
>> >> >> >>>>>>> >> point of view, they're executing a query and for some
>> reason
>> >> >> >>>>>>> >> it's
>> >> >> >>>>>>> >> slower than they expect. How do they figure out why?
>> >> >> >>>>>>> >>
>> >> >> >>>>>>> >> They might first do an EXPLAIN on their query to see how
>> >> >> >>>>>>> >> Phoenix
>> >> >> >>>>>>> is
>> >> >> >>>>>>> >> executing it. Which parts are run where? Are secondary
>> >> indexes
>> >> >> >>>>>>> being
>> >> >> >>>>>>> >> used as expected? Are filters being pushed down as
>> expected?
>> >> A
>> >> >> >>>>>>> better
>> >> >> >>>>>>> >> way to visualize the explain plan might be a good thing
>> for
>> >> you
>> >> >> >>>>>>> >> to
>> >> >> >>>>>>> >> start with.
>> >> >> >>>>>>> >>
>> >> >> >>>>>>> >> Second, assuming the explain plan looks good, they'll
>> want to
>> >> >> >>>>>>> turn on
>> >> >> >>>>>>> >> tracing so that they can get runtime information on which
>> >> parts
>> >> >> >>>>>>> >> of
>> >> >> >>>>>>> >> their query are taking the longest.
>> >> >> >>>>>>> >>
>> >> >> >>>>>>> >> Maybe more than one Phoenix table is involved - how will
>> you
>> >> >> >>>>>>> display
>> >> >> >>>>>>> >> the tracing information across multiple tables for a
>> query
>> >> that
>> >> >> >>>>>>> does a
>> >> >> >>>>>>> >> join? Maybe you can punt on this first pass, and focus on
>> >> >> >>>>>>> >> single
>> >> >> >>>>>>> table
>> >> >> >>>>>>> >> queries. A related use case would be a DML statement
>> that's
>> >> >> >>>>>>> executed
>> >> >> >>>>>>> >> and taking longer than expected. Let's say that the table
>> >> being
>> >> >> >>>>>>> >> updated has one or more secondary indexes that are also
>> >> >> >>>>>>> >> updating
>> >> >> >>>>>>> the
>> >> >> >>>>>>> >> index tables. Seeing the entire picture of both the table
>> >> >> >>>>>>> >> writes
>> >> >> >>>>>>> plus
>> >> >> >>>>>>> >> the index writes on the same graph would be great.
>> >> >> >>>>>>> >>
>> >> >> >>>>>>> >> For the single-table query user case, what does the
>> >> >> >>>>>>> >> distribution
>> >> >> >>>>>>> of
>> >> >> >>>>>>> >> time look like across all the region servers
>> participating in
>> >> >> >>>>>>> >> the
>> >> >> >>>>>>> >> query? Maybe some kind of graph that shows quickly if one
>> >> >> >>>>>>> >> region
>> >> >> >>>>>>> >> server is taking much more time than the others. Perhaps
>> >> that's
>> >> >> >>>>>>> >> an
>> >> >> >>>>>>> >> indication that the table statistics need to be re-run,
>> as
>> >> >> >>>>>>> >> there
>> >> >> >>>>>>> may
>> >> >> >>>>>>> >> be skew that's developed such that one of the threads is
>> >> >> >>>>>>> >> handling
>> >> >> >>>>>>> more
>> >> >> >>>>>>> >> data than it should. Or perhaps there's an issue with
>> that
>> >> >> >>>>>>> particular
>> >> >> >>>>>>> >> region server. Was there something else going on at the
>> same
>> >> >> >>>>>>> >> time
>> >> >> >>>>>>> on
>> >> >> >>>>>>> >> that region server, like a background compaction/split
>> >> process?
>> >> >> >>>>>>> >> If
>> >> >> >>>>>>> >> that information is available in the trace table (not
>> sure),
>> >> it
>> >> >> >>>>>>> would
>> >> >> >>>>>>> >> be very cool to be able to superimpose that on top of the
>> >> query
>> >> >> >>>>>>> trace
>> >> >> >>>>>>> >> graph.
>> >> >> >>>>>>> >>
>> >> >> >>>>>>> >> Another test might be to run a query over a different
>> table
>> >> and
>> >> >> >>>>>>> see if
>> >> >> >>>>>>> >> the same region server shows up again as being slow. So
>> >> >> >>>>>>> superimposing
>> >> >> >>>>>>> >> the query trace graphs of multiple queries might give the
>> >> user
>> >> >> >>>>>>> some
>> >> >> >>>>>>> >> insight.
>> >> >> >>>>>>> >>
>> >> >> >>>>>>> >> IMHO, this is the kind of angle you should come at this
>> from.
>> >> >> >>>>>>> >>
>> >> >> >>>>>>> >> Thanks,
>> >> >> >>>>>>> >> James
>> >> >> >>>>>>> >>
>> >> >> >>>>>>> >> On Mon, Jun 8, 2015 at 4:12 AM, Ayola Jayamaha <
>> >> >> >>>>>>> raphaelan...@gmail.com>
>> >> >> >>>>>>> >> wrote:
>> >> >> >>>>>>> >> > Hi All,
>> >> >> >>>>>>> >> >
>> >> >> >>>>>>> >> > Basically what type of use cases are you expecting or
>> >> >> >>>>>>> performing at the
>> >> >> >>>>>>> >> > moment with regard to tracing? For example these are
>> the
>> >> use
>> >> >> >>>>>>> cases I'm
>> >> >> >>>>>>> >> > planing.
>> >> >> >>>>>>> >> > 1. Searching by parent id / trace id / description
>> (regx
>> >> >> >>>>>>> >> > search)
>> >> >> >>>>>>> >> > 2. Grouping and ordering the tracing information by
>> time
>> >> >> >>>>>>> >> > period.
>> >> >> >>>>>>> >> > 3. Counting the trace count per day / hour.
>> >> >> >>>>>>> >> > 4. Comparing and distinguishing  two sets of tracing.
>> >> >> >>>>>>> >> > Thanks.
>> >> >> >>>>>>> >> >
>> >> >> >>>>>>> >> >
>> >> >> >>>>>>> >> > On Mon, Jun 8, 2015 at 4:00 PM, Nishani (JIRA)
>> >> >> >>>>>>> >> > <j...@apache.org>
>> >> >> >>>>>>> wrote:
>> >> >> >>>>>>> >> >
>> >> >> >>>>>>> >> >>
>> >> >> >>>>>>> >> >>      [
>> >> >> >>>>>>> >> >>
>> >> >> >>>>>>> >>
>> >> >> >>>>>>>
>> >> >> >>>>>>>
>> >>
>> https://issues.apache.org/jira/browse/PHOENIX-1118?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
>> >> >> >>>>>>> >> >> ]
>> >> >> >>>>>>> >> >>
>> >> >> >>>>>>> >> >> Nishani  updated PHOENIX-1118:
>> >> >> >>>>>>> >> >> ------------------------------
>> >> >> >>>>>>> >> >>     Attachment: Screenshot of dependency tree.png
>> >> >> >>>>>>> >> >>
>> >> >> >>>>>>> >> >> Attaching the dependency tree on tracing.
>> >> >> >>>>>>> >> >> Pull request can be found here.
>> >> >> >>>>>>> >> >> https://github.com/AyolaJayamaha/TracingWebApp/pull/1
>> >> >> >>>>>>> >> >>
>> >> >> >>>>>>> >> >> > Provide a tool for visualizing Phoenix tracing
>> >> information
>> >> >> >>>>>>> >> >> >
>> >> ----------------------------------------------------------
>> >> >> >>>>>>> >> >> >
>> >> >> >>>>>>> >> >> >                 Key: PHOENIX-1118
>> >> >> >>>>>>> >> >> >                 URL:
>> >> >> >>>>>>> >> https://issues.apache.org/jira/browse/PHOENIX-1118
>> >> >> >>>>>>> >> >> >             Project: Phoenix
>> >> >> >>>>>>> >> >> >          Issue Type: Sub-task
>> >> >> >>>>>>> >> >> >            Reporter: James Taylor
>> >> >> >>>>>>> >> >> >            Assignee: Nishani
>> >> >> >>>>>>> >> >> >              Labels: Java, SQL, Visualization,
>> gsoc2015,
>> >> >> >>>>>>> mentor
>> >> >> >>>>>>> >> >> >         Attachments: MockUp1-TimeSlider.png,
>> >> >> >>>>>>> >> MockUp2-AdvanceSearch.png,
>> >> >> >>>>>>> >> >> MockUp3-PatternDetector.png, MockUp4-FlameGraph.png,
>> >> >> >>>>>>> Screenshot of
>> >> >> >>>>>>> >> >> dependency tree.png, screenshot of tracing web app.png
>> >> >> >>>>>>> >> >> >
>> >> >> >>>>>>> >> >> >
>> >> >> >>>>>>> >> >> > Currently there's no means of visualizing the trace
>> >> >> >>>>>>> information
>> >> >> >>>>>>> >> provided
>> >> >> >>>>>>> >> >> by Phoenix. We should provide some simple charting
>> over
>> >> our
>> >> >> >>>>>>> metrics
>> >> >> >>>>>>> >> tables.
>> >> >> >>>>>>> >> >> Take a look at the following JIRA for sample queries:
>> >> >> >>>>>>> >> >>
>> >> >> >>>>>>> >>
>> >> >> >>>>>>>
>> >> >> >>>>>>>
>> >>
>> https://issues.apache.org/jira/browse/PHOENIX-1115?focusedCommentId=14323151&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-14323151
>> >> >> >>>>>>> >> >>
>> >> >> >>>>>>> >> >>
>> >> >> >>>>>>> >> >>
>> >> >> >>>>>>> >> >> --
>> >> >> >>>>>>> >> >> This message was sent by Atlassian JIRA
>> >> >> >>>>>>> >> >> (v6.3.4#6332)
>> >> >> >>>>>>> >> >>
>> >> >> >>>>>>> >> >
>> >> >> >>>>>>> >> >
>> >> >> >>>>>>> >> >
>> >> >> >>>>>>> >> > --
>> >> >> >>>>>>> >> > Best Regards,
>> >> >> >>>>>>> >> > Nishani Jayamaha
>> >> >> >>>>>>> >> > http://ayolajayamaha.blogspot.com/
>> >> >> >>>>>>> >>
>> >> >> >>>>>>> >
>> >> >> >>>>>>> >
>> >> >> >>>>>>> >
>> >> >> >>>>>>> > --
>> >> >> >>>>>>> > Best Regards,
>> >> >> >>>>>>> > Nishani Jayamaha
>> >> >> >>>>>>> > http://ayolajayamaha.blogspot.com/
>> >> >> >>>>>>>
>> >> >> >>>>>>
>> >> >> >>>>>>
>> >> >> >>>>>>
>> >> >> >>>>>> --
>> >> >> >>>>>> Best Regards,
>> >> >> >>>>>> Nishani Jayamaha
>> >> >> >>>>>> http://ayolajayamaha.blogspot.com/
>> >> >> >>>>>>
>> >> >> >>>>>>
>> >> >> >>>>>>
>> >> >> >>>>>
>> >> >> >>>>>
>> >> >> >>>>> --
>> >> >> >>>>> Best Regards,
>> >> >> >>>>> Nishani Jayamaha
>> >> >> >>>>> http://ayolajayamaha.blogspot.com/
>> >> >> >>>>>
>> >> >> >>>>>
>> >> >> >>>>>
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>> --
>> >> >> >>>> Best Regards,
>> >> >> >>>> Nishani Jayamaha
>> >> >> >>>> http://ayolajayamaha.blogspot.com/
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>>
>> >> >> >>>
>> >> >> >>>
>> >> >> >>> --
>> >> >> >>> Best Regards,
>> >> >> >>> Nishani Jayamaha
>> >> >> >>> http://ayolajayamaha.blogspot.com/
>> >> >> >>>
>> >> >> >>>
>> >> >> >>>
>> >> >> >>
>> >> >> >>
>> >> >> >> --
>> >> >> >> Best Regards,
>> >> >> >> Nishani Jayamaha
>> >> >> >> http://ayolajayamaha.blogspot.com/
>> >> >> >>
>> >> >> >>
>> >> >> >>
>> >> >> >
>> >> >>
>> >> >>
>> >> >> --
>> >> >> Best Regards,
>> >> >> Nishani Jayamaha
>> >> >> http://ayolajayamaha.blogspot.com/
>> >>
>> >
>> >
>> >
>> > --
>> > Best Regards,
>> > Nishani Jayamaha
>> > http://ayolajayamaha.blogspot.com/
>>
>
>
>
> --
> Best Regards,
> Nishani Jayamaha
> http://ayolajayamaha.blogspot.com/
>
>
>

Reply via email to