Cassandra 在数据库中写入数据时从哪里花费 WRITETIME 时间?
From where Cassandra takes time for WRITETIME when it is writing data in the database?
当 Cassandra 将数据写入数据库时,它会使用 WRITETIME 写入数据。我的问题是,时间是来自 Cassandra 运行 所在的服务器,还是来自向 Cassandra 写入数据的应用程序 运行 所在的服务器?
背景是我们的写入时间有问题一些数据是在未来(07-02-2036)用WRITETIME写入的,这意味着NTP可能有问题,但不清楚是哪台机器导致的Cassandra 服务器或应用程序服务器的问题。
这取决于您的应用程序中使用的驱动程序版本。很长一段时间,writetime 是服务器时间,但在某个时刻发生了切换,写入时间开始由驱动程序发送(它在 Cassandra 原生协议版本 3 中引入)。因此,您需要在 Cassandra 和应用程序节点上安装 NTP 运行。
对于 Java 驱动程序,它默认以 version 3.0 开头,对于其他驱动程序,它应该是相似的,大约在同一时间(~2016 年)。来自 java 驱动程序文档:
Client-side generation: This is enabled by default if you’re using the driver 3.0+ and a version of Cassandra that supports native protocol v3 or above.
但是写入时间也可以明确设置,因此您也可以检查您的应用程序是否正在这样做。
当 Cassandra 将数据写入数据库时,它会使用 WRITETIME 写入数据。我的问题是,时间是来自 Cassandra 运行 所在的服务器,还是来自向 Cassandra 写入数据的应用程序 运行 所在的服务器?
背景是我们的写入时间有问题一些数据是在未来(07-02-2036)用WRITETIME写入的,这意味着NTP可能有问题,但不清楚是哪台机器导致的Cassandra 服务器或应用程序服务器的问题。
这取决于您的应用程序中使用的驱动程序版本。很长一段时间,writetime 是服务器时间,但在某个时刻发生了切换,写入时间开始由驱动程序发送(它在 Cassandra 原生协议版本 3 中引入)。因此,您需要在 Cassandra 和应用程序节点上安装 NTP 运行。
对于 Java 驱动程序,它默认以 version 3.0 开头,对于其他驱动程序,它应该是相似的,大约在同一时间(~2016 年)。来自 java 驱动程序文档:
Client-side generation: This is enabled by default if you’re using the driver 3.0+ and a version of Cassandra that supports native protocol v3 or above.
但是写入时间也可以明确设置,因此您也可以检查您的应用程序是否正在这样做。