我们有一个要求,我们希望我们的应用程序(可能部署在多个主机上)在Cassandra中创建一行。唯一成功创建行的主机执行工作。编写如下所示的insert语句是否足够,如果两台服务器尝试插入该行,则只有一个成功,而另一个则获得异常/不成功?
name: myappname description: A new Flutter project.
# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# Read more about versioning at semver.org. version: 1.0.0+1
environment: sdk: ">=2.0.0-dev.68.0 <3.0.0"
dependencies: flutter:
sdk: flutter
banner: ^0.1.3 cloud_firestore: ^0.8.2 http: ^0.12.0 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^0.1.2 sqflite: any firebase_auth: ^0.6.6 firebase_core: ^0.2.5+1 # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons.
dev_dependencies:
google_sign_in: ^3.0.4
flutter_test:
sdk: flutter
# For information on the generic Dart part of this file, see the
# following page: https://www.dartlang.org/tools/pub/pubspec
# The following section is specific to Flutter. flutter:
# The following line ensures that the Material Icons font is # included with your application, so that you can use the icons in # the material Icons class. uses-material-design: true
# To add assets to your application, add an assets section, like this: # assets: # - images/a_dot_burr.jpeg # - images/a_dot_ham.jpeg
# An image asset can refer to one or more resolution-specific "variants", see # https://flutter.io/assets-and-images/#resolution-aware.
# For details regarding adding assets from package dependencies, see
# https://flutter.io/assets-and-images/#from-packages
# To add custom fonts to your application, add a fonts section here,
# in this "flutter" section. Each entry in this list should have a # "family" key with the font family name, and a "fonts" key with a # list giving the asset and other descriptors for the font. For # example: # fonts: # - family: Schyler # fonts: # - asset: fonts/Schyler-Regular.ttf # - asset: fonts/Schyler-Italic.ttf # style: italic # - family: Trajan Pro # fonts: # - asset: fonts/TrajanPro.ttf #
- asset: fonts/TrajanPro_Bold.ttf # weight: 700 # # For details regarding fonts from package dependencies, # see https://flutter.io/custom-fonts/#from-packages
> Blockquote
想了解使用INSERT INTO keyspace1.claim (claim_id, status) VALUES (1, false) IF NOT EXIST
会避免出现问题。
谢谢, 希尔帕
答案 0 :(得分:3)
是的,IF NOT EXISTS
将包含一个paxos回合和写前读取,尽管速度要慢得多。使用wasApplied()
检查插入的结果集,以了解是否使用了该结果集。