627d0ba52f8f04765e09c9fe0974a2308ee6def3
2650 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
Jenkins
|
a8af3835c0 | Merge "Account quotas" | ||
|
Christian Schwede
|
28c75db0e7 |
Account quotas
Add a new middleware implementing account quotas. This middleware blocks write requests (PUT, POST) if a given quota (in bytes) is exceeded while DELETE requests are still allowed. Quotas are stored in the x-account-meta-quota-bytes metadata entry. Write requests to this metadata setting are only allowed for resellers. Change-Id: I57fd7c6209f34cc79d4bab72d500d43ba2a62083 |
||
|
Samuel Merritt
|
d9fb84d209 |
Fix some unreadable code.
I thought it was readable back when I wrote it; turns out it's not. Oops. Change-Id: I1e1020935356522d6e07409aa867a5ffc8919787 Bonus: remove unused import. |
||
|
Jenkins
|
48380c501a | Merge "simplify the chexor function" | ||
|
Jenkins
|
09f1387af5 | Merge "Support tests for Apache" | ||
|
Michael Barton
|
0219b08b46 |
simplify the chexor function
Replace all that map(operator) nonsense. It changes the error raised on invalid hashes, but we don't handle that anywhere, and it shouldn't ever happen in real life. Change-Id: Ib8cb549fac05e0b2725b4ea295326ac0c5e1f035 |
||
|
David Hadas
|
40782ed20c |
Support tests for Apache
Add support for functional tests that work with Apache web front end Change-Id: I72358a12016eeccc842d834461dbebaa188aa117 Implements: blueprint wsgi-application-interface |
||
|
Sergey Lukjanov
|
7d5095c122 |
Support listing endpoints for an object.
Implements blueprint list-endpoints. DocImpact: new middleware list_endpoints. Change-Id: I0c4911ff726abd4cb8ce2b6245c99786ad46b410 |
||
|
Jenkins
|
34beb92edb | Merge "Spread handoffs out better around zones." | ||
|
Samuel Merritt
|
71a20d04cc |
Fix misspelled variable name
Change-Id: Ied6ed3cad16e9797df73a05f3df3ac9cc64299e0 |
||
|
Jenkins
|
28ac46ded3 | Merge "Added per disk PUT timing monitoring support." | ||
|
Samuel Merritt
|
27dcaf2636 |
Spread handoffs out better around zones.
Before, you'd get your 3* primary nodes in 3 different zones, and then get_more_nodes would give you everything it could from a non-primary zone, and then finish up with stuff from the primary zones. It would sort of look like this: P: device in a primary node's zone N: device not in a primary node's zone PPPNNNNNNNNNNNNNNNNNNN...NNNNNNNNNPPP...PPPPPP (The first three Ps are the primary nodes; they don't actually come out of get_more_nodes(), but they're included for clarity.) Now, the first few handoffs from get_more_nodes are in non-primary zones, but only one per zone, and then the rest of the handoffs ignore zones. It's still sampling the ring, so it's still taking weights into consideration, but the zone distribution is more even early in the handoff chain. It looks like this, assuming 10 zones: P: device in a primary node's zone N: device not in a primary node's zone D: zone doesn't matter PPPNNNNNNNDDDDDDDDDDD...DDD * or whatever your replica count is Change-Id: I31d2a2bc2cd6038386a2df85cd4fa37ccf2f650e |
||
|
tong li
|
7fd4323a69 |
David Hadas email address has been changed.
Change-Id: Ic3e9ad50f123eecb4abbe91340b0acff4a2d580c |
||
|
Jenkins
|
7117b744cc | Merge "Static Large Object Support" | ||
|
gholt
|
e064ba1915 |
Updated get_more_nodes algorithm
The handoff nodes will try to be in zones other than the primary zones, will take into account the device weights, and will usually keep the same sequences of handoffs even with ring changes. On a real ring test the old get_more_nodes placed data mostly evenly across zones, which is a problem for differently weighted zones. But the real problem was that the extra partitions given to each device was 0% to 0.77% with only 46.05% of the candidate devices getting anything. Some of the devices increased in effective weight over 50% in the test. The new get_more_nodes placed closer to what the zone weights were and the extra partitions given to each device was 0% to 0.24% with 90.58% of the candidate devices getting something. The worst off device only increased in effective weight by 10.71%. Change-Id: Iffb133a22db69074acaa2b90854cbfa92e4c2b9e |
||
|
Jenkins
|
457ff9672d | Merge "Make rings' replica counts adjustable." | ||
|
Jenkins
|
84bd434d8d | Merge "Remove reduant check of list." | ||
|
Jenkins
|
9808a8744b | Merge "TempURL filename options; bug fixes" | ||
|
David Goetz
|
5d73da158b |
Static Large Object Support
DocImpact Change-Id: I7edaa5e44208ab451f7f7566b64bb571b8eea1f9 |
||
|
Jenkins
|
cc63f8d791 | Merge "Fixed formpost QUERY_STRING bugs." | ||
|
gholt
|
c4c66d81bd |
TempURL filename options; bug fixes
- Prior to this commit, a Content-Disposition header was always set on responses to GET requests, with the filename based on the object name. Now, the header will only be set for 2xx responses and the filename can be overridden with a filename query parameter on the request. - Fixed a bug where all query parameters on the request were being passed down the WSGI pipeline. Now, just the query parameters useful in log-based debugging are included. This becomes important with things like the Bulk middleware that act upon query parameters. - Fixed bug where the Content-Disposition header wasn't following RFC spec. DocImpact Change-Id: I66ad809321dcdd03444324973c8b76869e3b0c8e |
||
|
ywang19
|
b715eb5d18 |
Remove reduant check of list.
Remove len() check and parenthesis. Fixes Bug #1136893 Change-Id: Ib47ec4890c2f6a50e316a7fef204ef818c6c4d6e |
||
|
Jenkins
|
9e006183f8 | Merge "make swift fsync" | ||
|
Jian Zhang
|
1d8a02f25c |
Added per disk PUT timing monitoring support.
Fixes bug 1104708 There could be severe performance drop for swift is one disk of one storage node is problematic due to the tragic state of async disk I/O. This patch provided PUT timing per kB transfered (ms/kB) monitoring support for each non-zero-byte request of each disk and report to statsD for alert. -adding "object-server.PUT.<device>.timing" metrics for object-server. DocImpact. Change-Id: Ie94bddad28e8be52e71683bf6c9db988664abe47 |
||
|
Jenkins
|
b6b5d6670d | Merge "Allow acl with a valid token." | ||
|
Jenkins
|
61f4d077ae | Merge "Add tests on keystone for invalid path requests." | ||
|
Michael Barton
|
8bc065ec78 |
make swift fsync
Swift never fsyncs, it only fdatasyncs. That is dumb, we have important metadata we need to save. Also, the code was weird and had no tests. Change-Id: I6ec875c14560820b686266a28043a2b7631781e9 |
||
|
Jenkins
|
569bd1e4f6 | Merge "Force log entries to be one line" | ||
|
Chuck Thier
|
5d2b70b624 |
Updating classifiers status to stable and clean up
Change-Id: I72943a9575b873cef1bf193f197b390b544ed6bf |
||
|
David Goetz
|
7e3adf5688 |
Adding a quick note to helper functions so its clear what they do and
they don't get misused. Change-Id: Ie0292df9d9e565ccd608b6b61ead57dfff1d3797 |
||
|
Jenkins
|
2a119b650e | Merge "Move the swift.1 manpage to python-swiftclient" | ||
|
Jenkins
|
a06c71c624 | Merge "Add cache=swift.cache for authtoken example." | ||
|
gholt
|
86220ba028 |
Force log entries to be one line
Different versions of syslog-ng and probably other syslog services handle multi line log messages differently and sometimes quite poorly. This patch collapses multi line log messages into single lines before sending them on to syslog. It's just a copy of what was already in Python's logging.Formatter but altered to replace the newlines with #012. I used #012 since that's a convention we've already used elsewhere in Swift. Change-Id: I8d0509b7cf48e45c2cf6480b51c67eec5bc94fe2 |
||
|
Jenkins
|
d3232d4fc5 | Merge "Add debug level logs for TempAuth.authorize." | ||
|
Jenkins
|
1dc38b4672 | Merge "timing-based affinity sorting for primary replicas" | ||
|
Jenkins
|
b63620c442 | Merge "Correct docstring for swift.common.ring.utils.build_tier_tree and add unit test for it." | ||
|
Jenkins
|
ca7468fd1b | Merge "Improve bin/swift-account-audit" | ||
|
Jenkins
|
ac4dd5608e | Merge "Account Server: Refactor HEAD request handler" | ||
|
Jenkins
|
5e1139b33c | Merge "Account and container info fixes and improvement." | ||
|
Dae S. Kim
|
89ab090434 |
Account Server: Refactor HEAD request handler
Deleted unused container checks. As method swift::common::db::AccountBroker::get_container_timestamp becomes unused, it is deleted too, along with the corresponding tests. Change-Id: I61de4549b0abd7103226d6a13f1d9844abaa92d3 |
||
|
Pete Zaitcev
|
9a3e0f41bd |
Move the swift.1 manpage to python-swiftclient
When someone split away python-swiftclient, he left behind the client manpage. Apparently all we need now is to delete it from swift and add it to python-swiftclient. Except that of course the releases have to be synchronized somehow or else files conflict. Change-Id: I8b5f7b5557c28818048d8941df36473dacfb1d57 |
||
|
Kun Huang
|
c52a992793 |
Add debug level logs for TempAuth.authorize.
The function authorize in tempauth.py and keysthoneauth.py is very important and frequently called in swift. But authorize in tempauth seems hard to debug with nearly no logs here. Change-Id: I3300a5a8d02743ff76e2ff86c51338ca24ddddcb Fixes: bug #1129769 |
||
|
Jenkins
|
249a65461e | Merge "Adding speed limit options for DB auditor" | ||
|
Samuel Merritt
|
a4a047c4ec |
Fix descriptions in sample configs.
Change-Id: I7aca3c6cafd9391031f7a10cc233f99e81ee0393 |
||
|
Kun Huang
|
d9130d79e5 |
Correct docstring for swift.common.ring.utils.build_tier_tree and add
unit test for it. Some mistakes is in original docstring of that method. There's no unit test for two methods in swift.common.ring.utils. Fixes: bug #1070621 Change-Id: I6f4f211ea67d7fb8ccfe659f30bb0f5d394aca6b |
||
|
Kun Huang
|
13eabdc744 |
Improve bin/swift-account-audit
1.Correct the usage of initializing a Ring object. 2.Fix typo. 3.Align lines of print_status part. (keep origin author mind) note: Adam Kijak has commited it at early time, but didn't put it in Gerrit. I import his commit and send it in right Workflow. Fixes: bug #1131901 Change-Id: If56316cc424045f7df662d60088382f7fd40e8b1 |
||
|
Jenkins
|
d1381ba86b | Merge "Adds first-byte latency timings for GET requests." | ||
|
Samuel Merritt
|
7548cb9c47 |
Make rings' replica counts adjustable.
Example: $ swift-ring-builder account.builder set_replicas 4 $ swift-ring-builder rebalance This is a prerequisite for supporting globally-distributed clusters, as operators of such clusters will probably want at least as many replicas as they have regions. Therefore, adding a region requires adding a replica. Similarly, removing a region lets an operator remove a replica and save some money on disks. In order to not hose clusters with lots of data, swift-ring-builder now allows for setting of fractional replicas. Thus, one can gradually increase the replica count at a rate that does not adversely affect cluster performance. Example: $ swift-ring-builder object.builder set_replicas 3.01 $ swift-ring-builder object.builder rebalance <distribute rings and wait> $ swift-ring-builder object.builder set_replicas 3.02 $ swift-ring-builder object.builder rebalance <distribute rings and wait>... Obviously, fractional replicas are nonsensical for a single partition. A fractional replica count is for the whole ring, not for any individual partition, and indicates the average number of replicas of each partition. For example, a replica count of 3.2 means that 20% of partitions have 4 replicas and 80% have 3 replicas. Changes do not take effect until after the ring is rebalanced. Thus, if you mean to go from 3 replicas to 3.01 but you accidentally type 2.01, no data is lost. Additionally, 'swift-ring-builder X.builder create' can now take a decimal argument for the number of replicas. DocImpact Change-Id: I12b34dacf60350a297a46be493d5d171580243ff |
||
|
Chmouel Boudjnah
|
e69f3bef8f |
Add cache=swift.cache for authtoken example.
- Things swill go badly with swift if we leave the default to authtoken to use its own memcache cache connection based python-memcache c based binding. Change-Id: I293b875acdcb06e5a7a0cfa9a9bb5d7678675da0 |
||
|
Chmouel Boudjnah
|
a7e31eb5dd |
Add tests on keystone for invalid path requests.
- Add missing tests to make it coverage to 100%. Change-Id: Ic182ad379e2c48cc4151b2532c509bd62d44bd00 |