[wildfly-dev] Cassandra Subsystem

Scott Marlow smarlow at redhat.com
Fri Sep 19 10:00:28 EDT 2014


Even if System.exit() isn't called, the process can still terminate for 
other reasons.  How do you want to handle a Cassandra process 
termination?  Perhaps log the error and retry starting it a certain 
number of times (with maybe a time threshold on how many times to 
restart)?  Do we have logic like this elsewhere?

IMO, we should also read the Cassandra process output so that it doesn't 
stay in memory.

On 09/19/2014 08:57 AM, Heiko Braun wrote:
> It's not my preferred solution, but something to explore.  At the same time I talking to the apache folks if we can get rid of the System.exit() call in C*. Which they seem to consider  a good thing too.
>
> But thanks for the pointers, I'll have a look. Bootstrapping modules like we do it for WF didn't come to my mind.
>
> Regards, Heiko
>
> On 19 Sep 2014, at 14:52, David M. Lloyd <david.lloyd at redhat.com> wrote:
>
>> Well, I have a bias of course, but it seems to me like you could just
>> add Cassandra and its dependencies as modules and then launch it like this:
>>
>>      String javaHome = System.getProperty("java.home");
>>      ProcessBuilder pb = new ProcssBuilder(
>> 	javaHome + File.pathSeparator + "bin" + File.pathSeparator + "java",
>>          ...jvm args...,
>>          "-jar",
>>          "jboss-modules.jar",
>>          "-mp",
>>          "modules",
>>          "org.whatever.cassandra",
>>          ...cassandra args...);
>>      ...set up I/O redirection here...
>>      Process p = pb.start();
>>
>> On 09/19/2014 03:12 AM, Heiko Braun wrote:
>>>
>>>
>>> David,
>>>
>>> I've been thinking more about your proposal to treat the cassandra daemon as a subprocess. Currently the cassandra dependencies are installed along side the module. How would I pass the classpath to the subprocess? Is there a way to get to the CP, similar to the way an URLClassLoader exposes it? Or how could it be achieved with JBoss modules?
>>>
>>> /Heiko
>>>
>>> On 26 Aug 2014, at 17:36, David M. Lloyd <david.lloyd at redhat.com> wrote:
>>>
>>>> Yeah, you could have a service that controls the cassandra daemon as a
>>>> service and uses whatever its default network API is for communications.
>>>>   This should be safe and reliable as of JDK 7.
>>>>
>>>> Just a suggestion in case embedding becomes an untenable proposition.
>>>>
>>>> On 8/26/14, 8:23 AM, Heiko Braun wrote:
>>>>>
>>>>>
>>>>> Not sure I can follow. Do you refer to the System.exit() calls?
>>>>>
>>>>> On 26 Aug 2014, at 15:10, David M. Lloyd <david.lloyd at redhat.com
>>>>> <mailto:david.lloyd at redhat.com>> wrote:
>>>>>
>>>>>> One possible option might be to run it as a subprocess.
>>>>>
>>>>
>>>>
>>>> --
>>>> - DML
>>>> _______________________________________________
>>>> wildfly-dev mailing list
>>>> wildfly-dev at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>>>
>>
>> --
>> - DML
>> _______________________________________________
>> wildfly-dev mailing list
>> wildfly-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>
>
> _______________________________________________
> wildfly-dev mailing list
> wildfly-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/wildfly-dev
>



More information about the wildfly-dev mailing list