A system, comprising: an apparatus for running a plurality of threads, the apparatus comprising: a memory; a client, configured to generate, for each of the plurality of threads a remote procedure call, RPC, request for executing an operation and to store the generated RPC requests in the memory; and an RPC manager, configured to order the stored RPC requests; wherein the client is further configured to send the ordered RPC requests in an RPC batch to a server which is outside the apparatus, wherein the ordered RPC requests are sent in the batch by one of the plurality of threads; wherein the RPC manager is configured to determine for each of the stored RPC requests at least one object, and order the stored RPC requests based on a time at which the stored RPC requests are generated and the determined object by taking an iterated algorithm including steps of: determining (step 501) which RPC request, among the RPC requests being not ordered, is the earliest RPC request generated by the client, determining (step 503) which object the earliest RPC request belongs to, and ordering (step 505) all other RPC requests corresponding to the same determined object based on the time each RPC request is generated; wherein the RPC manager is configured to order all the stored RPC requests corresponding to a first object before ordering a stored RPC request corresponding to a second object, and wherein at least one ordered RPC request corresponding to the first object was generated by the client earlier than any ordered RPC request corresponding to the second object; the system further comprising the server, being configured to receive the RPC batch from the apparatus, wherein the server is configured to batch responses corresponding to the RPC requests and send the batched responses, within a single reply to the RPC batch, to the apparatus. a memory; a client, configured to generate, for each of the plurality of threads a remote procedure call, RPC, request for executing an operation and to store the generated RPC requests in the memory; and an RPC manager, configured to order the stored RPC requests; wherein the client is further configured to send the ordered RPC requests in an RPC batch to a server which is outside the apparatus, wherein the ordered RPC requests are sent in the batch by one of the plurality of threads; wherein the RPC manager is configured to determine for each of the stored RPC requests at least one object, and order the stored RPC requests based on a time at which the stored RPC requests are generated and the determined object by taking an iterated algorithm including steps of: determining (step 501) which RPC request, among the RPC requests being not ordered, is the earliest RPC request generated by the client, determining (step 503) which object the earliest RPC request belongs to, and ordering (step 505) all other RPC requests corresponding to the same determined object based on the time each RPC request is generated; wherein the RPC manager is configured to order all the stored RPC requests corresponding to a first object before ordering a stored RPC request corresponding to a second object, and wherein at least one ordered RPC request corresponding to the first object was generated by the client earlier than any ordered RPC request corresponding to the second object; the system further comprising the server, being configured to receive the RPC batch from the apparatus, wherein the server is configured to batch responses corresponding to the RPC requests and send the batched responses, within a single reply to the RPC batch, to the apparatus. determining (step 501) which RPC request, among the RPC requests being not ordered, is the earliest RPC request generated by the client, determining (step 503) which object the earliest RPC request belongs to, and ordering (step 505) all other RPC requests corresponding to the same determined object based on the time each RPC request is generated; wherein the RPC manager is configured to order all the stored RPC requests corresponding to a first object before ordering a stored RPC request corresponding to a second object, and wherein at least one ordered RPC request corresponding to the first object was generated by the client earlier than any ordered RPC request corresponding to the second object; the system further comprising the server, being configured to receive the RPC batch from the apparatus, wherein the server is configured to batch responses corresponding to the RPC requests and send the batched responses, within a single reply to the RPC batch, to the apparatus.