Java 拒绝HBase HTable实例中的缓冲PUT(同时将自动刷新设置为false)?

Java 拒绝HBase HTable实例中的缓冲PUT(同时将自动刷新设置为false)?,java,hbase,Java,Hbase,我正在编写一个Java应用程序,通过[Java HBase客户端(版本0.94.16)][1]与HBase通信。在HTable实例上,我已经将setAutoFlush设置为false,这样每次调用Put方法后,Put将被缓冲,而不是刷新。我使用这个Put缓冲区来收集相关数据,以便调用flushCommits方法将它们一次刷新到一起。但在我的应用程序中(在数据收集过程中)有一种情况,我发现这些相关数据无法完成,因此我想清除已填充的Puts缓冲区,而不是刷新不完整的数据集 因此,我的问题是:是否有任

我正在编写一个Java应用程序,通过[Java HBase客户端(版本0.94.16)][1]与HBase通信。在
HTable
实例上,我已经将
setAutoFlush
设置为false,这样每次调用
Put
方法后,
Put
将被缓冲,而不是刷新。我使用这个
Put
缓冲区来收集相关数据,以便调用
flushCommits
方法将它们一次刷新到一起。但在我的应用程序中(在数据收集过程中)有一种情况,我发现这些相关数据无法完成,因此我想清除已填充的
Put
s缓冲区,而不是刷新不完整的数据集

因此,我的问题是:是否有任何有效的方法(在Java HBase客户端中)来清除
HTable
实例的Puts缓冲区(丢弃其中的数据)(而不刷新)?我知道如何实现这一点,但我希望在JavaHBase客户机的范围内看到一些解决方案。谢谢你的建议。

似乎没有任何东西会在JVM或机器故障之外丢弃Put缓冲区

我想唯一的办法就是自己做一个

public class PutBuffer {
    public PutBuffer(ConnectionFactory connectionFactory) {…}
    public void setFlushTimeout(int millis) {…}
    public int getFlushTimeout() {…}
    public void addPut(TableName table, Put put) {…}
    public void discardBuffer(TableName table) {…}
    public void flush() {…}
}