[ 
https://issues.apache.org/jira/browse/ACCUMULO-3948?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15000816#comment-15000816
 ] 

ASF GitHub Bot commented on ACCUMULO-3948:
------------------------------------------

Github user joshelser commented on a diff in the pull request:

    https://github.com/apache/accumulo/pull/51#discussion_r44564606
  
    --- Diff: docs/src/main/asciidoc/chapters/administration.txt ---
    @@ -344,6 +344,49 @@ very sensitive to an excessive number of nodes and the 
sizes of the nodes. Appli
     which leverage the user of custom properties should take these warnings 
into
     consideration. There is no enforcement of these warnings via the API.
     
    +==== Configuring the ClassLoader
    +
    +Accumulo loads classes from the locations specified in the 
+general.classpaths+ property. Additionally, Accumulo will load classes
    +from the locations specified in the +general.dynamic.classpaths+ property 
and will monitor and reload them if they change. The reloading 
    +feature is useful during the development and testing of iterators as new 
or modified iterator classes can be deployed to Accumulo without
    +having to restart the database.
    +
    +Accumulo also has an alternate configuration for the classloader which 
will allow it to load classes from remote locations. This mechanism
    +uses Apache Commons VFS which enables locations such as http and hdfs to 
be used. This alternate configuration also uses the
    ++general.classpaths+ property in the same manner described above. It 
differs in that you need to configure the
    ++general.vfs.classpaths+ property instead of the 
+general.dynamic.classpath+ property. As in the default configuration, this 
alternate
    +configuration will also monitor the vfs locations for changes and reload 
if necessary.
    +
    +===== ClassLoader Contexts
    +
    +With the addition of the VFS based classloader, we introduced the notion 
of classloader contexts. A context is identified
    +by a name and references a set of locations from which to load classes and 
can be specified in the accumulo-site.xml file or added
    +using the +config+ command in the shell. Below is an example for specify 
the app1 context in the accumulo-site.xml file:
    +
    +[source,xml]
    +<property>
    +  <name>general.vfs.context.classpath.app1</name>
    +  
<value>hdfs://localhost:8020/applicationA/classpath/.*.jar,file:///opt/applicationA/lib/.*.jar</value>
    +  <description>Application A classpath, loads jars from HDFS and local 
file system</description>
    +</property>
    +
    +The default behavior follows the Java ClassLoader contract in that 
classes, if they exists, are loaded from the parent classloader first.
    +You can override this behavior by delegating to the parent classloader 
after looking in this classloader first. An example of this
    +configuration is:
    +
    +[source,xml]
    +<property>
    +  <name>general.vfs.context.classpath.app1.delegation=post</name>
    +  
<value>hdfs://localhost:8020/applicationA/classpath/.*.jar,file:///opt/applicationA/lib/.*.jar</value>
    +  <description>Application A classpath, loads jars from HDFS and local 
file system</description>
    +</property>
    +
    +To use contexts in your application you can set the 
+table.classpath.context+ on your tables or use the +setContext()+ method on 
Scanner
    --- End diff --
    
    What is the "context" that would be passed to `setContext(String)`?


> Enable A/B testing of scan iterators on a table
> -----------------------------------------------
>
>                 Key: ACCUMULO-3948
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-3948
>             Project: Accumulo
>          Issue Type: Improvement
>          Components: tserver
>            Reporter: Dave Marion
>            Assignee: Dave Marion
>             Fix For: 1.8.0
>
>         Attachments: ACCUMULO-3948.1-6-3.patch, TestIterator.patch
>
>
> Classpath contexts are assigned to a table via the table configuration. You 
> can test at scale by cloning your table and assigning a new classpath context 
> to the cloned table. However, you would also need to change your application 
> to use the new table names and since we cannot disable compactions you would 
> start to consume more space in the filesystem for that table. We can support 
> users passing in a context name to use for the scan on existing tables. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to