Dell DX6004S DX Object Storage Application Guide - Page 19

Multi-Threading, 8. Using Persistent Connections

Page 19 highlights

3.7. Multi-Threading DX Storage is a multi-threaded, multi-node cluster, which means that every node in a DX Storage cluster can establish and maintain connections with many different client applications at the same time. Normally, an application opens only one SCSP connection to the cluster and sends requests and receive responses in a sequential manner. However, a single client application might choose to open more than one connection to DX Storage to achieve better response times and read/write throughput for high volume applications. Because DX Storage automatically load balances requests by causing them to be redirected to a less busy node in the cluster that is capable of servicing the request, this multi-threaded client strategy can be very effective in improving overall performance when necessary, because each client thread (or process) can be connected to different nodes within the cluster. 3.8. Using Persistent Connections The DX Storage software implements HTTP/1.1 persistent connections. That means a client application need not close the socket/connection after each request. DX Storage will hold open connections and allow the client to continue sending requests and receiving responses until either the client closes the connection explicitly, or it stops sending requests for some period of time. However, the client must close its connection and reopen a new one whenever a DX Storage response includes the header Connection: close. This is typically done when there is an error that would cause confusion as to meaning of the remaining bytes sent over the connection. A client may choose to maintain only one open connection at a time, by closing the old connection before opening the new, redirected one. Or, it may choose to maintain a pool of connections to several of the nodes in a cluster. For smaller clusters, this last approach can considerably improve response times because the client eventually has open connections to all the nodes in the cluster. When connected to very large DX Storage clusters, the client application should take care not to exceed the operating system limits on number of simultaneously open connections. Copyright © 2010 Caringo, Inc. All rights reserved 14 Version 5.0 December 2010

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81

Copyright © 2010 Caringo, Inc.
All rights reserved
14
Version 5.0
December 2010
3.7. Multi-Threading
DX Storage is a multi-threaded, multi-node cluster, which means that every node in a DX Storage
cluster can establish and maintain connections with many different client applications at the same
time. Normally, an application opens only one SCSP connection to the cluster and sends requests
and receive responses in a sequential manner. However, a single client application might choose
to open more than one connection to DX Storage to achieve better response times and read/write
throughput for high volume applications. Because DX Storage automatically load balances requests
by causing them to be redirected to a less busy node in the cluster that is capable of servicing the
request, this multi-threaded client strategy can be very effective in improving overall performance
when necessary, because each client thread (or process) can be connected to different nodes within
the cluster.
3.8. Using Persistent Connections
The DX Storage software implements
HTTP/1.1 persistent connections
. That means a client
application need not close the socket/connection after each request. DX Storage will hold open
connections and allow the client to continue sending requests and receiving responses until either
the client closes the connection explicitly, or it stops sending requests for some period of time.
However, the client
must
close its connection and reopen a new one whenever a DX Storage
response includes the header Connection: close. This is typically done when there is an error that
would cause confusion as to meaning of the remaining bytes sent over the connection.
A client may choose to maintain only one open connection at a time, by closing the old connection
before opening the new, redirected one. Or, it may choose to maintain a pool of connections to
several of the nodes in a cluster. For smaller clusters, this last approach can considerably improve
response times because the client eventually has open connections to all the nodes in the cluster.
When connected to very large DX Storage clusters, the client application should take care not to
exceed the operating system limits on number of simultaneously open connections.