我正在使用来自 Cassandra 的 DataStax Nodejs 驱动程序,我想要做的是避免在我的应用程序中插入时会发生非常频繁的 I/O 操作。我将每秒执行大约 1000 次插入,并希望将所有内容组合在一起并执行 1 个 I/O,而不是运行会导致 1000 个 I/O 的单个查询。我遇到了像下面这样的批处理语句,
const query1 = 'UPDATE user_profiles SET email = ? WHERE key = ?';
const query2 = 'INSERT INTO user_track (key, text, date) VALUES (?, ?, ?)';
const queries = [
{ query: query1, params: [emailAddress, 'hendrix'] },
{ query: query2, params: ['hendrix', 'Changed email', new Date()] }
];
client.batch(queries, { prepare: true }, function (err) {
// All queries have been executed successfully
// Or none of the changes have been applied, check err
});
这里的问题是它们是原子的。我希望其他语句成功,即使其中一个失败。我可以做些什么来实现这一目标吗?