openstack team mailing list archive
Mailing list archive
Several questions about HOW SWIFT WORKS
Hi everyone !
Since we are using swift for a time now, we would like to know a few
things in a deep way about how some things actually works in SWIFT.
Imagine the setup where im putting all the doubts is as follow :
+ 2 proxyNodes
+ 10 dataNodes ( 5 zones )
So, lets get down to business.
# 1 we have memcache service running on each proxy, so as far as we
know, memcache actually caches keystone tokens and object paths as the
request ( PUT , GET) enters the proxy, but for example, if we restart
one proxy server, so the memcached service is empty, is the restarted
proxy node going to the neighbor memcache on nex request, lookup for
what it needs, and cache the answer on itself so the next query is
solved locally ?
# 2 the documentation says regarding "For each request, it will look up
the location of the account, container, or object in the ring (see
below) and route the request accordingly" in what way the proxy actually
does the look-up regarding WHERE is an object / container in the cluster
? does it connect to any datanode asking for an object location ? does
the proxy have any locally sotarge data ??
# 3 Maybe it has to do with the previous question but, every dataNode
knows everything that is stored on the cluster (container service) or
only knows the object that has itself, and the replicas of its objects?
# 4 We are building a production cluster of 24 datanodes, having 6
drives each (144 immediate drives) we know, that a good default number
of partitions per drive is 100, so the math for creating the ring will
be (24 nodes * 6 drives * 100 partitions) but we know the at the end of
the year, the amount of datanodes (and drives also) could be 2x or 3x
more. So, for the initial setup, can we build the RING with our 144
drives and 100 partitions per drive so we can modify the ring /
partitions later and rebalance? or is safer to think about future
infrastructure increase, and build the ring with those numbers in mind ?
# 5 We put a new object into the cluster, the proxy decides where to
write the object (is it in a round-robin manner ?) is the proxy server
giving a "Created" response when the 1st replica is actually writen and
put into the account and container SQLite databases ? or there is and ok
just when the OBJECT service actually wrote the data on disc ?
Hope, we can shed some lights regarding this doubts.