[jira] [Created] (GEODE-3709) Geode Version: 1.1.1 In one of the project we a...

2017-09-27 Thread Gregory Chase (JIRA)
Gregory Chase created GEODE-3709:


 Summary: Geode Version: 1.1.1In one of the project we a...
 Key: GEODE-3709
 URL: https://issues.apache.org/jira/browse/GEODE-3709
 Project: Geode
  Issue Type: Improvement
Reporter: Gregory Chase


Geode Version: 1.1.1

In one of the project we are using Geode. Here is a summary of how we use it.
- Geode servers have multiple regions. 
- Clients subscribe to the data from these regions.
- Clients subscribe interest in all the entries, therefore they get updates 
about all the entries from creation to modification to deletion.
- One of the regions usually has 5-10 million entries with a TTL of 24 hours. 
Most entries are added in an hour's span one after other. So when TTL kicks in, 
they are often destroyed in an hour.

Problem:
Every now and then we observe following message: 
Client queue for 
_gfe_non_durable_client_with_id_x.x.x.x(14229:loner):42754:e4266fc4_2_queue 
client is full.
This seems to happen when the TTL kicks in on the region with 5-10 million 
entries. Entries start getting evicted (deleted); the updates (destroys) now 
must be sent to clients. We see that the updates do happen for a while but 
suddenly the updates stop and the queue size starts growing. This is becoming a 
major issue for smooth functioning of our production setup. Any help will be 
much appreciated. 

I did some ground work by downloading and looking at the code. I see reference 
to 2 issues #37581, #51400. But I am unable to view actual JIRA tickets (needs 
login credentials) Hopefully, it helps someone looking at the issue.
Here is the pertinent code:

   @Override
@edu.umd.cs.findbugs.annotations.SuppressWarnings("TLW_TWO_LOCK_WAIT")
void checkQueueSizeConstraint() throws InterruptedException {
  if (this.haContainer instanceof HAContainerMap && isPrimary()) { // Fix 
for bug 39413
if (Thread.interrupted())
  throw new InterruptedException();
synchronized (this.putGuard) {
  if (putPermits <= 0) {
synchronized (this.permitMon) {
  if (reconcilePutPermits() <= 0) {
if 
(region.getSystem().getConfig().getRemoveUnresponsiveClient()) {
  isClientSlowReciever = true;
} else {
  try {
long logFrequency = 
CacheClientNotifier.DEFAULT_LOG_FREQUENCY;
CacheClientNotifier ccn = CacheClientNotifier.getInstance();
if (ccn != null) { // check needed for junit tests
  logFrequency = ccn.getLogFrequency();
}
if ((this.maxQueueSizeHitCount % logFrequency) == 0) {
  logger.warn(LocalizedMessage.create(
  
LocalizedStrings.HARegionQueue_CLIENT_QUEUE_FOR_0_IS_FULL,
  new Object[] {region.getName()}));
  this.maxQueueSizeHitCount = 0;
}
++this.maxQueueSizeHitCount;
this.region.checkReadiness(); // fix for bug 37581
// TODO: wait called while holding two locks

this.permitMon.wait(CacheClientNotifier.eventEnqueueWaitTime);
this.region.checkReadiness(); // fix for bug 37581
// Fix for #51400. Allow the queue to grow beyond its
// capacity/maxQueueSize, if it is taking a long time to
// drain the queue, either due to a slower client or the
// deadlock scenario mentioned in the ticket.
reconcilePutPermits();
if ((this.maxQueueSizeHitCount % logFrequency) == 1) {
  logger.info(LocalizedMessage
  
.create(LocalizedStrings.HARegionQueue_RESUMING_WITH_PROCESSING_PUTS));
}
  } catch (InterruptedException ex) {
// TODO: The line below is meaningless. Comment it out later
this.permitMon.notifyAll();
throw ex;
  }
}
  }
} // synchronized (this.permitMon)
  } // if (putPermits <= 0)
  --putPermits;
} // synchronized (this.putGuard)
  }
}


*Reporter*: Mangesh Deshmukh
*E-mail*: [mailto:mdeshm...@quotient.com]



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (GEODE-3280) Hello

2017-07-21 Thread Gregory Chase (JIRA)
Gregory Chase created GEODE-3280:


 Summary: Hello 
 Key: GEODE-3280
 URL: https://issues.apache.org/jira/browse/GEODE-3280
 Project: Geode
  Issue Type: Improvement
Reporter: Gregory Chase


Hello 

*Reporter*: Makara Soeng
*E-mail*: [mailto:makaraso...@gmail.com]



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)


[jira] [Created] (GEODE-2181) I'm evaluating geode for our product. I started wi...

2016-12-05 Thread Gregory Chase (JIRA)
Gregory Chase created GEODE-2181:


 Summary: I'm evaluating geode for our product. I started wi...
 Key: GEODE-2181
 URL: https://issues.apache.org/jira/browse/GEODE-2181
 Project: Geode
  Issue Type: Improvement
Reporter: Gregory Chase


I'm evaluating geode for our product. I started with a simple test to check the 
behavior of geode on low-mem:
- launch a locator and a single server with initial-heap==max-heap==4GB, 
critical-heap-percentage=90%, eviction-heap-percentage=80%
- I see that gfsh passes in addition the following jvm params to server: 
-Xms4000m -Xmx4000m -XX:+UseConcMarkSweepGC 
-XX:CMSInitiatingOccupancyFraction=60 
- create a partitioned region - run client which connects to locator and get 
the region as PROXY (i.e. no local cache) 
- the client fills the server with elements until it gets 
ServerOperationException due to low memory (as expected) 
- now, I remove all elements from the region and try run the client again - the 
client fails on the first put operation (although server is empty!)

My question is: why doesn't the GC collect removed items (I see on server 
status that currentHeapSize=3151MB, maximumHeapSize=3866)?. I'm expecting to be 
able to put data in the server if its empty...

Thanks.

*Reporter*: Assaf
*E-mail*: [mailto:assaf_waiz...@amat.com]



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)