You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@brooklyn.apache.org by he...@apache.org on 2016/02/01 18:47:13 UTC

[21/50] [abbrv] brooklyn-library git commit: Riak startup - It starts with a ulimit configuration based on the Basho's recommentadtions

Riak startup 
- It starts with a ulimit configuration based on the
  Basho's recommentadtions

Project: http://git-wip-us.apache.org/repos/asf/brooklyn-library/repo
Commit: http://git-wip-us.apache.org/repos/asf/brooklyn-library/commit/ba9f4ed3
Tree: http://git-wip-us.apache.org/repos/asf/brooklyn-library/tree/ba9f4ed3
Diff: http://git-wip-us.apache.org/repos/asf/brooklyn-library/diff/ba9f4ed3

Branch: refs/heads/0.7.0-incubating
Commit: ba9f4ed36697da58e59a5928bb4bb324973de8dc
Parents: b575ad7
Author: Yavor Yanchev <ya...@yanchev.com>
Authored: Mon Jun 15 19:29:13 2015 +0300
Committer: Yavor Yanchev <ya...@yanchev.com>
Committed: Tue Jun 16 16:56:21 2015 +0300

----------------------------------------------------------------------
 .../src/main/java/brooklyn/entity/nosql/riak/RiakNode.java    | 7 ++++++-
 .../main/java/brooklyn/entity/nosql/riak/RiakNodeImpl.java    | 6 ++++++
 .../java/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java    | 6 +++++-
 3 files changed, 17 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/ba9f4ed3/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNode.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNode.java b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNode.java
index 23f86a9..d82c3f4 100644
--- a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNode.java
+++ b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNode.java
@@ -72,7 +72,12 @@ public interface RiakNode extends SoftwareProcess {
 
     ConfigKey<String> RIAK_CONF_ADDITIONAL_CONTENT = ConfigKeys.newStringConfigKey(
             "riak.riakConf.additionalContent", "Template file (in freemarker format) for setting up additional settings in the riak.conf file", "");
-
+    
+    // maxOpenFiles' default value (65536) is based on the Basho's recommendation - http://docs.basho.com/riak/latest/ops/tuning/open-files-limit/ 
+    @SetFromFlag("maxOpenFiles")
+    ConfigKey<Integer> RIAK_MAX_OPEN_FILES = ConfigKeys.newIntegerConfigKey(
+            "riak.max.open.files", "Number of the open files required by Riak", 65536);
+    
     @SetFromFlag("downloadUrlRhelCentos")
     AttributeSensorAndConfigKey<String, String> DOWNLOAD_URL_RHEL_CENTOS = ConfigKeys.newTemplateSensorAndConfigKey("download.url.rhelcentos",
             "URL pattern for downloading the linux RPM installer (will substitute things like ${version} automatically)",

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/ba9f4ed3/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeImpl.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeImpl.java b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeImpl.java
index 25484d2..dea8b87 100644
--- a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeImpl.java
+++ b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeImpl.java
@@ -43,6 +43,7 @@ import brooklyn.util.config.ConfigBag;
 import brooklyn.util.guava.Functionals;
 import brooklyn.util.time.Duration;
 
+import com.google.common.base.Preconditions;
 import com.google.common.base.Function;
 import com.google.common.base.Functions;
 import com.google.common.collect.ContiguousSet;
@@ -70,6 +71,11 @@ public class RiakNodeImpl extends SoftwareProcessImpl implements RiakNode {
         // fail fast if config files not avail
         Entities.getRequiredUrlConfig(this, RIAK_VM_ARGS_TEMPLATE_URL);
         Entities.getRequiredUrlConfig(this, RIAK_APP_CONFIG_TEMPLATE_URL);
+        
+        Integer defaultMaxOpenFiles = RIAK_MAX_OPEN_FILES.getDefaultValue();
+        Integer maxOpenFiles = getConfig(RiakNode.RIAK_MAX_OPEN_FILES);
+        Preconditions.checkArgument(maxOpenFiles >= defaultMaxOpenFiles , "Specified number of open files : %s : is less than the required minimum",
+                maxOpenFiles, defaultMaxOpenFiles);
     }
 
     public boolean isPackageDownloadUrlProvided() {

http://git-wip-us.apache.org/repos/asf/brooklyn-library/blob/ba9f4ed3/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java
----------------------------------------------------------------------
diff --git a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java
index 9ed5ef1..856c029 100644
--- a/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java
+++ b/software/nosql/src/main/java/brooklyn/entity/nosql/riak/RiakNodeSshDriver.java
@@ -314,7 +314,7 @@ public class RiakNodeSshDriver extends AbstractSoftwareProcessSshDriver implemen
 
         if (isPackageInstall()) {
             commands.add(addSbinPathCommand());
-            commands.add(sudo("service riak start"));
+            commands.add(sudo(format("sh -c \"ulimit -n %s && service riak start\"", maxOpenFiles())));
         } else {
             // NOTE: See instructions at http://superuser.com/questions/433746/is-there-a-fix-for-the-too-many-open-files-in-system-error-on-os-x-10-7-1
             // for increasing the system limit for number of open files
@@ -594,4 +594,8 @@ public class RiakNodeSshDriver extends AbstractSoftwareProcessSshDriver implemen
 //        log.warn("riak command not found on PATH. Altering future commands' environment variables from {} to {}", getShellEnvironment(), newPathVariable);
         scriptHelper.environmentVariablesReset(newPathVariable);
     }
+
+    public Integer maxOpenFiles() {
+        return entity.getConfig(RiakNode.RIAK_MAX_OPEN_FILES);
+    }
 }