[
https://issues.apache.org/jira/browse/HBASE-5335?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13232953#comment-13232953
]
Phabricator commented on HBASE-5335:
------------------------------------
mbautin has commented on the revision "[jira] [HBASE-5335] Dynamic Schema
Config".
Nicolas: Looks good! Some more comments inline.
Also, we now have lint enabled. Could you please re-run "mvn -Darc
initialize", then do "arc lint" or "arc diff --preview" and address lint
comments? Thanks!
INLINE COMMENTS
src/main/java/org/apache/hadoop/hbase/HConstants.java:361 This constant needs
a better name. Probably some of the constants above it do, too.
src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java:530 Is it
possible to reduce code duplication between here and HColumnDescriptor?
src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java:549 single quote
escaping
src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java:579-581 single
quote escaping
src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java:367 Looks similar
to the corresponding function in HColumnDescriptor. Is it possible to reuse
code between the two? (getValues() would be a bigger case for that.)
src/main/java/org/apache/hadoop/hbase/util/CompoundConfiguration.java:42 Add
<p/>
src/main/java/org/apache/hadoop/hbase/util/CompoundConfiguration.java:222-229
Why exactly do we have to copy-and-paste the code instead of using composition
or inheritance?
If there is a bug in Configuration and it is fixed there, it will not be
reflected here, which is indeed somewhat "tragic".
src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java:4246 It
would be great to avoid adding more tests to TestFromClientSide and create a
separate test class instead.
src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java:4247
This probably should not use javadoc syntax.
src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java:4312 Is
it possible to wait for an event instead of a specific amount of time?
src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java:753 In that case
we should probably sanitize user input for single quotes somewhere else,
wherever the user is supposed to tweak configuration values in real time.
However, I think it is easier to escape single quotes here. It would also be
good to parse the output value of this function with jruby in a test.
src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java:4322
Create an HConstant for this key
src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java:4292
Sleep times should be according to
http://hbase.apache.org/book.html#hbase.tests.writing . We should probably have
a constant for each type of sleep time. Quoting the linked page from HBase book:
> Whenever possible, tests should not use Thread.sleep, but rather waiting
for the real event they need. This is faster and clearer for the reader. Tests
should not do a Thread.sleep without testing an ending condition. This allows
understanding what the test is waiting for. Moreover, the test will work
whatever the machine performance is. Sleep should be minimal to be as fast as
possible. Waiting for a variable should be done in a 40ms sleep loop. Waiting
for a socket operation should be done in a 200 ms sleep loop.
src/test/java/org/apache/hadoop/hbase/util/TestCompoundConfiguration.java:33
Can this be private?
src/test/java/org/apache/hadoop/hbase/util/TestCompoundConfiguration.java:43-46
Is this override necessary?
src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java:760 I guess we
need a javadoc saying that ADVANCED is not for general-purpose use, and that it
is meant for use as an HColumnDescriptor key, then.
src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java:783 OK, if you
think we won't be calling this a lot, this is fine with me.
REVISION DETAIL
https://reviews.facebook.net/D2247
> Dynamic Schema Configurations
> -----------------------------
>
> Key: HBASE-5335
> URL: https://issues.apache.org/jira/browse/HBASE-5335
> Project: HBase
> Issue Type: New Feature
> Reporter: Nicolas Spiegelberg
> Assignee: Nicolas Spiegelberg
> Labels: configuration, schema
> Attachments: D2247.1.patch, D2247.2.patch, D2247.3.patch
>
>
> Currently, the ability for a core developer to add per-table & per-CF
> configuration settings is very heavyweight. You need to add a reserved
> keyword all the way up the stack & you have to support this variable
> long-term if you're going to expose it explicitly to the user. This has
> ended up with using Configuration.get() a lot because it is lightweight and
> you can tweak settings while you're trying to understand system behavior
> [since there are many config params that may never need to be tuned]. We
> need to add the ability to put & read arbitrary KV settings in the HBase
> schema. Combined with online schema change, this will allow us to safely
> iterate on configuration settings.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira