tolbertam opened a new pull request, #3917:
URL: https://github.com/apache/cassandra/pull/3917

   Updates SystemKeyspace.writePreparedStatement to accept a timestamp 
associated with the Prepared creation time. Using this timestamp will ensure 
that an INSERT into system.prepared_statements will always precede the 
timestamp for the same Prepared in SystemKeyspace.removePreparedStatement.
   
   Additionally, any clusters currently experiencing a leaky 
system.prepared_statements table from this bug may struggle to bounce into a 
version with this fix as
   SystemKeyspace.loadPreparedPreparedStatements currently does not paginate 
the query to system.prepared_statements, causing heap OOMs.  To fix this this 
patch adds pagingation at 5000 rows, which should allow nodes to come up and 
delete older prepared statements that may no longer be used as
   the cache fills up (which should happen immediately).
   
   Adds #testAsyncPstmtInvalidation which almost always reproduces the issue 
without this fix.
   
   Adds #testPreloadPreparedStatements to verify pagination behavior.
   
   This patch does not address the issue of Caffeine immediately evicting a 
prepared statement, however it will prevent the
   system.prepared_statements table from growing unbounded.  For most users 
this should be adequate, as the cache should only be filled when there are 
erroneously many unique prepared statements. In such a case we can expect that 
clients will constantly prepare statements regardless of whether or not the 
cache is evicting statements.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to