Patent ID: 9736243
Date: 2017-08-15
CPC Classifications: G06F,H04L

Claim:
1. A system for implementing multiple log streams in distributed storage systems, the system comprising: one or more hardware processors and memory storing computer-executable instructions and components embodied thereon that, when executed, by the one or more hardware processors, causes the hardware processors to execute: a stream component configured for: detecting performance metrics of a plurality of log streams, wherein the performance metrics are based on processing requests from a partition layer that supports partitions and corresponding partition servers in a distributed storage system, wherein a partition map stores a mapping between partitions and corresponding partition servers; and communicating performance metrics of the plurality of log streams; a transaction component configured for: receiving a request to perform a transaction using a selected log stream of the distributed storage system, wherein the request is received from a partition of the distributed storage system, wherein the partition layer operates with a stream layer comprising the plurality of log streams, wherein the partition layer supports persisting transactions in the plurality of log streams, in association with a corresponding partition, prior to commitment of the transactions, and wherein the stream layer provides a file system namespace for processing requests; determining, based on the request, whether to identify a log stream from the plurality of log streams, for executing the request, using one or more of: a performance capacity scheme associated with performance metrics and a request attribute scheme associated with performance isolation traits; identifying the log stream using the performance capacity scheme, wherein identifying the log stream using the performance capacity scheme comprises: accessing the performance metrics of the plurality of log streams, wherein the performance metrics indicate a performance capacity, of each log stream of the plurality of log streams, to process the request; and selecting the log stream based on the performance capacity; identifying the log stream using the request attribute scheme, wherein identifying the log stream using the request attribute scheme comprises: accessing the request attributes of the request, wherein the request attributes indicate a performance isolation trait for processing the request; and selecting the log stream based on the performance isolation trait; communicating the request to be executed using the log stream identified based on the performance capacity; and communicating the request to be executed using the log stream identified based on the performance isolation trait.