three in-row metadata are required for sscc : status , versions , columns status is a list of key : value pair to save which transaction currently update a row each element in this list indicate an update , so it should tell which transaction did the update and what type of update : stateful or stateless . format of each element in status : a byte array , start with 1 byte as value , 8 bytes long as transactionid . type | byte long ========== ============= ==================== content | s_xx_byte transactionid version is a list of key : value pair to save info about committed rows each element in this list indicate a commit by a transaction . and it can tell us which transaction already commit the update to a row . format of each element in version : a byte array , start with 1 byte as value , 8 bytes long as startid . type | byte long ========== ============= ==================== content | s_xx_byte startid column is a list of column names tbd concode_field_sep byte S_DELETE_BYTE concode_elem_sep byte V_NORMAL_BYTE concode_elem_sep byte TRX_COMMITTED_STATE concode_elem_sep byte TRX_ACTIVE_STATE concode_elem_sep byte[] TRANSACTION_STATUS concode_elem_sep byte[] STATUS_COL concode_elem_sep byte S_STATEFUL_BYTE concode_elem_sep Charset META_CHARSET concode_elem_sep byte S_STATELESS_BYTE concode_elem_sep byte[] TRANSACTION_COMMIT_ID concode_elem_sep byte[] VERSION_COL concode_elem_sep byte[] COLUMNS_COL concode_elem_sep byte V_DELETE_BYTE concode_elem_sep byte TRX_ABORTED_STATE concode_field_sep long getTransactionId concode_elem_sep byte getVersionType concode_elem_sep byte[] generateStatusValue concode_elem_sep long getVersionStartID concode_elem_sep boolean isSelfUpdate concode_elem_sep byte getStatusValue concode_elem_sep boolean isDeleteVersion concode_elem_sep boolean isDeleteStatus concode_elem_sep boolean isStateful
byte [ ] function ( long arg0 , boolean arg1 ) { byte [ ] loc0 = new byte [ Bytes . SIZEOF_LONG + 1 ] ; loc0 [ 0 ] = arg1 ? V_DELETE_BYTE : V_NORMAL_BYTE ; Bytes . putLong ( loc0 , 1 , arg0 ) ; return loc0 ; }