You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@phoenix.apache.org by "Thomas D'Silva (JIRA)" <ji...@apache.org> on 2017/06/02 18:00:06 UTC

[jira] [Updated] (PHOENIX-3612) Make tracking of max allowed number of mutations bytes based instead of row based

     [ https://issues.apache.org/jira/browse/PHOENIX-3612?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas D'Silva updated PHOENIX-3612:
------------------------------------
    Attachment: PHOENIX-3612.patch

[~jamestaylor]

Can you please review? 
I set the default max mutation size to 100MB. I also modified MutationState.getMutationBatchList to use KeyValueUtil.calculateMutationDiskSize() instead of heapSize()

{code}
         for (Mutation mutation : allMutationList) {
-            long mutationSizeBytes = mutation.heapSize();
+            long mutationSizeBytes = KeyValueUtil.calculateMutationDiskSize(mutation);
             if (currentList.size() == batchSize || currentBatchSizeBytes + mutationSizeBytes > batchSizeBytes) {
{code}


> Make tracking of max allowed number of mutations bytes based instead of row based
> ---------------------------------------------------------------------------------
>
>                 Key: PHOENIX-3612
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3612
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: James Taylor
>            Assignee: Thomas D'Silva
>             Fix For: 4.11.0
>
>         Attachments: PHOENIX-3612.patch
>
>
> Some remaining work related to PHOENIX-541 to track the byte-size of all mutations being buffered instead of the number of rows:
> - Make similar changes QueryServices.MAX_MUTATION_SIZE_ATTRIB - making it byte-based instead of row-count-based. Usage of this config parameter would be isolated to MutationState, I believe. We should be able to come up with an accurate size based on the underlying Mutation and/or Delete info we store in PRowImpl.
> - Have a reasonable (smaller) default for the new QueryServices.MAX_MUTATION_SIZE_BYTES_ATTRIB
> This is essentially a guard on the memory usage. It could potentially leverage our MemoryManager.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)