Is there a way to "embed"/package Cassandra with an other Java application
and maintain control over it? Is this done before? Are there any best
practices?
Why I want to do this? We want to offer as less as configuration as
possible to our customers, but only if it's possible without messing around
in the Cassandra core.
Disclaimer: The information contained in this message and attachments is
intended solely for the attention and use of the named addressee and may be
confidential. If you are not the intended recipient, you are reminded that
the information remains the property of the sender. You must not use,
disclose, distribute, copy, print or rely on this e-mail. If you have
received this message in error, please contact the sender immediately and
irrevocably delete this message and any copies.
Some additional information: I already read about "Embedding"
http://wiki.apache.org/cassandra/Embedding however that doesn't seem a
rock solid solution to me. The word "volatile" is not really comforting me
;-)
Disclaimer: The information contained in this message and attachments is
intended solely for the attention and use of the named addressee and may be
confidential. If you are not the intended recipient, you are reminded that
the information remains the property of the sender. You must not use,
disclose, distribute, copy, print or rely on this e-mail. If you have
received this message in error, please contact the sender immediately and
irrevocably delete this message and any copies.
> Is there a way to "embed"/package Cassandra with an other Java application
> and maintain control over it? Is this done before? Are there any best
> practices?
> Why I want to do this? We want to offer as less as configuration as
> possible to our customers, but only if it's possible without messing around
> in the Cassandra core.
> Disclaimer: The information contained in this message and attachments is
> intended solely for the attention and use of the named addressee and may be
> confidential. If you are not the intended recipient, you are reminded that
> the information remains the property of the sender. You must not use,
> disclose, distribute, copy, print or rely on this e-mail. If you have
> received this message in error, please contact the sender immediately and
> irrevocably delete this message and any copies.
I guess, you can always open/maintain a socket with running cassandra
daemon and have a control over specific column families/keyspace or server
itself.
On Wed, Sep 26, 2012 at 12:51 PM, Robin Verlangen <ro...@us2.nl> wrote:
> Some additional information: I already read about "Embedding"
> http://wiki.apache.org/cassandra/Embedding however that doesn't seem a
> rock solid solution to me. The word "volatile" is not really comforting me
> ;-)
> Disclaimer: The information contained in this message and attachments is
> intended solely for the attention and use of the named addressee and may be
> confidential. If you are not the intended recipient, you are reminded that
> the information remains the property of the sender. You must not use,
> disclose, distribute, copy, print or rely on this e-mail. If you have
> received this message in error, please contact the sender immediately and
> irrevocably delete this message and any copies.
>> Is there a way to "embed"/package Cassandra with an other Java
>> application and maintain control over it? Is this done before? Are there
>> any best practices?
>> Why I want to do this? We want to offer as less as configuration as
>> possible to our customers, but only if it's possible without messing around
>> in the Cassandra core.
>> Disclaimer: The information contained in this message and attachments is
>> intended solely for the attention and use of the named addressee and may be
>> confidential. If you are not the intended recipient, you are reminded that
>> the information remains the property of the sender. You must not use,
>> disclose, distribute, copy, print or rely on this e-mail. If you have
>> received this message in error, please contact the sender immediately and
>> irrevocably delete this message and any copies.
Disclaimer: The information contained in this message and attachments is
intended solely for the attention and use of the named addressee and may be
confidential. If you are not the intended recipient, you are reminded that
the information remains the property of the sender. You must not use,
disclose, distribute, copy, print or rely on this e-mail. If you have
received this message in error, please contact the sender immediately and
irrevocably delete this message and any copies.
> I guess, you can always open/maintain a socket with running cassandra
> daemon and have a control over specific column families/keyspace or server
> itself.
> -Vivek
> On Wed, Sep 26, 2012 at 12:51 PM, Robin Verlangen <ro...@us2.nl> wrote:
>> Some additional information: I already read about "Embedding"
>> http://wiki.apache.org/cassandra/Embedding however that doesn't seem a
>> rock solid solution to me. The word "volatile" is not really comforting me
>> ;-)
>> Disclaimer: The information contained in this message and attachments is
>> intended solely for the attention and use of the named addressee and may be
>> confidential. If you are not the intended recipient, you are reminded that
>> the information remains the property of the sender. You must not use,
>> disclose, distribute, copy, print or rely on this e-mail. If you have
>> received this message in error, please contact the sender immediately and
>> irrevocably delete this message and any copies.
>>> Is there a way to "embed"/package Cassandra with an other Java
>>> application and maintain control over it? Is this done before? Are there
>>> any best practices?
>>> Why I want to do this? We want to offer as less as configuration as
>>> possible to our customers, but only if it's possible without messing around
>>> in the Cassandra core.
>>> Disclaimer: The information contained in this message and attachments is
>>> intended solely for the attention and use of the named addressee and may be
>>> confidential. If you are not the intended recipient, you are reminded that
>>> the information remains the property of the sender. You must not use,
>>> disclose, distribute, copy, print or rely on this e-mail. If you have
>>> received this message in error, please contact the sender immediately and
>>> irrevocably delete this message and any copies.
> Disclaimer: The information contained in this message and attachments is
> intended solely for the attention and use of the named addressee and may be
> confidential. If you are not the intended recipient, you are reminded that
> the information remains the property of the sender. You must not use,
> disclose, distribute, copy, print or rely on this e-mail. If you have
> received this message in error, please contact the sender immediately and
> irrevocably delete this message and any copies.
>> I guess, you can always open/maintain a socket with running cassandra
>> daemon and have a control over specific column families/keyspace or server
>> itself.
>> -Vivek
>> On Wed, Sep 26, 2012 at 12:51 PM, Robin Verlangen <ro...@us2.nl> wrote:
>>> Some additional information: I already read about "Embedding"
>>> http://wiki.apache.org/cassandra/Embedding however that doesn't seem a
>>> rock solid solution to me. The word "volatile" is not really comforting me
>>> ;-)
>>> Disclaimer: The information contained in this message and attachments is
>>> intended solely for the attention and use of the named addressee and may be
>>> confidential. If you are not the intended recipient, you are reminded that
>>> the information remains the property of the sender. You must not use,
>>> disclose, distribute, copy, print or rely on this e-mail. If you have
>>> received this message in error, please contact the sender immediately and
>>> irrevocably delete this message and any copies.
>>>> Is there a way to "embed"/package Cassandra with an other Java
>>>> application and maintain control over it? Is this done before? Are there
>>>> any best practices?
>>>> Why I want to do this? We want to offer as less as configuration as
>>>> possible to our customers, but only if it's possible without messing around
>>>> in the Cassandra core.
>>>> Disclaimer: The information contained in this message and attachments
>>>> is intended solely for the attention and use of the named addressee and may
>>>> be confidential. If you are not the intended recipient, you are reminded
>>>> that the information remains the property of the sender. You must not use,
>>>> disclose, distribute, copy, print or rely on this e-mail. If you have
>>>> received this message in error, please contact the sender immediately and
>>>> irrevocably delete this message and any copies.
Cassandra is a distributed database meant to run across multiple systems.
Is your existing Java application distributed as well? Does "maintain
control" mean "exclude end users from connecting to it and making changes"
or merely "provisioning and keep it running well operationally for the
application"? Honestly, either of those seem like a lot to ask right now
for any solution requiring the scalability that Cassandra provides.
That said, I've done embeded PostgreSQL in the past. Not distributed mind
you. And it was on an appliance. We picked PG because it's super reliable
and very good at recovering from all kinds of evil things that customers
do... pulling power cords, etc. I don't think any of our customers even
knew we were using PG unless they looked in the Licensing section of the
manual.
Personally, I don't think Cassandra is there yet where it can be a opaque
datastore from the end user perspective- especially if you're distributing
it as part of a software application and don't have full control over the
hardware/environment. Not to say Cassandra hasn't been reliable for us,
but it's far from "install it and forget it". Simple things like dealing
with network/node outages or adding/removing new nodes are complicated
enough that I'd hesitant to automate without some human familiar with
Cassandra being involved.
On Tue, Sep 25, 2012 at 10:11 PM, Robin Verlangen <ro...@us2.nl> wrote:
> Hi there,
> Is there a way to "embed"/package Cassandra with an other Java application
> and maintain control over it? Is this done before? Are there any best
> practices?
> Why I want to do this? We want to offer as less as configuration as
> possible to our customers, but only if it's possible without messing around
> in the Cassandra core.
> Disclaimer: The information contained in this message and attachments is
> intended solely for the attention and use of the named addressee and may be
> confidential. If you are not the intended recipient, you are reminded that
> the information remains the property of the sender. You must not use,
> disclose, distribute, copy, print or rely on this e-mail. If you have
> received this message in error, please contact the sender immediately and
> irrevocably delete this message and any copies.
-- Aaron Turner
http://synfin.net/ Twitter: @synfinatic
http://tcpreplay.synfin.net/ - Pcap editing and replay tools for Unix &
Windows
Those who would give up essential Liberty, to purchase a little temporary
Safety, deserve neither Liberty nor Safety.
-- Benjamin Franklin
"carpe diem quam minimum credula postero"
We're not a 100% sure yet about what to use. The application itself is just
as distributed as Cassandra is. It also embeds ElasticSearch.
At this point I only see the "ring" as a real pain in the ass, as I have to
automatically move nodes around to prevent unbalanced setup.
The goal is not to prevent users from connecting to Cassandra. If they want
to change anything internal they can and should. Flexibility is one of our
main goals.
But you might have a point: Cassandra is not a "shoot-and-forget" kind of
software.
Disclaimer: The information contained in this message and attachments is
intended solely for the attention and use of the named addressee and may be
confidential. If you are not the intended recipient, you are reminded that
the information remains the property of the sender. You must not use,
disclose, distribute, copy, print or rely on this e-mail. If you have
received this message in error, please contact the sender immediately and
irrevocably delete this message and any copies.
> Cassandra is a distributed database meant to run across multiple systems.
> Is your existing Java application distributed as well? Does "maintain
> control" mean "exclude end users from connecting to it and making changes"
> or merely "provisioning and keep it running well operationally for the
> application"? Honestly, either of those seem like a lot to ask right now
> for any solution requiring the scalability that Cassandra provides.
> That said, I've done embeded PostgreSQL in the past. Not distributed mind
> you. And it was on an appliance. We picked PG because it's super reliable
> and very good at recovering from all kinds of evil things that customers
> do... pulling power cords, etc. I don't think any of our customers even
> knew we were using PG unless they looked in the Licensing section of the
> manual.
> Personally, I don't think Cassandra is there yet where it can be a opaque
> datastore from the end user perspective- especially if you're distributing
> it as part of a software application and don't have full control over the
> hardware/environment. Not to say Cassandra hasn't been reliable for us,
> but it's far from "install it and forget it". Simple things like dealing
> with network/node outages or adding/removing new nodes are complicated
> enough that I'd hesitant to automate without some human familiar with
> Cassandra being involved.
> On Tue, Sep 25, 2012 at 10:11 PM, Robin Verlangen <ro...@us2.nl> wrote:
>> Hi there,
>> Is there a way to "embed"/package Cassandra with an other Java
>> application and maintain control over it? Is this done before? Are there
>> any best practices?
>> Why I want to do this? We want to offer as less as configuration as
>> possible to our customers, but only if it's possible without messing around
>> in the Cassandra core.
>> Disclaimer: The information contained in this message and attachments is
>> intended solely for the attention and use of the named addressee and may be
>> confidential. If you are not the intended recipient, you are reminded that
>> the information remains the property of the sender. You must not use,
>> disclose, distribute, copy, print or rely on this e-mail. If you have
>> received this message in error, please contact the sender immediately and
>> irrevocably delete this message and any copies.
> --
> Aaron Turner
> http://synfin.net/ Twitter: @synfinatic
> http://tcpreplay.synfin.net/ - Pcap editing and replay tools for Unix &
> Windows
> Those who would give up essential Liberty, to purchase a little temporary
> Safety, deserve neither Liberty nor Safety.
> -- Benjamin Franklin
> "carpe diem quam minimum credula postero"