如果磁盘中没有空格,Cassandra会终止

时间:2013-01-15 07:29:17

标签: java cassandra

我在我的java应用程序中使用Cassandra DB。我使用Thrift客户端从我的Java应用程序连接Cassandra。如果Cassandra磁盘已满,则意味着它会自动终止。所以从我的java程序中我无法找到Cassandra失败的正确错误。

那么如何避免Cassandra的自动终止或者是否有任何方法来识别磁盘已满错误?

此外,我没有物理访问cassandra驱动器。它在其他远程机器上运行。

2 个答案:

答案 0 :(得分:3)

在任何应用程序中,通常通常处理磁盘错误和通用硬件/系统错误。数据库应该只在这种情况下提供尽可能多的持久性,这是正确的行为 - 尽可能少地关闭和中断。

至于您的应用程序 - 如果您无法连接到数据库,则导致错误的原因没有区别。你的应用程序无论如何都不会工作。

有一些特殊工具可以监控您的机器,即Nagios。如果您是该服务器的管理员,请使用此类应用程序。当磁盘被填满时,您将收到一封电子邮件或文本。使用这些工具,并通过实施数百行代码来处理随机和非常罕见的情况,从而打开门。

答案 1 :(得分:1)

设置对Casandra计算机的ssh访问,并使用某些ssh客户端(如JSch)从Java客户端运行df /casandra/drive(如果是Linux)或fsutil volume diskfree c:\casandra\drive(如果是Windows)。捕获简单的解析输出并解析以获取可用磁盘空间。这样,您的应用程序将监视正在发生的情况,并且可能应警告用户并在磁盘空间不受威胁时拒绝添加数据。

如果磁盘空间不足,您还可以使用标准监视工具或设置服务器端脚本来发送消息。但是,这不会阻止您的应用程序崩溃,您需要在看到磁盘空间不足后执行操作。