[
https://issues.apache.org/jira/browse/HBASE-7801?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jeffrey Zhong updated HBASE-7801:
---------------------------------
Attachment: hbase-7801-addendum.patch
[~lhofhansl] Today, I happened to work on Mutation.java and found that
Mutation#MUTATION_OVERHEAD is off. The reason that TestHeapSize#testMutations
can pass is due to we still leave old {code}
// writeToWAL
Bytes.SIZEOF_BOOLEAN
{code} there. The one byte later is round up to 8 bytes which is matching the
newly added field durability which is a reference and has 8 bytes in len. Below
are detailed dump for the Mutation:
{code}
013-04-12 15:33:40,902 DEBUG [main] util.ClassSize(246): 0 row class [B
2013-04-12 15:33:40,903 DEBUG [main] util.ClassSize(246): 1 ts long
2013-04-12 15:33:40,903 DEBUG [main] util.ClassSize(246): 2 durability class
org.apache.hadoop.hbase.client.Durability
2013-04-12 15:33:40,903 DEBUG [main] util.ClassSize(246): 3 familyMap interface
java.util.NavigableMap
2013-04-12 15:33:40,903 DEBUG [main] util.ClassSize(246): 4 attributes
interface java.util.Map
2013-04-12 15:33:40,903 DEBUG [main] util.ClassSize(273): Primitives=8,
arrays=1, references(includes 2 for object overhead)=6, refSize 8, size=80,
prealign_size=80
{code}
I attached an addendum for your references.
Thanks,
-Jeffrey
> Allow a deferred sync option per Mutation.
> ------------------------------------------
>
> Key: HBASE-7801
> URL: https://issues.apache.org/jira/browse/HBASE-7801
> Project: HBase
> Issue Type: Sub-task
> Affects Versions: 0.94.6, 0.95.0
> Reporter: Lars Hofhansl
> Assignee: Lars Hofhansl
> Fix For: 0.98.0, 0.94.7, 0.95.1
>
> Attachments: 7801-0.94-v1.txt, 7801-0.94-v2.txt, 7801-0.94-v3.txt,
> 7801-0.94-v4.txt, 7801-0.94-v5.txt, 7801-0.96-full-v2.txt,
> 7801-0.96-full-v3.txt, 7801-0.96-full-v4.txt, 7801-0.96-full-v5.txt,
> 7801-0.96-v10.txt, 7801-0.96-v1.txt, 7801-0.96-v6.txt, 7801-0.96-v7.txt,
> 7801-0.96-v8.txt, 7801-0.96-v9.txt, hbase-7801-addendum.patch
>
>
> Won't have time for parent. But a deferred sync option on a per operation
> basis comes up quite frequently.
> In 0.96 this can be handled cleanly via protobufs and 0.94 we can have a
> special mutation attribute.
> For batch operation we'd take the safest sync option of any of the mutations.
> I.e. if there is at least one that wants to be flushed we'd sync the batch,
> if there's none of those but at least one that wants deferred flush we defer
> flush the batch, etc.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira