accumulo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ke...@deenlo.com
Subject Re: Review Request 24855: ACCUMULO-1454 design doc
Date Tue, 19 Aug 2014 19:06:01 GMT


> On Aug. 19, 2014, 6:21 p.m., Josh Elser wrote:
> > docs/src/main/asciidoc/design/ACCUMULO-1454-proposal-01.adoc, line 20
> > <https://reviews.apache.org/r/24855/diff/1/?file=664453#file664453line20>
> >
> >     More specifics on "have a new config and run on a different port" would be desirable.
> >     
> >     On each tserver host, you have tserver1 with conf1. You copy conf1 to conf2,
make edits, set ACCUMULO_CONF_DIR in accumulo-env.sh (?), start tserver2 (running with conf2),
do whatever tablet migration magic, stop tserver1.
> >     
> >     You're now left with tserver2 running on different ports than you started with
and different config dirs. Do you then have to go back and modify conf1 to match conf2 (sans
the ports) and start tserver1 and stop tserver2? Is there a simpler way to encapsulate this?

Good point.  This needs to be considered in more detail as it may invalidate this design.


> On Aug. 19, 2014, 6:21 p.m., Josh Elser wrote:
> > docs/src/main/asciidoc/design/ACCUMULO-1454-proposal-01.adoc, line 88
> > <https://reviews.apache.org/r/24855/diff/1/?file=664453#file664453line88>
> >
> >     If a user is programming to this API, how do they know what tservers are available?
Shouldn't there be a getTabletServers() method as well?
> >     
> >     Also, it would be better to return a concrete class instead of Iterable (since
we'd likely be backing it by some List). Advertise what we're actaully returning, and let
the user treat it as an Iterable if they so choose.

the following tablet server related methods already exist in instance operations. 
 
 List<String> getTabletServers();
 List<ActiveScan> getActiveScans(String tserver) throws AccumuloException, AccumuloSecurityException;
 List<ActiveCompaction> getActiveCompactions(String tserver) throws AccumuloException,
AccumuloSecurityException;
 void ping(String tserver) throws AccumuloException;
 
 Using List would be consistent w/ rest of API.  I was think that Iterable would allow it
be backed by a scanner over the metadata table.   Was also thinking that something like 
 
 ```loadTablets(getTablets("1.2.3.4:9997"), "1.2.3.4:9993")```
 
 does not have to load complete list of tablet into memory.  That may not be a worthwhile
goal.


> On Aug. 19, 2014, 6:21 p.m., Josh Elser wrote:
> > docs/src/main/asciidoc/design/ACCUMULO-1454-proposal-01.adoc, line 100
> > <https://reviews.apache.org/r/24855/diff/1/?file=664453#file664453line100>
> >
> >     Does avoiding explicitly providing moveTablet semantics avoid the need for unloadTablets
and loadTablets to be FATE ops?

I don't think so, but I was not thinking too much about implementation yet since I am not
certain about the concept yet.


> On Aug. 19, 2014, 6:21 p.m., Josh Elser wrote:
> > docs/src/main/asciidoc/design/ACCUMULO-1454-proposal-01.adoc, line 105
> > <https://reviews.apache.org/r/24855/diff/1/?file=664453#file664453line105>
> >
> >     If you're providing an unloadTablets method, I would think calling loadTablets
on a tablet that is already loaded should throw an Exception, not unload it for you.

My thinking was that load tablets would load on the specified tserver, irrespective of the
tablets current status.


> On Aug. 19, 2014, 6:21 p.m., Josh Elser wrote:
> > docs/src/main/asciidoc/design/ACCUMULO-1454-proposal-01.adoc, line 111
> > <https://reviews.apache.org/r/24855/diff/1/?file=664453#file664453line111>
> >
> >     I'd lean towards keeping KeyExtent out of user's eyesight.

Thats what I am thinking.  I just checked where its used in API.  MutationsRejectedException,
ActiveScan, and ActiveCompaction use it.


> On Aug. 19, 2014, 6:21 p.m., Josh Elser wrote:
> > docs/src/main/asciidoc/design/ACCUMULO-1454-proposal-01.adoc, line 115
> > <https://reviews.apache.org/r/24855/diff/1/?file=664453#file664453line115>
> >
> >     These are going to be coming off of a connector or ZKI, right? I would treat
the instance id as implied (not required as an argument). host+port sounds good, but how do
you distinguish between localhost, 127.0.0.1, the FQDN and the external IP (if there aren't
many)?

I suppose the expectation w/ the current methods that take tserver as an argument is that
you will use something that came from getTabletServers().  I thik the string that comes from
that method is host+port, but not positive.


- kturner


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/24855/#review50998
-----------------------------------------------------------


On Aug. 19, 2014, 5:50 p.m., kturner wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/24855/
> -----------------------------------------------------------
> 
> (Updated Aug. 19, 2014, 5:50 p.m.)
> 
> 
> Review request for accumulo.
> 
> 
> Bugs: ACCUMULO-1454
>     https://issues.apache.org/jira/browse/ACCUMULO-1454
> 
> 
> Repository: accumulo
> 
> 
> Description
> -------
> 
> Positing ACCUMULO-1454 design doc for review
> 
> 
> Diffs
> -----
> 
>   docs/src/main/asciidoc/design/ACCUMULO-1454-proposal-01.adoc PRE-CREATION 
> 
> Diff: https://reviews.apache.org/r/24855/diff/
> 
> 
> Testing
> -------
> 
> 
> Thanks,
> 
> kturner
> 
>


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message