public static void Main() { var atomicCfg = new AtomicConfiguration { // Each node reserves 10 numbers to itself, so that 10 increments can be done locally, // without communicating to other nodes. After that, another 10 elements are reserved. AtomicSequenceReserveSize = 10 }; var cfg = new IgniteConfiguration { DiscoverySpi = new TcpDiscoverySpi { IpFinder = new TcpDiscoveryMulticastIpFinder { Endpoints = new[] { "127.0.0.1:47500" } } }, AtomicConfiguration = atomicCfg }; using (var ignite = Ignition.Start(cfg)) { Console.WriteLine(); Console.WriteLine(">>> Atomic sequence example started."); IAtomicSequence atomicSequence = ignite.GetAtomicSequence(AtomicSequenceIncrementAction.AtomicSequenceName, 0, true); Console.WriteLine(">>> Atomic sequence initial value: " + atomicSequence.Read()); // Broadcast an action that increments AtomicSequence a number of times. ignite.GetCompute().Broadcast(new AtomicSequenceIncrementAction()); // Actual value will depend on number of participating nodes. Console.WriteLine("\n>>> Atomic sequence current value: " + atomicSequence.Read()); } Console.WriteLine("\n>>> Check output on all nodes."); Console.WriteLine("\n>>> Example finished, press any key to exit ..."); Console.ReadKey(); }
/// <summary> /// Reads data from specified reader into current instance. /// </summary> /// <param name="r">The binary reader.</param> private void ReadCore(BinaryReader r) { // Simple properties _clientMode = r.ReadBooleanNullable(); IncludedEventTypes = r.ReadIntArray(); _metricsExpireTime = r.ReadTimeSpanNullable(); _metricsHistorySize = r.ReadIntNullable(); _metricsLogFrequency = r.ReadTimeSpanNullable(); _metricsUpdateFrequency = r.ReadTimeSpanNullable(); _networkSendRetryCount = r.ReadIntNullable(); _networkSendRetryDelay = r.ReadTimeSpanNullable(); _networkTimeout = r.ReadTimeSpanNullable(); WorkDirectory = r.ReadString(); Localhost = r.ReadString(); _isDaemon = r.ReadBooleanNullable(); _isLateAffinityAssignment = r.ReadBooleanNullable(); _failureDetectionTimeout = r.ReadTimeSpanNullable(); // Cache config var cacheCfgCount = r.ReadInt(); CacheConfiguration = new List<CacheConfiguration>(cacheCfgCount); for (int i = 0; i < cacheCfgCount; i++) CacheConfiguration.Add(new CacheConfiguration(r)); // Discovery config DiscoverySpi = r.ReadBoolean() ? new TcpDiscoverySpi(r) : null; // Communication config CommunicationSpi = r.ReadBoolean() ? new TcpCommunicationSpi(r) : null; // Binary config if (r.ReadBoolean()) { BinaryConfiguration = BinaryConfiguration ?? new BinaryConfiguration(); BinaryConfiguration.CompactFooter = r.ReadBoolean(); } // User attributes UserAttributes = Enumerable.Range(0, r.ReadInt()) .ToDictionary(x => r.ReadString(), x => r.ReadObject<object>()); // Atomic if (r.ReadBoolean()) { AtomicConfiguration = new AtomicConfiguration { AtomicSequenceReserveSize = r.ReadInt(), Backups = r.ReadInt(), CacheMode = (CacheMode) r.ReadInt() }; } // Tx if (r.ReadBoolean()) { TransactionConfiguration = new TransactionConfiguration { PessimisticTransactionLogSize = r.ReadInt(), DefaultTransactionConcurrency = (TransactionConcurrency) r.ReadInt(), DefaultTransactionIsolation = (TransactionIsolation) r.ReadInt(), DefaultTimeout = TimeSpan.FromMilliseconds(r.ReadLong()), PessimisticTransactionLogLinger = TimeSpan.FromMilliseconds(r.ReadInt()) }; } // Swap SwapSpaceSpi = SwapSpaceSerializer.Read(r); }