You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@geode.apache.org by "Chaudhary, Sushil (CONT)" <Su...@capitalone.com> on 2016/07/14 13:42:52 UTC

Data Persistence for Geode

All,
Does Geode supports data persistence/backup in readymade format of any rational/nosQL Database (oracle/mysql/mongodb)


Sushil Chaudhary
Email: sushil.chaudhary@capitalone.com
________________________________________________________

The information contained in this e-mail is confidential and/or proprietary to Capital One and/or its affiliates and may only be used solely in performance of work or services for Capital One. The information transmitted herewith is intended only for use by the individual or entity to which it is addressed. If the reader of this message is not the intended recipient, you are hereby notified that any review, retransmission, dissemination, distribution, copying or other use of, or taking of any action in reliance upon this information is strictly prohibited. If you have received this communication in error, please contact the sender and delete the material from your computer.

Re: Data Persistence for Geode

Posted by John Blum <jb...@pivotal.io>.
Hi Sushil-

One more thing.  I should also point out that persistence and backup are
quite different beasts, and do involve different features and options.

Of course, you can always backup Geode's persistent disk files (DiskStore
files), but another option would be to use Geode's Snapshot service...

http://geode.docs.pivotal.io/docs/managing/cache_snapshots/chapter_overview.html

For extremely advanced use cases, usually involving DR (active-passive), or
active-active, there is also Geode's WAN, or multi-site functionality,
which is a form of backup/protection as well, in the face of disasters or
other unexpected occurrences...

http://geode.docs.pivotal.io/docs/topologies_and_comm/multi_site_configuration/chapter_overview.html

Anyway, it is probably clear by now that you are only limited by your
imagination.

Cheers,
John


On Thu, Jul 14, 2016 at 11:50 AM, John Blum <jb...@pivotal.io> wrote:

