phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <>
Subject [jira] [Commented] (PHOENIX-900) Partial results for mutations
Date Wed, 18 Feb 2015 22:43:11 GMT


ASF GitHub Bot commented on PHOENIX-900:

Github user JamesRTaylor commented on a diff in the pull request:
    --- Diff: phoenix-core/src/main/java/org/apache/phoenix/execute/ ---
    @@ -78,7 +87,11 @@
         private PhoenixConnection connection;
         private final long maxSize;
         private final ImmutableBytesPtr tempPtr = new ImmutableBytesPtr();
    -    private final Map<TableRef, Map<ImmutableBytesPtr,Map<PColumn,byte[]>>>
mutations = Maps.newHashMapWithExpectedSize(3); // TODO: Sizing?
    +    /**
    +     * Use {@link TreeMap} for {@link #mutations} below to enforce a deterministic ordering
for easier testing of partial failures.
    +     * @see PartialCommitIT
    +     */
    +    private final Map<TableRef, Map<ImmutableBytesPtr,RowMutationState>>
mutations = Maps.newTreeMap(new TableRefComparator());
    --- End diff --
    The Map has one entry per row, so it can in theory grow large (upto 500K in theory which
is the default max size). How about addition a test-only copy constructor for PhoenixConnection
that takes in MutationState as an argument along with a MutationState constructor that takes
a Map argument?

> Partial results for mutations
> -----------------------------
>                 Key: PHOENIX-900
>                 URL:
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 3.0.0, 4.0.0
>            Reporter: Eli Levine
>            Assignee: Eli Levine
>         Attachments: PHOENIX-900.patch
> HBase provides a way to retrieve partial results of a batch operation:,%20java.lang.Object[]%29
> Chatted with James about this offline:
> Yes, this could be included in the CommitException we throw (MutationState:412). We already
include the batches that have been successfully committed to the HBase server in this exception.
Would you be up for adding this additional information? You'd want to surface this in a Phoenix-y
way in a method on CommitException, something like this: ResultSet getPartialCommits(). You
can easily create an in memory ResultSet using MaterializedResultIterator plus the PhoenixResultSet
constructor that accepts this (just create a new empty PhoenixStatement with the PhoenixConnection
for the other arg).

This message was sent by Atlassian JIRA

View raw message