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

   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.
   
   This is needed because Caffeine 2.9.2 may evict an entry as soon as it is 
inserted if the maximum weight of the cache is exceeded causing the DELETE to 
be executed before the INSERT.
   
   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 pagination at 5000 rows and aborts loading once the cache size is 
loaded. This 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).
   
   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.
   
   patch by Andy Tolbert; reviewed by Berenguer Blasi and Caleb Rackliffe for 
CASSANDRA-19703
   


-- 
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: pr-unsubscr...@cassandra.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: pr-unsubscr...@cassandra.apache.org
For additional commands, e-mail: pr-h...@cassandra.apache.org

Reply via email to