3

问题:drop keyspace MyKeyspace;挂起。

环境: 这是一个 Ubuntu 12.04 64bit in virtualbox,运行单个 Cassandra 实例(在开发机器上)。

卡桑德拉是 1.1.6:

myuser@myhost:~$ /usr/bin/nodetool -h localhost version
ReleaseVersion: 1.1.6

大量可用磁盘空间:

myuser@myhost:~$ df
Filesystem                1K-blocks    Used Available Use% Mounted on
/dev/mapper/myhost-root   100232772 3100308  92112816   4% /
udev                        1016760       4   1016756   1% /dev
tmpfs                        410340     268    410072   1% /run
none                           5120       0      5120   0% /run/lock
none                        1025844       0   1025844   0% /run/shm
/dev/sda1                    233191   24999    195751  12% /boot

机器空闲:

myuser@myhost:~$ uptime
 21:24:50 up  3:46,  2 users,  load average: 0.06, 0.04, 0.05

我是如何到达那里的:

这台机器正在运行另一个数据库,很长一段时间都很好。现在我创建了一个新的键空间 MyKeyspace,并运行一个 Java 程序来导入数据(使用泰坦图,但这不重要)。在导入了几千条记录(仅几 MB)后,导入程序不再取得进展,并记录了 6 次:

418455 [RetryService : myhost(192.168.1.241):9160] INFO  com.netflix.astyanax.connectionpool.impl.CountingConnectionPoolMonitor  - Reactivating myhost

然后我的程序(实际上是泰坦图)放弃了:

com.thinkaurelius.titan.diskstorage.TemporaryStorageException: Temporary failure in storage backend

在这段时间里,我连接到/usr/bin/cassandra-cli并可以成功执行show keyspaces;.

然后我决定重新开始;删除键空间。这就是它现在挂起的地方,几个小时。它也不响应 ctrl-c 。同时我可以通过 ssh 登录,连接 cassandra-cli,然后运行show keyspaces;​​. 密钥空间仍然存在。此外,我的 Java 应用程序可以访问该数据存储,但它是只读的。读取成功,但写入失败。这只是我在编写时从泰坦图库中获得的超时:

com.thinkaurelius.titan.core.TitanException: ID renewal thread on partition [2] did not complete in time. [60007 ms]

我可以运行任何命令来查看发生了什么?我应该报告错误吗?

4

1 回答 1

12

如果您在 cassandra.yaml 中启用了 auto_snapshot(默认情况下已启用),则 Cassandra 将在删除键空间之前拍摄快照。如果您没有正确设置 JNA,这有时会导致问题,所以我会先检查一下。

于 2013-05-17T22:39:15.750 回答