Ignite Server nodes crash with OutOfMemoryError on cluster upscale

2018-07-27 Thread Artem Zinnatullin
Hello, dear Ignite users & developers

I'm running an Ignite 2.6.0 cluster in k8s as a partitioned cache
(off-heap) with eviction policy. It all works great and handles around 100K
RPM in peaks (many thanks for the software!).

The problem I'm facing is that on cluster topology change, all existing
Ignite server instances crash with Java OutOfMemoryError and lose data
(gladly it's cache, but still important for performance of our systems).

First time I've noticed that happened, I've increased Java heap for Ignite
server nodes to 3 GB, and it seemed to work for a while during minor
topology changes (ie add one node, remove one node)

But I just increased number of nodes to 12 from 8, so 4 new nodes, and all
already running nodes crashed with OOM again

Looks like the more nodes we're trying to add to a cluster at around the
same time, the more memory is required for existing nodes to handle this
change.

Do you have any recommendations on how much Java heap an Ignite server need
for a given cluster size? Note that actual data is stored off-heap (see
configs below).

Thanks!

Configs:

k8s Ignite server containers:

containers:
  - name: ignite-node
image: apacheignite/ignite:2.6.0
resources:
  requests:
memory: "28G"
cpu: 1
  limits:
memory: "29G"
cpu: 2

JVM_OPTS:
-server \
-Djava.net.preferIPv4Stack=true \
-XX:+UnlockExperimentalVMOptions \
-XX:+UseCGroupMemoryLimitForHeap \
-XX:MaxDirectMemorySize=25g \
-Xms1g \
-Xmx3g \
-XX:+UseG1GC \
-XX:+AlwaysPreTouch \
-XX:+ScavengeBeforeFullGC \
-XX:+DisableExplicitGC

XML:


































Kind regards,
Artem Zinnatullin.


Need help for setting offheap memory

2018-07-27 Thread Amol Zambare
Hi,

We are using ignite to share in memory data across the spark jobs. .

I am using below configuration to set ignite offheap memory. I would like
to set it as 100 gb.

However when I print the node statistics using visor it shows offheap max
memory as 1 gb.

Please suggest.

Apache Ignite version 2.3


  


  




  

  
   

Thanks,
Amol


Re: rest api rmdbs integration

2018-07-27 Thread vkulichenko
The error means that there is no such class on classpath. Please check if
that's the case or not.

You can also provide your project and steps to reproduce the issue, I will
take a look then.

-Val



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/


Ignite.NET + Apache Cassandra integration for SQL cache

2018-07-27 Thread crenique
Hi,

 We create a cache using SQL DDL syntax.
How can I configure Cassandra persistent store to the cache in .NET
application ?

 It seems like default CacheConfiguration is automatically applied
internally in Java codes for SQL cache, so not able to load up Spring.XML
for that cache.


Here is the steps creating a SQL cache.


/Ignite: 2.6
OS: Windows Server 2016
Jdk: Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
Programming language: C#/

*a)*
// Create dummy cache to act as an entry point for SQL queries (new SQL API
which do not require this
// will appear in future versions, JDBC and ODBC drivers do not require it
already).
var cacheCfg = new CacheConfiguration(m_odbcCacheName)
{
SqlSchema = "PUBLIC",
CacheMode = CacheMode.Replicated
};

m_odbcCache = m_ignite.GetOrCreateCache(cacheCfg);


*b)*
// Create a VALUE_TYPE class 
public class UserData : IBinarizable
{
[QuerySqlField]
public DateTime LastUpdated { get; set; }

[QuerySqlField]
public byte[] Data { get; set; }

public UserData() { }
public UserData(byte[] btUserData)
{
LastUpdated = DateTime.UtcNow;
Data = btUserData;
}

public void WriteBinary(IBinaryWriter writer)
{
writer.WriteTimestamp(nameof(LastUpdated), LastUpdated);
writer.WriteByteArray(nameof(Data), Data);
}

public void ReadBinary(IBinaryReader reader)
{
LastUpdated = reader.ReadTimestamp(nameof(LastUpdated)) ??
DateTime.UtcNow;
Data = reader.ReadByteArray(nameof(Data));
}
}

*c)*
// Crete an actual UserData cache by running a DDL query on entry point
cache.
var qry = @"
CREATE TABLE IF NOT EXISTS [name]
(
CacheKey VARCHAR,
AffinityKey LONG,

LastUpdated TIMESTAMP,
Data VARBINARY(MAX),

PRIMARY KEY (CacheKey, AffinityKey)
)
WITH ""BACKUPS=2, TEMPLATE=PARTITIONED,
WRITE_SYNCHRONIZATION_MODE=PRIMARY_SYNC, AFFINITYKEY=AffinityKey,
VALUE_TYPE=UserData""
";

