It is cool!<br><br><div class="gmail_quote">2012/8/15 John Dickinson <span dir="ltr"><<a href="mailto:me@not.mn" target="_blank">me@not.mn</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Swift has many exciting features coming in the OpenStack Folsom<br>
Release this fall, but where do we go from here? What's next for Swift<br>
in grizzly?<br>
<br>
I've got some ideas. I'd like to mention them and see where you the<br>
community will take them. I've written up most of them into quick one-<br>
line blueprints in Launchpad. If you'd like to contribute, grab the<br>
blueprint and jump in.<br>
<br>
- Optimize the "many small writes" workload. Swift actually handles<br>
  many small concurrent writes very well. However, "many small writes"<br>
  generally also implies that the cardinality of a single container<br>
  gets very large. There are two ways this use case can be improved:<br>
<br>
    - Implement transparent container sharding<br>
      <a href="https://blueprints.launchpad.net/swift/+spec/container-sharding" target="_blank">https://blueprints.launchpad.net/swift/+spec/container-sharding</a><br>
<br>
    - Provide better listing traversal abstractions. Listing a few<br>
      billion objects ten thousand at a time is somewhat impractical.<br>
<br>
- Solve globally distributed clusters. How can I have servers in<br>
  London and servers in San Jose in the same logical swift cluster<br>
  with three replicas total, but guaranteed to have at least one<br>
  replica in each cluster?<br>
  <a href="https://blueprints.launchpad.net/swift/+spec/multi-region" target="_blank">https://blueprints.launchpad.net/swift/+spec/multi-region</a><br>
<br>
- Support a single logical swift cluster with tiers of storage (eg<br>
  cheap spinning disks and expensive high IOPS SSD arrays). Can, for<br>
  example, a user choose to have a container and its objects be served<br>
  from a particular tier of storage?<br>
  <a href="https://blueprints.launchpad.net/swift/+spec/storage-tiers" target="_blank">https://blueprints.launchpad.net/swift/+spec/storage-tiers</a><br>
<br>
- Some deployers have implemented metadata searching by intercepting<br>
  write requests and sending the metadata to another system. Can<br>
  metadata searching be implemented in swift itself? One possible<br>
  implementation would be to dynamically generate indexes on the<br>
  container DB.<br>
  <a href="https://blueprints.launchpad.net/swift/+spec/searchable-metadata" target="_blank">https://blueprints.launchpad.net/swift/+spec/searchable-metadata</a><br>
<br>
- Support PUTs with unlimited size. Implement server-side large object<br>
  splitting.<br>
  <a href="https://blueprints.launchpad.net/swift/+spec/large-single-uploads" target="_blank">https://blueprints.launchpad.net/swift/+spec/large-single-uploads</a><br>
<br>
- Support the full HTTP spec for range requests<br>
  <a href="https://blueprints.launchpad.net/swift/+spec/multi-range-support" target="_blank">https://blueprints.launchpad.net/swift/+spec/multi-range-support</a><br>
<br>
- There are a few things that could be done to simplify installation<br>
<br>
    - Create or refactor existing code into a single swift binary or<br>
      startup script. Would it be possible, for example, to install<br>
      swift and run one command with the data drives listed and swift<br>
      "just works"?<br>
<br>
    - Build a ring server that automatically discovers devices<br>
      <a href="https://blueprints.launchpad.net/swift/+spec/ring-builder-server" target="_blank">https://blueprints.launchpad.net/swift/+spec/ring-builder-server</a><br>
<br>
    - Provide a simple, intuitive way to test a deployment after install<br>
      <a href="https://blueprints.launchpad.net/swift/+spec/post-deploy-test" target="_blank">https://blueprints.launchpad.net/swift/+spec/post-deploy-test</a><br>
<br>
- Support concurrent reads to objects to support a read-heavy workload<br>
  <a href="https://blueprints.launchpad.net/swift/+spec/concurrent-reads" target="_blank">https://blueprints.launchpad.net/swift/+spec/concurrent-reads</a><br>
<br>
If you are in the San Francisco area, we will have a swift meetup on<br>
August 30 at Citizen Space SF at 6:30 pm.<br>
<a href="http://www.meetup.com/openstack/events/77706042/" target="_blank">http://www.meetup.com/openstack/events/77706042/</a><br>
<br>
We will have a swift team meeting on Monday October 1 in<br>
#openstack-meeting at 8pm UTC to discuss the plans for swift over the<br>
next six months and the sessions for the design summit. If you are<br>
interested in participating in swift development, please attend.<br>
<br>
If you are a new contributor to swift, please read<br>
<a href="http://wiki.openstack.org/HowToContribute" target="_blank">http://wiki.openstack.org/HowToContribute</a>.<br>
<span class="HOEnZb"><font color="#888888"><br>
--John<br>
<br>
</font></span><br>_______________________________________________<br>
Mailing list: <a href="https://launchpad.net/%7Eopenstack" target="_blank">https://launchpad.net/~openstack</a><br>
Post to     : <a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a><br>
Unsubscribe : <a href="https://launchpad.net/%7Eopenstack" target="_blank">https://launchpad.net/~openstack</a><br>
More help   : <a href="https://help.launchpad.net/ListHelp" target="_blank">https://help.launchpad.net/ListHelp</a><br>
<br></blockquote></div><br>