[ 
https://issues.apache.org/jira/browse/HBASE-62?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12614235#action_12614235
 ] 

stack commented on HBASE-62:
----------------------------

Here's a few more notes on the patch.

The migration is ugly.   Adds new util.migration.v5 package into which I put 
pre-v5 versions of classes.  Migrating I use these classes to read in the 
serialized info and then copy fields out of the old versions of the classes 
into new instances of their replacements.

I added versioning to HRegionInfo while I was at it in case we need to change 
its format someday.

{code}
M  src/test/org/apache/hadoop/hbase/TestTable.java
    (testReadOnlyTable): Added.
M  src/test/org/apache/hadoop/hbase/client/TestHTable.java
    Test adding a user attribute.
M  src/java/org/apache/hadoop/hbase/HColumnDescriptor.java
    Up HCD version to 6. Attributes now kept in a map.
    (getValue, setValue): Added.
    Also added a bunch of setters for the base attributes:
    maxVersions, TTL, etc.
    isBloomFilterEnabled renamed as isBloomfilter.
M  src/java/org/apache/hadoop/hbase/BloomFilterDescriptor.java
    Added constructor.
M  src/java/org/apache/hadoop/hbase/thrift/ThriftUtilities.java
    isBloomFilterEnabled renamed as isBloomfilter.
M  src/java/org/apache/hadoop/hbase/regionserver/HStore.java
    isBloomFilterEnabled renamed as isBloomfilter.
M  src/java/org/apache/hadoop/hbase/regionserver/HAbstractScanner.java
    Made class protected so could be used from migration subpackage.
M  src/java/org/apache/hadoop/hbase/regionserver/HRegion.java
    Check if table is read-only.
M  src/java/org/apache/hadoop/hbase/rest/TableHandler.java
    isBloomFilterEnabled renamed as isBloomfilter.
M  src/java/org/apache/hadoop/hbase/HTableDescriptor.java
    Version HTD. New constructor that clones a passed HTD.
    (getValue, setValue, setReadOnly): Added.
    Other accessors and setters for old base attributes.
M  src/java/org/apache/hadoop/hbase/HRegionInfo.java
    Version HRI.
    (setTableDesc, getVersion): Added.
M  src/java/org/apache/hadoop/hbase/ipc/HMasterInterface.java
M  src/java/org/apache/hadoop/hbase/master/HMaster.java
    (modifyTableMeta): Added.
A src/java/org/apache/hadoop/hbase/util/migration/v5/HLogEdit.java
A src/java/org/apache/hadoop/hbase/util/migration/v5/HLogKey.java
A src/java/org/apache/hadoop/hbase/util/migration/v5/Memcache.java
A src/java/org/apache/hadoop/hbase/util/migration/v5/RegionHistorian.java
A src/java/org/apache/hadoop/hbase/util/migration/v5/HColumnDescriptor.java
A src/java/org/apache/hadoop/hbase/util/migration/v5/HStore.java
A src/java/org/apache/hadoop/hbase/util/migration/v5/HStoreFile.java
A src/java/org/apache/hadoop/hbase/util/migration/v5/StoreFileScanner.java
A src/java/org/apache/hadoop/hbase/util/migration/v5/HRegionInfo.java
A src/java/org/apache/hadoop/hbase/util/migration/v5/MetaUtils.java
A src/java/org/apache/hadoop/hbase/util/migration/v5/package.html
A src/java/org/apache/hadoop/hbase/util/migration/v5/HStoreScanner.java
A src/java/org/apache/hadoop/hbase/util/migration/v5/LogRollListener.java
A src/java/org/apache/hadoop/hbase/util/migration/v5/FlushRequester.java
A src/java/org/apache/hadoop/hbase/util/migration/v5/HConstants.java
A src/java/org/apache/hadoop/hbase/util/migration/v5/HLog.java
A src/java/org/apache/hadoop/hbase/util/migration/v5/HRegion.java
  Above are all pre-v5 versions of the above classes.  Most of the classes
  are unchanged except for edits to the imports so we imported from this
  migration.v5 package rather than from outside this package.  MetaUtils
  is the one exception.  I changed it to use getWritables when instantiating
  HRegionInfos so I could make it instantiate HRIs from this package rather
  than use o.a.h.h.HRI.
M  src/java/org/apache/hadoop/hbase/util/Migrate.java
   (migrateToV5, rewriteMetaHRegionInfo, updateHRegionInfo): Added.
   (migrateRegionDir, processRegionSubDirs, scanRootRegion): Removed.
M  src/java/org/apache/hadoop/hbase/client/HTable.java
    (getTableDescriptor): Make the returned HTD unmodifiable.
M src/java/org/apache/hadoop/hbase/client/MetaScanner.java
    make MetaScannerVisitor protected so can get to it from migration code.
A  src/java/org/apache/hadoop/hbase/client/UnmodifyableHColumnDescriptor.java
M  src/java/org/apache/hadoop/hbase/client/HBaseAdmin.java
    (modifyTableMeta): Added.
M  src/java/org/apache/hadoop/hbase/client/UnmodifyableHTableDescriptor.java
    Added unsupportedoperationexception to setter overrides.
{code}

> [hbase] Allow user add arbitrary key/value pairs to table and column 
> descriptors
> --------------------------------------------------------------------------------
>
>                 Key: HBASE-62
>                 URL: https://issues.apache.org/jira/browse/HBASE-62
>             Project: Hadoop HBase
>          Issue Type: Improvement
>            Reporter: stack
>            Assignee: Andrew Purtell
>            Priority: Trivial
>             Fix For: 0.2.0
>
>         Attachments: hbase-62-676775.patch, hbase-62-r673356.patch, 
> hbase-62-r673635.patch, hbase-62-r676786.patch, hbase-62-r677358.patch, 
> hbase-62-r677433.patch
>
>
> Folks have asked if they can tag columns and tables with markings of their 
> own designation.  Examples include 'type' and 'descriptiion'. 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to