You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Jonathan Ellis (JIRA)" <ji...@apache.org> on 2010/08/03 19:20:17 UTC

[jira] Updated: (CASSANDRA-1241) config file option DiskAccessMode has no-op option "mmap_index_only"

     [ https://issues.apache.org/jira/browse/CASSANDRA-1241?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jonathan Ellis updated CASSANDRA-1241:
--------------------------------------

    Fix Version/s: 0.7.0

> config file option DiskAccessMode has no-op option "mmap_index_only"
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-1241
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1241
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core, Documentation & website
>    Affects Versions: 0.7 beta 1
>            Reporter: Robert Coli
>            Priority: Minor
>             Fix For: 0.7.0
>
>
> Per http://wiki.apache.org/cassandra/StorageConfiguration :
> "
> Access mode. mmapped i/o is substantially faster, but only practical on a 64bit machine (which notably does not include EC2 "small" instances) or relatively small datasets. "auto", the safe choice, will enable mmapping on a 64bit JVM. Other values are "mmap", "mmap_index_only" (which may allow you to get part of the benefits of mmap on a 32bit machine by mmapping only index files) and "standard". (The buffer size settings that follow only apply to standard, non-mmapped i/o.)
> "
> The actual code referring to "mmap_index_only" is in src/java/org/apache/cassandra/config/DatabaseDescriptor.java :
> "
>  public static enum DiskAccessMode {
>         auto,
>         mmap,
>         mmap_index_only,
>         standard,
>     }
> ...
>     private static DiskAccessMode diskAccessMode;
>     private static DiskAccessMode indexAccessMode;
> ...
>             if (diskAccessMode == DiskAccessMode.auto)
>             {
>                 diskAccessMode = System.getProperty("os.arch").contains("64") ? DiskAccessMode.mmap : DiskAccessMode.standard;
>                 indexAccessMode = diskAccessMode;
>                 logger.info("Auto DiskAccessMode determined to be " + diskAccessMode);
>             }
>             else if (diskAccessMode == DiskAccessMode.mmap_index_only)
>             {
>                 diskAccessMode = DiskAccessMode.standard;
>                 indexAccessMode = DiskAccessMode.mmap;
>             }
>             else
>             {
>                 indexAccessMode = diskAccessMode;
>             }
> "
> As indicated by this snippet, IndexAccessMode is set to "mmap" if "mmap_index_only" is set in the conf file. However it does not appear that IndexAccessMode or getIndexAccessMode() are used by any other cassandra code.
> "
> ~/repos/cassandra$ grep -ri indexAccessMode .
> ./src/java/org/apache/cassandra/config/DatabaseDescriptor.java:    private static Config.DiskAccessMode indexAccessMode;
> ./src/java/org/apache/cassandra/config/DatabaseDescriptor.java:                indexAccessMode = conf.disk_access_mode;
> ./src/java/org/apache/cassandra/config/DatabaseDescriptor.java:                indexAccessMode = Config.DiskAccessMode.mmap;
> ./src/java/org/apache/cassandra/config/DatabaseDescriptor.java:                indexAccessMode = conf.disk_access_mode;
> ./src/java/org/apache/cassandra/config/DatabaseDescriptor.java:    public static Config.DiskAccessMode getIndexAccessMode()
> ./src/java/org/apache/cassandra/config/DatabaseDescriptor.java:        return indexAccessMode;
> "
> If I understand the code correctly, this means that setting DiskAccessMode to "mmap_index_only" is functionally the same as setting it to "standard." As people might be tempted to try/test "mmap_index_only" as a mode in-between "standard" and "mmap" in order to mitigate concerns about https://issues.apache.org/jira/browse/CASSANDRA-1214, it would probably be good to either complete the feature or remove the configuration option. I am willing to submit a patch for the latter and fix the docs if that's the decision.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.