[
https://issues.apache.org/jira/browse/HBASE-5335?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13232968#comment-13232968
]
Phabricator commented on HBASE-5335:
------------------------------------
nspiegelberg has commented on the revision "[jira] [HBASE-5335] Dynamic Schema
Config".
INLINE COMMENTS
src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java:753 I looked
into this some more. We would need to escape more than just single quotes.
There is a function StringEscapeUtils.escapeJavaScript() in apache.commons.lang
that uses the same parsing escapes as Ruby. However, that requires us to
either ensure client packaging of this dependency or write a custom parser for
this.
practically, single quotes are a mistake. we offer zero parsing sanitization
as is and just let the RegionServer throw an IllegalArgumentException if the
user configures it wrong. we need to let the user undo a single quote mistake.
this is currently possible. value sanitization is the same as existing
functionality
src/main/java/org/apache/hadoop/hbase/HColumnDescriptor.java:760 currently,
there is no javadoc info & the user has no way of knowing he can do this unless
he knows about it from the JIRA. security through obscurity.
src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java:367 Already
talked with Ted & Stack about this in previous comments. A summary:
Both HTD & HCD have massive redundancies that could be unified beyond this
function. They are both basically decorated K,V stores. I don't think
unification is very necessary until we have something like locality groups and
need a third K,V store. Have you traditionally seen bugs related to HTD & HCD
inconsistencies? I'm just worried that there is time spent on thinking of how
to refactor this code without thinking about whether the denormalized design is
actually hurting us on a practical feature design/debug sense.
src/main/java/org/apache/hadoop/hbase/util/CompoundConfiguration.java:222-229
3 problems:
1) If I don't use Configuration.java, then I need to refactor a LOT of the
regionserver code to use the new API
2) we basically need to override Configuration.getProps or we'd need
protected access to Configuration.properties so we can modify that pointer.
Basically, there are a bunch of functions in the base Configuration that call
getProps() and we need to use our derived version instead of the base version.
3) Trying to make a generic implementation that works across all HDFS
versions. I would like to modify Configuration.properties in HDFS 1.0 to be
protected, but I'd still need to have this code until my patch made it to all
the versions we support.
Configuration.java hasn't changed much, so I don't think this is an issue in
practice. Do you have another strategy?
src/test/java/org/apache/hadoop/hbase/client/TestFromClientSide.java:4292 The
10 sec sleep is found from TestFromClientSide.compactCFRegion. I used the same
paradigm here and added poll-waiting to speed up the test. We need the
synchronous compaction feature before we can remove this (HBASE-2949).
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