Hi,

In current implementation write-behind store can lose writes even if only
one nodes fails. This can be improved by adding backup queues [1], but it's
not implemented yet.

Also, it's possible to get inconsistent state in this case. Only
synchronous write-through can guarantee that there are no data loss.

[1] https://issues.apache.org/jira/browse/IGNITE-1897

2017-05-22 12:34 GMT+03:00 rickynauvaldy <[email protected]>:

> Hello, I'm trying to create an environment of client server connection
> where
> I run 3 server nodes that load data from db (similar to this [1]) which
> will
> be use as a failover [2], and 3 client nodes which write data to cache
> using
> loops. It will then be written to the database using write-behind with the
> reason of performance [3]. In this test, while the clients are writing, I
> purposely stop the server node one-by-on to see the failover. In [2] it
> said
> that "/jobs are automatically transferred to other available nodes for
> re-execution/". It does, actually, but when I stopped the second server
> node, exception appeared:
>
> [15:57:23,218][SEVERE][tcp-client-disco-sock-writer-#2%
> null%][TcpDiscoverySpi]
> Failed to send message: TcpDiscoveryClientMetricsUpdateMessage
> [super=TcpDiscoveryAbstractMessage [sndNodeId=null,
> id=c11df5f2c51-30c473c1-464c-40fa-92f2-c8cbbeb34658, verifierNodeId=null,
> topVer=0, pendingIdx=0, failedNodes=null, isClient=true]]
> java.net.SocketException: Socket is closed
>         at java.net.Socket.getSendBufferSize(Unknown Source)
>         at
> org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.
> socketStream(TcpDiscoverySpi.java:1352)
>         at
> org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi.
> writeToSocket(TcpDiscoverySpi.java:1464)
>         at
> org.apache.ignite.spi.discovery.tcp.ClientImpl$
> SocketWriter.body(ClientImpl.java:1216)
>         at org.apache.ignite.spi.IgniteSpiThread.run(
> IgniteSpiThread.java:62)
>
> I thought this is expected, and the writing process continues. The problem
> is after it continues, the data written by client nodes are inconsistent.
> Is
> this normal?
>
> Thanks,
> Ricky
>
> [1]
> http://apache-ignite-users.70518.x6.nabble.com/How-to-do-
> write-behind-caching-td12138.html
> [2] https://apacheignite.readme.io/docs/fault-tolerance
> [3]
> http://apache-ignite-users.70518.x6.nabble.com/Database-
> transaction-updating-more-than-1-table-from-CacheStore-td4197.html
>
>
>
> -----
> -- Ricky
> --
> View this message in context: http://apache-ignite-users.
> 70518.x6.nabble.com/Client-Server-Persistent-Store-Fault-
> Tolerance-tp13054.html
> Sent from the Apache Ignite Users mailing list archive at Nabble.com.
>

Reply via email to