1. A method performed by a computing system, comprising:
receiving a data access request including a dataset from a client computing system at a distributed computing system, the distributed computing system including multiple computing servers hosting a region of data associated with the distributed computing system, the computing servers distributed across multiple clusters, wherein one of the computing servers is a leader server and a remaining of the computing servers are follower servers, and wherein some of the computing servers are active servers, active witness servers and shadow witness servers;
writing, by the leader server, the dataset to a log file at a data storage system associated with the leader server;
replicating, by the leader server, the log file to the follower servers; and
updating, by an active server of the active servers, a distributed data storage system associated with a first cluster of the clusters to which the leader server belongs with the dataset from the log file.
2. The method of claim 1, wherein the leader server is one of the computing servers assigned to serve read-write requests received for the region.
3. The method of claim 1, wherein the active server is one of the computing servers in the first cluster assigned to update the distributed data storage system.
4. The method of claim 3, wherein the active server and the leader server are the same computing server of the computing servers.
5. The method of claim 1, wherein replicating the log file to the follower servers includes:
transmitting, by the leader server, the log file to the follower servers synchronously,
receiving, by the leader server, an acknowledgement from a majority of the follower servers regarding a receipt of the log file at the corresponding follower server, and
sending, by the leader server, an indication to the client computing system regarding a receipt of the dataset.
6. The method of claim 1, wherein replicating the log file to the follower servers includes:
replicating, by the leader server, an in-memory store of the leader server and the log file to the active witness servers, the in-memory store including data from the log file, and
replicating, by the leader server, the log file to the shadow witness servers.
7. The method of claim 1 further comprising:
receiving a read request at the distributed computing system from the client computing system for a specified data set in the region;
obtaining, by the leader server and in response to the read request, the specified data set from the distributed data storage system; and
transmitting, by the leader server, the specified data set to the client computing system.
8. The method of claim 1, wherein one of the computing servers is elected as the leader server as a function of a rank associated with the corresponding computing server.
9. The method of claim 8, wherein electing the leader server includes:
setting a timer of a specified duration for each of the computing servers, the specified duration being a function of the rank of the corresponding computing server, wherein the timer of a higher ranked computing server expires before that of a lower ranked computing server,
determining that a timer of the one of the computing servers expired before that of a remaining of the computing servers, and
selecting the one of the computing servers as the leader server.
10. The method of claim 8, wherein a computing server of the computing servers that is geographically closest to the client computing system is assigned a highest rank among the computing servers.
11. The method of claim 1 further comprising:
determining that the leader server in the first cluster failed;
determining if the clusters include one or more of the active witness servers; and
responsive to a determination that the clusters include one or more active witness servers, electing one of the one or more active witness servers as the leader server based on a rank associated with the one or more active witness servers.
12. The method of claim 11 further comprising:
responsive to a determination that the clusters do not include the active witness servers, electing one of the shadow witness servers as the leader server.
13. The method of claim 12 further comprising:
obtaining, by the one of the shadow witness servers, information from a replicated copy of the log file stored at a data storage system associated with the one of the shadow witness servers; and
updating, by the one of the shadow witness servers, an in-memory store of the one of the shadow witness servers with the information prior to serving a read-write request from the client computing system.
14. The method of claim 1, wherein the region is a portion of the data associated with distributed computing system.
15. A computer-readable storage medium storing computer-executable instructions, comprising:
instructions for selecting one of multiple computing servers in a distributed computing system as a leader server, wherein the leader server is a computing server assigned to serve a read-write request from a client computing system, wherein a remaining of the computing servers are follower servers, and wherein the leader server replicates a log file associated with the leader server to the follower servers, the log file including a data set received from the client computing system;
instructions for selecting one of the computing servers as an active server, wherein the active server is a computing server assigned to update a distributed data storage system with a log file associated with the active server; and
instructions for selecting some of the computing servers as witness servers, the witness servers including (a) one or more active witness servers that include a replicated copy of the log file and an in-memory store of the leader server and (b) one or more shadow witness servers that include a replicated copy of the log file of the leader server.
16. The computer-readable storage medium of claim 15, wherein the instructions for selecting one of the computing servers as the leader server includes:
instructions for assigning a rank to each of the computing servers,
instructions for setting a timer of a specified duration for each of the computing servers, the specified duration being a function of the rank of the corresponding computing server, wherein the timer of a higher ranked computing server expires before that of a lower ranked computing server,
instructions for determining that a timer of the one of the computing servers expired before that of a remaining of the computing servers, and
instructions for selecting the one of the computing servers as the leader server.
17. The computer-readable storage medium of claim 15 further comprising:
instructions for determining that the leader server failed; and
instructions for electing an active witness server of the one or more active witness servers as the leader server based on a rank associated with the one or more active witness servers.
18. The computer-readable storage medium of claim 15 further comprising:
instructions for determining that the leader server failed;
instructions for electing a shadow witness server of the one or more shadow witness servers as the leader server based on a rank associated with the one or more active witness servers;
instructions for obtaining information from a replicated copy of the log file stored at a data storage system associated with the shadow witness server; and
instructions for updating an in-memory store of the shadow witness server with the information prior to serving a read-write request from the client computing system.
19. A system, comprising:
a processor;
a first module configured to select:
one of multiple computing servers of a distributed computing system as a leader server and a remaining of the computing servers as follower servers, the leader server assigned to serve a data access request from a client computing system,
one of the computing servers as an active server,
some of the follower servers as active witness servers, the active witness servers including a replicated copy of a log file and an in-memory store of the leader server, and
some of the follower servers as shadow witness servers, the shadow witness servers including a replicated copy of the log file of the leader server;
a second module configured to cause the leader server to process a data access request received at the distributed computing from a client computing system, the data access request including a dataset;
a third module configured to cause the leader server to write the dataset to the log file stored at a data storage system associated with the leader server;
a fourth module configured to cause the leader server to replicate the log file and the in-memory store to the active witness servers, and replicate the log file to the shadow witness servers; and
a fifth module configured to cause the active server to update a distributed data storage system associated with the active server with the dataset from the log file.
20. The system of claim 19 further comprising:
a sixth module to select one of the computing servers as a next leader server upon a failure of the leader server, the sixth module configured to select one of the computing servers as the next leader server as a function of a rank and a timer associated with each of the computing servers.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
What is claimed is:
1. A double-stranded RNA complex comprising:
(c) a first ribonucleic acid molecule capable of hybridizing under physiological conditions to at least a portion of an mRNA molecule; and
(d) a second ribonucleic acid molecule wherein at least a portion of the second ribonucleic acid molecule is capable of hybridizing under physiological conditions to the first portion.
2. A RNA complex of claim 1 wherein the first and second portions are separate ribonucleic acid molecules.
3. A double-stranded RNA molecule of claim 1 wherein the mRNA is encoded by a gene in a cell.
4. A linear RNA molecule capable of forming a dsRNA complex wherein the RNA molecule comprises:
(c) a first portion that hybridizes to at least a portion of a mRNA molecule; and
(d) a second portion wherein at least part of the second portion is capable of hybridizing to the first portion to form a hairpin dsRNA complex.
5. A double-stranded RNA molecule of claim 4 wherein the mRNA is encoded by a gene in a cell.
6. A linear RNA molecule of claim 4 further comprising a third portion of ribonucleic acid interposed between the first and second portions.
7. A linear RNA molecule of claim 6 wherein the third portion promotes hybridization between the first and second portion.
8. A RNA molecule of claims 1 or 4 further comprising an additional RNA portion of ribonucleic acid that enhances the ability of dsRNA to alter transcription from the gene encoding the mRNA molecule.
9. A RNA molecule of claim 8 wherein the additional RNA portion encodes an RNA molecule.
10. A RNA molecule of claim 8 wherein the additional RNA portion encodes a protein.
11. A RNA of claim 10 wherein the protein is Tat.
12. A RNA of claim 6 wherein the third portion of ribonucleic acid further comprises at least one ribozyme and a target sequence recognizable by the ribozyme wherein the target sequence is not present in the first portion and the second portion.
13. A RNA of claim 12 wherein the double-stranded RNA complex is formed upon hybridization of the first and second portion and the target sequence is cleaved by the hairpin dsRNA.
14. A RNA of claim 6 wherein the third portion of ribonucleic acid further comprises an intron or a linker sequence.
15. A linear RNA molecule capable of forming a dsRNA complex wherein the RNA molecule comprises:
(d) a first portion that comprises a region of RNA that is complementary to at least a portion of a mRNA molecule encoded by a gene;
(e) a second portion capable of hybridizing to at least part of the first portion; and
(f) a third portion positioned between the first and second portions to permit the first and second portions to hybridize with one another.
16. A linear RNA molecule of claim 15 wherein the third portion comprises at least one ribozyme and a target sequence recognized by the ribozyme wherein the target sequence is not present in the first or second portion.
17. A linear RNA molecule of claim 15 wherein second sequence comprises a polyadenylation signal.
18. A linear RNA molecule of claim 15 wherein the third portion comprises a plurality of ribozymes and target sequences capable of cleavage thereby.
19. A linear RNA molecule capable of forming a dsRNA complex wherein the RNA molecule comprises:
(c) a first portion that hybridizes to at least a portion of a mRNA molecule encoded by a gene; and
(d) a second portion wherein at least part of the second portion is capable of hybridizing to the first portion and wherein the second portion comprises a polyadenylation signal and a ribozyme positioned between the part of the second portion capable of hybridizing to the first portion and the polyadenylation signal
wherein the ribozyme is capable of removing the polyadenylation signal.
20. A linear RNA molecule of claim 19 wherein the ribozyme is a cis-acting hammerhead ribozyme.
21. At least one DNA molecule encoding the RNA molecules of any of claims 1-20.
22. A DNA molecule of claim 21 wherein a single DNA molecule encodes the RNA molecules of any one of claims 1-20.
23. A DNA molecule of claim 21 wherein two DNA molecules encode the RNA molecules of claim 1.
24. A eukaryotic cell comprising the RNA molecules of claims 1-20.
25. A eukaryotic cell comprising the DNA of molecules of any of claims 21-23.
26. A eukaryotic cell of claims 24 or 25 wherein the cell is a mammalian cell.
27. A eukaryotic cell of any of claims 24-26 wherein the cell is a human cell.
28. A cell of claim 27 wherein the cell further comprises HIV nucleic acid.
29. A cell of any of claims 24-27 wherein the cell is a neoplastic cell.
30. A vector encoding at least one of the RNA molecules of any of claims 1-20.
31. A vector comprising the DNA of any of claims 21-23.
32. A vector of claim 30 or 31 wherein the vector is a plasmid, an adenovirus, an adenoassociated virus, or a retrovirus.
33. A vector of claim 32 wherein the plasmid is an episomal plasmid.
34. A method for inhibiting protein expression in a eukaryotic cell comprising the step of introducing the RNA of any of claims 1-20, the DNA molecules of claims 21-23 or the vectors of claims 30-32 into the cell.
35. A method of claim 34 wherein the eukaryotic cell is a mammalian cell.
36. A method of claim 35 wherein the cell is a human cell, a somatic cell, an undifferentiated, dedifferentiated, neoplastic cell or a chimeric cell.
37. A method of claim 34 wherein the RNA, DNA is introduced into the cell using a vesicle or is delivered by microinjection.
38. A method of claim 34 wherein the mRNA is selected from the group consisting of a cancer-related gene, a rheumatoid arthritis-related gene and a viral gene.
39. A method of claim 38 wherein the mRNA is an HIV-derived gene.
40. A method of claim 39 wherein the gene is selected from the group consisting of tat, nef, rev, ma, ca, ne, pg vpu, pr, vif su, tm, vpr, rt and in.
41. A method of inhibiting protein expression from a gene in a cell comprising the step of;
introducing a linear RNA molecule capable of forming a dsRNA complex into a cell, wherein the RNA molecule comprises:
(a) a first portion that hybridizes to at least part of a mRNA molecule encoded by a gene; and
(b) a second portion wherein at least part of the second portion is capable of hybridizing to the first portion
42. A method of claim 41 wherein the second portion comprises a polyadenylation signal positioned at the 3 end of the linear RNA molecule.
43. A method of claim 42 wherein the second portion further comprises a ribozyme positioned between the part of the second portion capable of hybridizing to the first portion and the polyadenylation signal, wherein the ribozyme is capable of removing the polyadenylation signal.
44. A method of claim 43 wherein the ribozyme is a cis-acting hammerhead ribozyme.
45. A method of claim 41 wherein the cell is a mammalian cell.
46. A method of claim 41 wherein the cell is in vitro.
47. A method of claim 41 wherein the cell is in vivo.
48. A method of claim 41 wherein the introducing step employs microinjection.
49. A method of claim 41 wherein the RNA is encoded by a DNA molecule and the DNA molecule is transcribed in the cell.
50. A method of claim 41 wherein the RNA is introduced as a vector.
51. A method of claim 50 wherein the vector is RNA or DNA.
52. A method of claim 51 wherein the vector is a plasmid, adenovirus, adeno-associated virus or a retrovirus.
53. A method of claim 41 wherein the RNA is synthesized outside the cell.
54. A method of claim 41 wherein the RNA is synthesized inside the cell.
55. A method of claim 43 wherein the RNA is retained in the nucleus.
56. A method for localizing a dsRNA molecule to the nucleus of a cell comprising the step of:
introducing a DNA molecule encoding a linear RNA molecule capable of forming a dsRNA complex into a cell wherein the RNA molecule encoded by the DNA molecule comprises:
(a) a first portion that hybridizes to at least a portion of a mRNA molecule encoded by a gene; and
(b) a second portion wherein at least part of the second portion is capable of hybridizing to the first portion and wherein the second portion comprises a polyadenylation signal and a ribozyme positioned between the part of the second portion capable of hybridizing to the first portion and the polyadenylation signal,
wherein the ribozyme is capable of removing the polyadenylation signal thereby retaining the RNA in the nucleus.
57. The method of claim 56 wherein the ribozyme is a cis-acting hammerhead ribozyme.
58. A method for modulating expression of a nucleic acid sequence in a cell comprising exposing the cell to culture medium in which cells comprising a dsRNA complex comprising a first portion that hybridizes to at least part of a mRNA molecule encoded by a gene; and a second portion wherein at least part of the second portion is capable of hybridizing to the first portion have been maintained in cell culture.
59. A method of identifying the function of a gene in a cell comprising the step of;
(a) binding a dsRNA molecule to an mRNA molecule in a cell wherein the dsRNA molecule comprises a first ribonucleic acid molecule capable of hybridizing under physiological conditions to at least a portion of an mRNA molecule; and a second ribonucleic acid molecule wherein at least a portion of the second ribonucleic acid molecule is capable of hybridizing under physiological conditions to the first portion; and
(b) detecting a change in the cell resulting from the binding.
60. A method of forming a double-stranded RNA in a cell comprising the step of introducing the RNA molecule of any of claims 1-20 or the DNA molecule of claims 21-23 into a cell.
61. A composition for inhibiting the expression of a gene in a eukaryotic cell comprising:
a RNA molecule of claims 1 or 4 wherein the RNA molecule further comprises an additional RNA portion of ribonucleic acid that enhances the ability of dsRNA to alter transcription from the gene encoding the mRNA molecule.
61. The composition of claim 61 further comprising a third portion of ribonucleic acid interposed between the first and second portions wherein the third portion promotes hybridization between the first and second portion.
62. Use of any of the RNA of claims 1-20, the DNA of claims 21-23 or the vectors of claims 31-33 to inhibit expression of a gene in a cell.
63. A pharmaceutical composition comprising the RNA of claims 1-20, the DNA of claims 21-23 or the vectors of claims 31-33.
64. A microinjection apparatus comprising a pharmaceutical composition comprising the RNA of claims 1-20, the DNA of claims 21-23 or the vectors of claims 31-33.
65. A lipid vesicle comprising the RNA of claims 1-20, the DNA of claims 21-23 or the vectors of claims 31-33.
66. Use of any of the RNA of claims 1-20, the DNA of claims 21-23 or the vectors of claims 31-33 to determine the functions of genomic nucleic acid or viral nucleic acid in a cell.