var qryResults = m_odbcCache.Query(new SqlFieldsQuery(qry)).GetAll();




Thanks
Sam





--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/


rest api rmdbs integration

2018-07-27 Thread wt
i have integrated a database with ignite and the generated project created
classes for the tables. If i try run Sql scan query execute over the cache
like this example

http://host:port/ignite?cmd=qryscanexe=10=Person=org.apache.ignite.schema.Person

here is my query string

http://127.0.0.1:8080/ignite?cmd=qryscanexe=10=ComplianceSummaryCache=com.demo.mydbdemo.compliancesummary

i get 

{"successStatus":1,"error":"Failed to find target class:
com.demo.mydbdemo.compliancesummary","response":null,"sessionToken":null}

the project was generated by the web console and these classes are in there
so they should work but it can't find it so any ideas what is going on here?



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/


Re: Ignite Cluster with remote server + Cassandra Persistence

2018-07-27 Thread okiesong
Hi, I am basically starting Ignite node through my Java project. When I run
the above specified code, I first run the ignite.sh from my remote server as
well. 



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/


Re: Ignite backups on collocated data

2018-07-27 Thread Вячеслав Коптилин
Hello,

Yes, backup copies will also be collocated.

Thanks,
S.

пт, 27 июл. 2018 г. в 15:11, kotamrajuyashasvi :

> Hi
>
> Suppose I have two ignite caches and these two caches are collocated based
> on a field using AffinityKemapped. Now if I configure same number of
> backups
> for both the caches, do the backup copies also get collocated i.e backed up
> on same nodes ?
>
> For ex: one row of cache1 and one row from cache2 are collocated i.e will
> be
> in same node/partition. Now will the backup copies of these rows also
> guaranteed to be present on same nodes/partitions ? Or can be on different
> nodes/partitions.
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Ignite backups on collocated data

2018-07-27 Thread kotamrajuyashasvi
Hi

Suppose I have two ignite caches and these two caches are collocated based
on a field using AffinityKemapped. Now if I configure same number of backups
for both the caches, do the backup copies also get collocated i.e backed up
on same nodes ?

For ex: one row of cache1 and one row from cache2 are collocated i.e will be
in same node/partition. Now will the backup copies of these rows also
guaranteed to be present on same nodes/partitions ? Or can be on different
nodes/partitions.



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/


Re: IgniteMessaging, What am I doing wrong?

2018-07-27 Thread Dmitriy Govorukhin
No, a new client will not receive these messages because they were sent on
previous topology version. (topology version changing after join/left any
node)
The messages will be sent only to current client nodes.

On Fri, Jul 27, 2018 at 2:07 PM monstereo  wrote:

> thanks,
> When I want to send messages from server to client, it works
> probably, there were a problem as you stated.
>
> May I ask :
> Let's say server send a messages to client ("hello")
> When I create another client after  seconds, minutes vs.. , this new client
> will see this messages?
> Same question for events?
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: The problem after the ignite upgrade

2018-07-27 Thread hulitao198758
I opened the persistent storage cluster, version 2.3 as long as the boot
server and then activate the cluster when the client can be connected
directly, after upgrading to 2.6, after activation server cluster for the
first time the client connection complains, you then need to Deactive the
cluster with clients to connect again later, in an error once, then again to
reactivate can connect successful, why?



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/


Re: IgniteMessaging, What am I doing wrong?

2018-07-27 Thread monstereo
thanks,
When I want to send messages from server to client, it works
probably, there were a problem as you stated.

May I ask :
Let's say server send a messages to client ("hello")
When I create another client after  seconds, minutes vs.. , this new client
will see this messages?
Same question for events?



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/


Re: The problem after the ignite upgrade

2018-07-27 Thread aealexsandrov
Hi,

Could you please provide step by step instruction on how you upgrade the
cluster?

Please note that in case if you try to use the persistence then the
important feature that was added in 8.4 - baseline topology. A baseline
topology is a set of Ignite server nodes intended to store data. The nodes
from the baseline topology are not limited in terms of functionality and
behave as regular server nodes that act as a container for data and
computations in Ignite.

It changes the activation process. You can read about it here:

https://apacheignite.readme.io/docs/baseline-topology

BR,
Andrei



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/


Re: Delete/remove cache does not free the memory in PCF server

2018-07-27 Thread Dmitriy Govorukhin
Hi,
Do you use the in-memory region for these caches or region with persistence?
What is your ignite version?

On Fri, Jul 27, 2018 at 12:17 AM okiesong  wrote:

> Hi, this is basically the command that I am using to clear and destroy the
> cache from the server that is deployed on the PCF server.
>
> But memory does not free, even after I do this.
>
> private clearCacheByName(String item) {
> if (ignite.cacheNames().contains(item)) {
>  ignite.cache(item).clear();
>  ignite.cache(item).destroy();
>  ignite.destroyCache(item);
> }
> }
>
> When I call ignite.cacheNames(), that specified cache is gone, but memory
> is
> not freed from the PCF server that runs Ignite.
>
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: IgniteMessaging, What am I doing wrong?

2018-07-27 Thread Dmitriy Govorukhin
Hi,

Are you sure that server sends a message only after a client is joined to
topology?
Please, check that ClusterGroup clientNodes is not empty before sending a
message to the topic.

On Fri, Jul 27, 2018 at 8:27 AM monstereo  wrote:

> I want to send message to client nodes from server nodes, and client nodes
> will take this message and print it.
>
> Here is the server nodes
>
> public static void main {
>   Ignite server = //start ignite with default config path
> ClusterGroup clientNodes = server.cluster().forClients();
>  IgniteMessaging messaging = server.message(clientNodes);
> messaging.send("ServerTopic", "hello");
> }
>
> Here is the client node
> public static void main ...{
> Ignite client = //start ignite client with default config
> ClusterGroup clientNodes = client.cluster().forClients();
> IgniteMessaging serverTopic = client.message(clientNodes);
> consumerTopic.remoteListen("ServerTopic", (nodeId, message) ->{
> System.out.println("Severr with id:" + nodeId +"\nsend this
> message : " + message);
> return true;
> });
> }
>
> But I can not see the message on client nodes.
> (I run client first, then run the server node(s))
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Client Server peer class loading

2018-07-27 Thread Evgenii Zhuravlev
Here is the link to the documentation which contains parameter that you can
use:
https://apacheignite.readme.io/docs/yarn-deployment#section-configuration

2018-07-27 12:42 GMT+03:00 debashissinha :

> Hi ezhuravlev ,
>
> Can you also please tell me a way to package my configuration classes as a
> yarn jar
>
>
> Thanks & Regards
> Debashis Sinha
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Re: Client Server peer class loading

2018-07-27 Thread debashissinha
Hi ezhuravlev ,

Can you also please tell me a way to package my configuration classes as a
yarn jar 


Thanks & Regards
Debashis Sinha



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/


Re: Client Server peer class loading

2018-07-27 Thread debashissinha
Thanks a lot for your advice



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/


Re: Client Server peer class loading

2018-07-27 Thread Evgenii Zhuravlev
Hi,

PeerClassLoading is not working for classes which are part of a cache
configuration.
These classes (cache store implementations, eviction and expiry policies,
etc.) must be explicitly deployed on all server nodes.

Evgenii

2018-07-27 11:05 GMT+03:00 debashissinha :

> Hi ,
> I have a situation here . Whereby there is a cachestore adapter class for
> cache read through   in my code and I am starting the ignite cluster in
> client mode.
>
> I am connecting to ignite cache server on yarn . I have specified the
> server
> to load peerclassloading and the same is enabled in client application also
> .
>
> However when I call the getcache method on client node it gives a class not
> found error on server node.
>
> I was of the opinion that if peerclassloading is enabled in both client and
> server node then any class in client node will be loaded when server node
> is
> called ..
>
> Can you suggest where I am going wrong.
>
> Thanks in advance.
> Debashis Sinha
>
>
>
> --
> Sent from: http://apache-ignite-users.70518.x6.nabble.com/
>


Client Server peer class loading

2018-07-27 Thread debashissinha
Hi ,
I have a situation here . Whereby there is a cachestore adapter class for
cache read through   in my code and I am starting the ignite cluster in
client mode. 

I am connecting to ignite cache server on yarn . I have specified the server
to load peerclassloading and the same is enabled in client application also
. 

However when I call the getcache method on client node it gives a class not
found error on server node.

I was of the opinion that if peerclassloading is enabled in both client and
server node then any class in client node will be loaded when server node is
called ..

Can you suggest where I am going wrong.

Thanks in advance.
Debashis Sinha



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/


The problem after the ignite upgrade

2018-07-27 Thread hulitao198758
The problem with the Ignite version upgrading from 2.3 to 2.6 is that when
the Server side starts up, the client will report an error when connecting
to the Server side. The client must first stop activating the Server side,
then connect with the client once, and then reactivate the Server side
before the client can connect properly. Why? Is this a BUG



--
Sent from: http://apache-ignite-users.70518.x6.nabble.com/