Fsapei,
Ignite neither supports a cache renaming nor has a notion of aliases for
caches.
In general you can support aliases-like functionality by extending
Ignite's JDBC Driver implementation.
The flow should look like this:
- create a new cache and populate it;
- redirect all the queries to the new cache. To achieve this the code
has to parse a SQL query string and exchange an aliase name with a real
cache name;
- delete the old cache.
Will this work for you?
--
Denis
On 11/30/2015 2:22 PM, Ferry Syafei Sapei wrote:
Hi Denis,
Using a database, we can import new data to new tables and then rename
the table.
In ElasticSearch, there is an alias. The client executes queries
against index alias. On the background, the alias will point to the
actual index. In my use case, I just need to create a new index and
then update the alias’ reference to the new index. The client does not
realize that the index has been changed, since it only communicates
with the alias.
Are there these kind of operations in apache ignite?
fsapei
Am 30.11.2015 um 11:57 schrieb Denis Magda <[email protected]
<mailto:[email protected]>>:
Hi Fsapei,
I don't think that it's feasible or at least easy to implement your
approach without a downtime or changing cache name in queries once
the second cache is fully propagated.
How would you implement your use case if instead of an Ignite cache
you would be using a data base?
--
Denis
On 11/28/2015 11:50 AM, Ferry Syafei Sapei wrote:
Thank you for the reply.
The client uses JDBC Driver to get the data from Ignite.
The swap between new cache and old cache should be hidden from the
client.
Would it be possible to do this in Ignite?
My first idea is to create a new cache and fill it with new data
data. Afterwards, within a transaction, the old cache content will
be deleted and all the content from new cache will be inserted to
the old cache.
Am 28.11.2015 um 03:35 schrieb Dmitriy Setrakyan
<[email protected] <mailto:[email protected]>>:
Hi Fsapei,
Ignite supports dynamic caches, so you can create and destroy
caches on the fly:
https://apacheignite.readme.io/docs/data-grid#section-jcache
To support your use case, you can:
1. create a new cache and start populating it
2. while the new cache is populated, the queries should go to the
old cache.
3. when new cache is fully populated, route the queries to the new
cache
4. delete the old cache
Will this work?
D.
On Sat, Nov 28, 2015 at 3:38 AM, Ferry Syafei Sapei
<[email protected]> wrote:
Hallo,
I would like to use Ignite as Data Grid. The cache will be
initially loaded with a lot of data (e.g. a CSV file with a
size more than 10 GB).
When a new CSV file is available, the current Cache content
must be replaced with the new data from the new CSV. The old
cache content must be completely deleted.
The switch from old cache content to the new one must happen
without downtime. When any SQL Clients execute query during the
switch, they should still obtain any data from the old cache
content, since the switch has not finished yet.
Could somebody please advise me, how to continuously update the
cache like the description above?
Thank you.
Best regards,
fsapei
--
Regards,
Denis Magda
Lead Professional Services Engineer, GridGain Systems
http://www.gridgain.com/