Struct ruarango::coll::input::ConfigBuilder
source · pub struct ConfigBuilder { /* private fields */ }
Expand description
Builder for Config
.
Implementations§
source§impl ConfigBuilder
impl ConfigBuilder
sourcepub fn journal_size(&mut self, value: usize) -> &mut Self
pub fn journal_size(&mut self, value: usize) -> &mut Self
The maximal size of a journal or datafile in bytes. The value must be at least 1048576 (1 MiB). (The default is a configuration parameter) This option is meaningful for the MMFiles storage engine only.
sourcepub fn replication_factor<VALUE: Into<String>>(
&mut self,
value: VALUE
) -> &mut Self
pub fn replication_factor<VALUE: Into<String>>(
&mut self,
value: VALUE
) -> &mut Self
(The default is 1): in a cluster, this attribute determines how many copies of each shard are kept on different DB-Servers. The value 1 means that only one copy (no synchronous replication) is kept. A value of k means that k-1 replicas are kept. It can also be the string “satellite” for a SatelliteCollection, where the replication factor is matched to the number of DB-Servers (Enterprise Edition only). Any two copies reside on different DB-Servers. Replication between them is synchronous, that is, every write operation to the “leader” copy will be replicated to all “follower” replicas, before the write operation is reported successful. If a server fails, this is detected automatically and one of the servers holding copies take over, usually without an error being reported.
sourcepub fn key_options(&mut self, value: KeyOptions) -> &mut Self
pub fn key_options(&mut self, value: KeyOptions) -> &mut Self
Key Options
sourcepub fn wait_for_sync(&mut self, value: bool) -> &mut Self
pub fn wait_for_sync(&mut self, value: bool) -> &mut Self
If true then the data is synchronized to disk before returning from a document create, update, replace or removal operation. (default: false)
sourcepub fn do_compact(&mut self, value: bool) -> &mut Self
pub fn do_compact(&mut self, value: bool) -> &mut Self
Whether or not the collection will be compacted (default is true) This option is meaningful for the MMFiles storage engine only.
sourcepub fn sharding_strategy<VALUE: Into<String>>(
&mut self,
value: VALUE
) -> &mut Self
pub fn sharding_strategy<VALUE: Into<String>>(
&mut self,
value: VALUE
) -> &mut Self
This attribute specifies the name of the sharding strategy to use for the collection. Since ArangoDB 3.4 there are different sharding strategies to select from when creating a new collection. The selected shardingStrategy value will remain fixed for the collection and cannot be changed afterwards. This is important to make the collection keep its sharding settings and always find documents already distributed to shards using the same initial sharding algorithm. The available sharding strategies are: community-compat: default sharding used by ArangoDB Community Edition before version 3.4 enterprise-compat: default sharding used by ArangoDB Enterprise Edition before version 3.4 enterprise-smart-edge-compat: default sharding used by smart edge collections in ArangoDB Enterprise Edition before version 3.4 hash: default sharding used for new collections starting from version 3.4 (excluding smart edge collections) enterprise-hash-smart-edge: default sharding used for new smart edge collections starting from version 3.4 If no sharding strategy is specified, the default will be hash for all collections, and enterprise-hash-smart-edge for all smart edge collections (requires the Enterprise Edition of ArangoDB). Manually overriding the sharding strategy does not yet provide a benefit, but it may later in case other sharding strategies are added.
sourcepub fn is_volatile(&mut self, value: bool) -> &mut Self
pub fn is_volatile(&mut self, value: bool) -> &mut Self
If true then the collection data is kept in-memory only and not made persistent. Unloading the collection will cause the collection data to be discarded. Stopping or re-starting the server will also cause full loss of data in the collection. Setting this option will make the resulting collection be slightly faster than regular collections because ArangoDB does not enforce any synchronization to disk and does not calculate any CRC checksums for datafiles (as there are no datafiles). This option should therefore be used for cache-type collections only, and not for data that cannot be re-created otherwise. (The default is false) This option is meaningful for the MMFiles storage engine only.
sourcepub fn write_concern(&mut self, value: usize) -> &mut Self
pub fn write_concern(&mut self, value: usize) -> &mut Self
Write concern for this collection (default: 1). It determines how many copies of each shard are required to be in sync on the different DB-Servers. If there are less then these many copies in the cluster a shard will refuse to write. Writes to shards with enough up-to-date copies will succeed at the same time however. The value of writeConcern can not be larger than replicationFactor. (cluster only)
sourcepub fn smart_join_attribute<VALUE: Into<String>>(
&mut self,
value: VALUE
) -> &mut Self
pub fn smart_join_attribute<VALUE: Into<String>>(
&mut self,
value: VALUE
) -> &mut Self
In an Enterprise Edition cluster, this attribute determines an attribute of the collection that must contain the shard key value of the referred-to SmartJoin collection. Additionally, the shard key for a document in this collection must contain the value of this attribute, followed by a colon, followed by the actual primary key of the document. This feature can only be used in the Enterprise Edition and requires the distributeShardsLike attribute of the collection to be set to the name of another collection. It also requires the shardKeys attribute of the collection to be set to a single shard key attribute, with an additional ‘:’ at the end. A further restriction is that whenever documents are stored or updated in the collection, the value stored in the smartJoinAttribute must be a string.
sourcepub fn number_of_shards(&mut self, value: usize) -> &mut Self
pub fn number_of_shards(&mut self, value: usize) -> &mut Self
(The default is 1): in a cluster, this value determines the number of shards to create for the collection. In a single server setup, this option is meaningless.
sourcepub fn distribute_shards_like<VALUE: Into<String>>(
&mut self,
value: VALUE
) -> &mut Self
pub fn distribute_shards_like<VALUE: Into<String>>(
&mut self,
value: VALUE
) -> &mut Self
(The default is “”): in an Enterprise Edition cluster, this attribute binds the specifics of sharding for the newly created collection to follow that of a specified existing collection. Note: Using this parameter has consequences for the prototype collection. It can no longer be dropped, before the sharding-imitating collections are dropped. Equally, backups and restores of imitating collections alone will generate warnings (which can be overridden) about missing sharding prototype.
sourcepub fn is_system(&mut self, value: bool) -> &mut Self
pub fn is_system(&mut self, value: bool) -> &mut Self
If true, create a system collection. In this case collection-name should start with an underscore. End users should normally create non-system collections only. API implementors may be required to create system collections in very special occasions, but normally a regular collection will do. (The default is false)
sourcepub fn kind(&mut self, value: usize) -> &mut Self
pub fn kind(&mut self, value: usize) -> &mut Self
(The default is 2): the type of the collection to create. The following values for type are valid: 2: document collection 3: edge collection
sourcepub fn shard_keys(&mut self, value: Vec<String>) -> &mut Self
pub fn shard_keys(&mut self, value: Vec<String>) -> &mut Self
(The default is [ “_key” ]): in a cluster, this attribute determines which document attributes are used to determine the target shard for documents. Documents are sent to shards based on the values of their shard key attributes. The values of all shard key attributes in a document are hashed, and the hash value is used to determine the target shard. Note: Values of shard key attributes cannot be changed once set. This option is meaningless in a single server setup.
Trait Implementations§
source§impl Clone for ConfigBuilder
impl Clone for ConfigBuilder
source§fn clone(&self) -> ConfigBuilder
fn clone(&self) -> ConfigBuilder
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more