> Hi Sushil-
>
> Well, not exactly.  Geode has it is own persistence functionality and
> format.  See here for more info...
>
>
> http://geode.docs.pivotal.io/docs/developing/storing_data_on_disk/chapter_overview.html
>
>
> However, Geode can perform synchronous (write-through) and asynchronous
> (write-behind) to an external data source of your choice.
>
> You use a CacheWriter for synchronous, write-through...
>
>
> http://geode.incubator.apache.org/releases/latest/javadoc/com/gemstone/gemfire/cache/CacheWriter.html
>
> And, for aysnc, write-behind you attache a AsyncEventQueue and associated
> listener to your *Region*...
>
>
> http://geode.docs.pivotal.io/docs/developing/events/implementing_write_behind_event_handler.html
>
> Additional information on keeping Geode in-synce with external data
> sources can be found here...
>
>
> http://geode.docs.pivotal.io/docs/developing/outside_data_sources/sync_outside_data.html
>
>
> Still, Geode has NO OOTB support for mapping values (objects) to other
> data stores,  But, that is usually best left to a framework (e.g. JPA to
> handle relational/RDBMS SQL stores) to handle for you, which can be used
> inside of one of the mechanisms (i.e. CacheWriter, AsyncEventListener) I
> pointed to you above.
>
> The Spring Data portfolio has an excellent set of frameworks/APIs to
> handle persistence to different data stores and sources...
>
> http://projects.spring.io/spring-data/
>
> They handle all manners of data stores from *RDBMS/relational/SQL* (using
> spring-data-jpa <http://projects.spring.io/spring-data-jpa> [1] or Spring's
> JDBC Abstraction
> <http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#jdbc> [2],
> itself, combined with Spring Data JDBC Extensions
> <http://projects.spring.io/spring-data-jdbc-ext> [3]) to *MongoDB* (
> spring-data-mongodb <http://projects.spring.io/spring-data-mongodb> [4]),
> *Redis* (spring-data-redis <http://projects.spring.io/spring-data-redis> [5]),
> *Cassandra* (spring-data-cassandra
> <http://projects.spring.io/spring-data-cassandra> [6]), *Neo4j* (
> spring-data-neo4j <http://projects.spring.io/spring-data-neo4j> [7]), and
> many, many more, including *Pivotal GemFire* and *Apache Geode*, itself (
> spring-data-gemfire <http://projects.spring.io/spring-data-gemfire> [8] /
> spring-data-geode
> <https://spring.io/blog/2016/04/29/spring-data-geode-1-0-0-apache-geode-incubating-m2-released>
>  [9])!
>
> In fact, using one of these frameworks, you could use them directly from
> within your application @Service components directly, taking advantage of
> the Repository abstraction
> <http://docs.spring.io/spring-data/data-commons/docs/current/reference/html/#repositories> [10],
> and thereby forgo Geode's mechanism that would tightly couple your
> application code to Geode unnecessarily.
>
> There is no right or wrong approach.  It really depends on your
> application requirements and use case.
>
> Hope this helps give you some ideas.
>
> Cheers!
> -John
>
>
> [1] http://projects.spring.io/spring-data-jpa
> [2]
> http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#jdbc
> [3] http://projects.spring.io/spring-data-jdbc-ext
> [4] http://projects.spring.io/spring-data-mongodb
> [5] http://projects.spring.io/spring-data-redis
> [6] http://projects.spring.io/spring-data-cassandra
> [7] http://projects.spring.io/spring-data-neo4j
> [8] http://projects.spring.io/spring-data-gemfire
> [9]
> https://spring.io/blog/2016/04/29/spring-data-geode-1-0-0-apache-geode-incubating-m2-released
> [10]
> http://docs.spring.io/spring-data/data-commons/docs/current/reference/html/#repositories
>
> On Thu, Jul 14, 2016 at 6:42 AM, Chaudhary, Sushil (CONT) <
> Sushil.Chaudhary@capitalone.com> wrote:
>
>> All,
>> Does Geode supports data persistence/backup in readymade format of any
>> rational/nosQL Database (oracle/mysql/mongodb)
>>
>>
>> *Sushil Chaudhary*
>> *Email*: sushil.chaudhary@capitalone.com
>>
>> ------------------------------
>>
>> The information contained in this e-mail is confidential and/or
>> proprietary to Capital One and/or its affiliates and may only be used
>> solely in performance of work or services for Capital One. The information
>> transmitted herewith is intended only for use by the individual or entity
>> to which it is addressed. If the reader of this message is not the intended
>> recipient, you are hereby notified that any review, retransmission,
>> dissemination, distribution, copying or other use of, or taking of any
>> action in reliance upon this information is strictly prohibited. If you
>> have received this communication in error, please contact the sender and
>> delete the material from your computer.
>>
>
>
>
> --
> -John
> 503-504-8657
> john.blum10101 (skype)
>



-- 
-John
503-504-8657
john.blum10101 (skype)

Re: Data Persistence for Geode

Posted by John Blum <jb...@pivotal.io>.
Hi Sushil-

Well, not exactly.  Geode has it is own persistence functionality and
format.  See here for more info...

http://geode.docs.pivotal.io/docs/developing/storing_data_on_disk/chapter_overview.html


However, Geode can perform synchronous (write-through) and asynchronous
(write-behind) to an external data source of your choice.

You use a CacheWriter for synchronous, write-through...

http://geode.incubator.apache.org/releases/latest/javadoc/com/gemstone/gemfire/cache/CacheWriter.html

And, for aysnc, write-behind you attache a AsyncEventQueue and associated
listener to your *Region*...

http://geode.docs.pivotal.io/docs/developing/events/implementing_write_behind_event_handler.html

Additional information on keeping Geode in-synce with external data sources
can be found here...

http://geode.docs.pivotal.io/docs/developing/outside_data_sources/sync_outside_data.html


Still, Geode has NO OOTB support for mapping values (objects) to other data
stores,  But, that is usually best left to a framework (e.g. JPA to handle
relational/RDBMS SQL stores) to handle for you, which can be used inside of
one of the mechanisms (i.e. CacheWriter, AsyncEventListener) I pointed to
you above.

The Spring Data portfolio has an excellent set of frameworks/APIs to handle
persistence to different data stores and sources...

http://projects.spring.io/spring-data/

They handle all manners of data stores from *RDBMS/relational/SQL* (using
spring-data-jpa <http://projects.spring.io/spring-data-jpa> [1] or Spring's
JDBC Abstraction
<http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#jdbc>
[2],
itself, combined with Spring Data JDBC Extensions
<http://projects.spring.io/spring-data-jdbc-ext> [3]) to *MongoDB* (
spring-data-mongodb <http://projects.spring.io/spring-data-mongodb> [4]),
*Redis* (spring-data-redis <http://projects.spring.io/spring-data-redis> [5]),
*Cassandra* (spring-data-cassandra
<http://projects.spring.io/spring-data-cassandra> [6]), *Neo4j* (
spring-data-neo4j <http://projects.spring.io/spring-data-neo4j> [7]), and
many, many more, including *Pivotal GemFire* and *Apache Geode*, itself (
spring-data-gemfire <http://projects.spring.io/spring-data-gemfire> [8] /
spring-data-geode
<https://spring.io/blog/2016/04/29/spring-data-geode-1-0-0-apache-geode-incubating-m2-released>
 [9])!

In fact, using one of these frameworks, you could use them directly from
within your application @Service components directly, taking advantage of
the Repository abstraction
<http://docs.spring.io/spring-data/data-commons/docs/current/reference/html/#repositories>
[10],
and thereby forgo Geode's mechanism that would tightly couple your
application code to Geode unnecessarily.

There is no right or wrong approach.  It really depends on your application
requirements and use case.

Hope this helps give you some ideas.

Cheers!
-John


[1] http://projects.spring.io/spring-data-jpa
[2]
http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#jdbc
[3] http://projects.spring.io/spring-data-jdbc-ext
[4] http://projects.spring.io/spring-data-mongodb
[5] http://projects.spring.io/spring-data-redis
[6] http://projects.spring.io/spring-data-cassandra
[7] http://projects.spring.io/spring-data-neo4j
[8] http://projects.spring.io/spring-data-gemfire
[9]
https://spring.io/blog/2016/04/29/spring-data-geode-1-0-0-apache-geode-incubating-m2-released
[10]
http://docs.spring.io/spring-data/data-commons/docs/current/reference/html/#repositories

On Thu, Jul 14, 2016 at 6:42 AM, Chaudhary, Sushil (CONT) <
Sushil.Chaudhary@capitalone.com> wrote:

> All,
> Does Geode supports data persistence/backup in readymade format of any
> rational/nosQL Database (oracle/mysql/mongodb)
>
>
> *Sushil Chaudhary*
> *Email*: sushil.chaudhary@capitalone.com
>
> ------------------------------
>
> The information contained in this e-mail is confidential and/or
> proprietary to Capital One and/or its affiliates and may only be used
> solely in performance of work or services for Capital One. The information
> transmitted herewith is intended only for use by the individual or entity
> to which it is addressed. If the reader of this message is not the intended
> recipient, you are hereby notified that any review, retransmission,
> dissemination, distribution, copying or other use of, or taking of any
> action in reliance upon this information is strictly prohibited. If you
> have received this communication in error, please contact the sender and
> delete the material from your computer.
>



-- 
-John
503-504-8657
john.blum10101 (skype)