[
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.