You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@htrace.apache.org by "Colin Patrick McCabe (JIRA)" <ji...@apache.org> on 2014/12/17 03:40:13 UTC
[jira] [Comment Edited] (HTRACE-6) TraceRunnable should expose the
underlying Runnable
[ https://issues.apache.org/jira/browse/HTRACE-6?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14217856#comment-14217856 ]
Colin Patrick McCabe edited comment on HTRACE-6 at 12/17/14 2:39 AM:
---------------------------------------------------------------------
\[original proposal was making TraceRunnable a Comparable\]
Hi [~billie.rinaldi], interesting idea.
I'm not completely sure what comparing two {{TraceRunnable}} objects should mean. Should they be considered alike if the {{Span}} objects they contain are alike? We don't have any way of comparing the {{Runnable}} objects that {{TraceRunnable}} holds ({{Runnable}} doesn't implement {{Comparable}}). And comparing by description just feels fragile, since it would be so easy to reuse the same description in multiple {{TraceRunnable}} objects.
This leads to another question, which is whether {{Span}} should implement Comparable (it doesn't, currently... it doesn't even implement {{hashCode}} or {{equals}}). I think it's reasonable for {{Span}} objects to be compared by their {{spanId}}. With {{TraceRunnable}}, I feel less sure, just because I don't have any intuitive idea of what it should "mean" to compare them.
Perhaps this is a case where you should just use a {{Comparator}}? Or am I missing a really natural way to write a {{compareTo}} function here?
was (Author: cmccabe):
Hi [~billie.rinaldi], interesting idea.
I'm not completely sure what comparing two {{TraceRunnable}} objects should mean. Should they be considered alike if the {{Span}} objects they contain are alike? We don't have any way of comparing the {{Runnable}} objects that {{TraceRunnable}} holds ({{Runnable}} doesn't implement {{Comparable}}). And comparing by description just feels fragile, since it would be so easy to reuse the same description in multiple {{TraceRunnable}} objects.
This leads to another question, which is whether {{Span}} should implement Comparable (it doesn't, currently... it doesn't even implement {{hashCode}} or {{equals}}). I think it's reasonable for {{Span}} objects to be compared by their {{spanId}}. With {{TraceRunnable}}, I feel less sure, just because I don't have any intuitive idea of what it should "mean" to compare them.
Perhaps this is a case where you should just use a {{Comparator}}? Or am I missing a really natural way to write a {{compareTo}} function here?
> TraceRunnable should expose the underlying Runnable
> ---------------------------------------------------
>
> Key: HTRACE-6
> URL: https://issues.apache.org/jira/browse/HTRACE-6
> Project: HTrace
> Issue Type: Wish
> Reporter: Billie Rinaldi
> Attachments: HTRACE-6.1.patch, HTRACE-6.2.patch
>
>
> TraceRunnable should expose the wrapped Runnable objects.
> Accumulo needs this in order to insert the TraceRunnable objects into a priority queue. The comparator for the priority queue needs access to the underlying objects.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)