You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Ted Yu <yu...@gmail.com> on 2013/05/08 01:57:41 UTC

Re: [DISCUSS] Namespace Delimiter

Interesting discussion.

On Tue, May 7, 2013 at 4:49 PM, Ian Varley <iv...@salesforce.com> wrote:

> I would also submit that "." is a pretty universal standard (citation
> needed) in relational databases for separating namespaces (schemas, etc.)
> from tables. We use that now to represent the same idea, and using a
> different delimiter would be less than ideal in the long run.
>
> But, I agree with Jon - anything in the 0.96 upgrade that causes people to
> change client code in lock-step isn't going to fly.
>
> Is there any solution which can use "." but be transparent at upgrade
> time? I.e. you could still refer to it by its full "Namespace.Table" name
> in client code, and it does a little more work to try both combinations?
> That'd prevent cases where someone already has tables called both "Y' and
> "X.Y", but, come on, who does that?
>
> Ian
>
> On May 7, 2013, at 6:43 PM, Jonathan Hsieh wrote:
>
> I prefer using a delimiter that does not require migration.  As someone who
> has to support a wide variety of users, this will cause much less confusion
> from our users (and save me grief!)
>
> From the code [1], any symbol char other than '.', '_', or '-' would be an
> ok delimiter.  howabout a ':' or '#'?
>
> [1]
>
> https://github.com/apache/hbase/blob/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java#L415
>
> Jon.
>
>
> On Tue, May 7, 2013 at 4:38 PM, Francis Liu <to...@apache.org> wrote:
>
> Hi,
>
> As part of the namespace patch (HBASE-8015). We will need a delimiter to
> separate namespace name from table name. The obvious choice here would be a
> dot '.'. Since dot is presently a valid character for table names that
> would require users to migrate their tables (ie renaming tables) as part of
> upgrade to 0.96. Another option is to use a different delimiter to avoid
> the table migration altogether. Thoughts?
>
> -Francis
>
>
>
>
> --
> // Jonathan Hsieh (shay)
> // Software Engineer, Cloudera
> // jon@cloudera.com
>
>

Re: [DISCUSS] Namespace Delimiter

Posted by Shahab Yunus <sh...@gmail.com>.
'.' would have been ideal but I agree with it causing serious migration
issues. I think we can use # It is not a widely used character in names or
naming of objects or variables (I don't have any scientific data, just
observation) also in Pig the key.value in case of accessing the map
representing a HBase column family also uses this. Plus it is already used
as a special character in other technologies (commen\ts in mySQL, temp
tables in MS SQL etc.)


On Tue, May 7, 2013 at 7:57 PM, Ted Yu <yu...@gmail.com> wrote:

> Interesting discussion.
>
> On Tue, May 7, 2013 at 4:49 PM, Ian Varley <iv...@salesforce.com> wrote:
>
> > I would also submit that "." is a pretty universal standard (citation
> > needed) in relational databases for separating namespaces (schemas, etc.)
> > from tables. We use that now to represent the same idea, and using a
> > different delimiter would be less than ideal in the long run.
> >
> > But, I agree with Jon - anything in the 0.96 upgrade that causes people
> to
> > change client code in lock-step isn't going to fly.
> >
> > Is there any solution which can use "." but be transparent at upgrade
> > time? I.e. you could still refer to it by its full "Namespace.Table" name
> > in client code, and it does a little more work to try both combinations?
> > That'd prevent cases where someone already has tables called both "Y' and
> > "X.Y", but, come on, who does that?
> >
> > Ian
> >
> > On May 7, 2013, at 6:43 PM, Jonathan Hsieh wrote:
> >
> > I prefer using a delimiter that does not require migration.  As someone
> who
> > has to support a wide variety of users, this will cause much less
> confusion
> > from our users (and save me grief!)
> >
> > From the code [1], any symbol char other than '.', '_', or '-' would be
> an
> > ok delimiter.  howabout a ':' or '#'?
> >
> > [1]
> >
> >
> https://github.com/apache/hbase/blob/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java#L415
> >
> > Jon.
> >
> >
> > On Tue, May 7, 2013 at 4:38 PM, Francis Liu <to...@apache.org> wrote:
> >
> > Hi,
> >
> > As part of the namespace patch (HBASE-8015). We will need a delimiter to
> > separate namespace name from table name. The obvious choice here would
> be a
> > dot '.'. Since dot is presently a valid character for table names that
> > would require users to migrate their tables (ie renaming tables) as part
> of
> > upgrade to 0.96. Another option is to use a different delimiter to avoid
> > the table migration altogether. Thoughts?
> >
> > -Francis
> >
> >
> >
> >
> > --
> > // Jonathan Hsieh (shay)
> > // Software Engineer, Cloudera
> > // jon@cloudera.com
> >
> >
>

Re: [DISCUSS] Namespace Delimiter

Posted by Shahab Yunus <sh...@gmail.com>.
'.' would have been ideal but I agree with it causing serious migration
issues. I think we can use # It is not a widely used character in names or
naming of objects or variables (I don't have any scientific data, just
observation) also in Pig the key.value in case of accessing the map
representing a HBase column family also uses this. Plus it is already used
as a special character in other technologies (commen\ts in mySQL, temp
tables in MS SQL etc.)


On Tue, May 7, 2013 at 7:57 PM, Ted Yu <yu...@gmail.com> wrote:

> Interesting discussion.
>
> On Tue, May 7, 2013 at 4:49 PM, Ian Varley <iv...@salesforce.com> wrote:
>
> > I would also submit that "." is a pretty universal standard (citation
> > needed) in relational databases for separating namespaces (schemas, etc.)
> > from tables. We use that now to represent the same idea, and using a
> > different delimiter would be less than ideal in the long run.
> >
> > But, I agree with Jon - anything in the 0.96 upgrade that causes people
> to
> > change client code in lock-step isn't going to fly.
> >
> > Is there any solution which can use "." but be transparent at upgrade
> > time? I.e. you could still refer to it by its full "Namespace.Table" name
> > in client code, and it does a little more work to try both combinations?
> > That'd prevent cases where someone already has tables called both "Y' and
> > "X.Y", but, come on, who does that?
> >
> > Ian
> >
> > On May 7, 2013, at 6:43 PM, Jonathan Hsieh wrote:
> >
> > I prefer using a delimiter that does not require migration.  As someone
> who
> > has to support a wide variety of users, this will cause much less
> confusion
> > from our users (and save me grief!)
> >
> > From the code [1], any symbol char other than '.', '_', or '-' would be
> an
> > ok delimiter.  howabout a ':' or '#'?
> >
> > [1]
> >
> >
> https://github.com/apache/hbase/blob/trunk/hbase-client/src/main/java/org/apache/hadoop/hbase/HTableDescriptor.java#L415
> >
> > Jon.
> >
> >
> > On Tue, May 7, 2013 at 4:38 PM, Francis Liu <to...@apache.org> wrote:
> >
> > Hi,
> >
> > As part of the namespace patch (HBASE-8015). We will need a delimiter to
> > separate namespace name from table name. The obvious choice here would
> be a
> > dot '.'. Since dot is presently a valid character for table names that
> > would require users to migrate their tables (ie renaming tables) as part
> of
> > upgrade to 0.96. Another option is to use a different delimiter to avoid
> > the table migration altogether. Thoughts?
> >
> > -Francis
> >
> >
> >
> >
> > --
> > // Jonathan Hsieh (shay)
> > // Software Engineer, Cloudera
> > // jon@cloudera.com
> >
> >
>