Concurrency is a property of systems in which several processes are executing at the same time.
0
votes
1answer
52 views
Synchronisation with offline system
I'm designing a system from which I will synchronise business data from mobile device that have an embedded application that generates datas and send them back to the server. Each line synchronised ...
1
vote
4answers
308 views
What is the ninja performance gap, why is it so large, and how can we overcome it?
According to this abstract:
The "Ninja gap" [...] is the
performance gap between naively written C/C++ code that is parallelism
unaware (often serial) and best-optimized code on modern
...
1
vote
2answers
79 views
Why are the Coffman conditions necessary for a deadlock to occur?
Quoting https://en.wikipedia.org/wiki/Deadlock#Necessary_conditions :
A deadlock situation can arise if all of the following conditions hold simultaneously in a system:
Mutual exclusion: ...
0
votes
1answer
55 views
Concurrent languages and non-concurrent dependencies [closed]
We had a bug caused by ruby workers (4 processes, 1 thread each) doing batching records using a legacy mongodb as the store. The race condition was around whether the batch was full or not; with one ...
3
votes
1answer
27 views
Asynchronous socket.io for lots of concurrent messages
We have a web application which currently operates like this on a typical view/page:
the front has to display 100+ "previews" (in the form of base64 images)
each of this preview is built on-demand ...
4
votes
2answers
162 views
Understanding the Single-Writer Principle
The article on the Single-Writer Principle of the Mechanical Sympathy blog explains how bad queues are (performance-wise), because they need to be able to receive messages from multiple produers, and ...
0
votes
1answer
39 views
Concurrent and atomic updates to multiple properties/variable of an object
I have a class with multiple setters and want to make atomic updates to multiple properties/variables. As far as I can see there are three methods that could work:
Call all setters in synchronized ...
0
votes
0answers
58 views
How to prevent parallel calls to model?
While there is some command running which calls methods on some model, how to prevent concurrent calls for critical places in that model?
If multiple requests comes in then they should maintain their ...
4
votes
4answers
134 views
How to prevent user from requesting API method multiple times in parallel?
Let's say we have an app where the users gain points and can exchange them for rewards. The exchange request, in pseudo-code, could look like this:
function exchangePointsForReward(userId, rewardId){
...
2
votes
1answer
87 views
Event Sourcing + Updates to multiple aggregates
I'm trying to learn about event sourcing for potential application to a booking system I am building - I think I understand the core concepts, but I'm having trouble understanding how to handle cases ...
-1
votes
1answer
68 views
Approaches to Concurrency [closed]
I’ve been doing some research on the various approaches to concurrency, and I’ve ended up with the following taxonomy:
Manual thread based concurrency with locks
Asynchronous dispatch queues and ...
2
votes
0answers
71 views
Handling exceptions in multiple-issue CPUs
From what I read, VLIWs execute instructions in bundles, i.e. the CPU loads a bundle of instructions and dispatches them all at once. This is possible because the compiler scheduled instructions in ...
0
votes
1answer
187 views
akka and futures, which ExecutionContext should be used
Following this blog by @Tomasz Nurkiewicz we can see that 4 different approaches are available for picking the ExecutionContext, when interacting with akka actors, for scala futures to run on.
import ...
3
votes
1answer
140 views
Java concurrency
I am working to solve interesting concurrent problem! Not sure if I understand it correctly since I am little bit confused.
The system needs to process the prices, and typically they cannot be ...
0
votes
1answer
259 views
Ever-running timed tasks
I need to design a piece of software which is invoking some actions regularly. By regularly I mean that there is x things that need to be done at 12.00, y things at 12.30 etc,etc.
The times and ...
1
vote
2answers
125 views
Don't quite understand check and set in concurrency
I don't entirely understand check and set behaviour.. here is an example:
public static void main(String[] args) {
List<String> list = Collections.synchronizedList(new ...
4
votes
2answers
303 views
Why is Akka good for concurrency?
I am new to Akka and actor framework - I am sure I am missing something obvious, please accept my apologies in advance.
I keep reading that one of the main points to choose Akka is the way it manages ...
2
votes
3answers
123 views
Long running DB query with concurrent write at the same time [closed]
We have a big table with a lot of data and a select query which takes 3 seconds to run.
However we are a highly concurrent environment and each second we get 100 new records in our database.
So ...
1
vote
0answers
81 views
Terminology - Difference between thread and process and how they manage DB connections
I've been working more with concurrency in Ruby recently, and I keep seeing various articles using "threads" and "process" interchangeably.
What are the actual definitions of these terms? Is a ...
1
vote
1answer
114 views
Does ReaderWriterLockSlim provide thread safety and speed efficiency (compared to a traditional lock) when using a List?
I have a list, to which I write once in every update Loop and then I spawn some tasks which create read that List and create a duplicate to manipulate that data.
More or less it's List.ToList() call ...
0
votes
0answers
43 views
Is using synchronization in service layer a bad idea?
I need to implement a mailbox monitor system as a web service. I have follow classes:
MailboxMonitor: Contains information such as username, password, pulling interval etc.
MailboxMonitorRepository: ...
3
votes
1answer
92 views
How does condition_variable::notify_one() choose which thread to unblock?
notify_one() of C++ 11 thread library is used to unblock one of the waiting threads.
How does it choose which thread to unblock?
To begin with, I tried googling but could not find any appropriate ...
5
votes
3answers
872 views
Is REST only limited to optimistic concurrency control?
Context
Due to the statelessness of the REST architectural style involving that each requests stands completely alone, leading server to never store any informations about client.
Thus, pessimistic ...
3
votes
1answer
925 views
Difference between Consumer/Producer and Observer/Observable
I am working on the design of an application that consists of three parts:
a single thread that watches for certain events happening (file creation, external requests etc.)
N worker threads that ...
1
vote
0answers
115 views
Injecting locking policy into a class
I have a class that does some operations on data, and I want to have different locking schemes (no-lock, simple-lock, and read reader-writer lock) in different situations.
Think this main class like ...
1
vote
3answers
1k views
Can multiple synchronized methods in same object run concurrently
As far as i know when there are multiple synchronized methods(both static and instance) in a class, java allows only one such method to run at a time. But what if a thread acquires lock on an object ...
4
votes
4answers
374 views
Testing concurrency/thread-safety
A program I have wrote uses multiple threads and I believe my program is thread-safe but how can I really know?
I've read a number of examples online and none of them describe how to test the code is ...
1
vote
1answer
149 views
Generic PHP web interface for handling concurrent updates optimistically
I'm looking in to writing a new PHP based CMS which handles concurrent edits optimistically like source version control rather than pessimistic locking like Wordpress. I want to be able to write some ...
9
votes
1answer
438 views
When asynchronous tasks make a bad UX
I'm writing a COM add-in that's extending an IDE that desperately needs it. There are many features involved, but let's narrow it down to 2 for the sake of this post:
There's a Code Explorer ...
1
vote
1answer
530 views
How to concurrently write data in Java without locking?
How to implement a multi-threaded program in which each thread needs to write/output some data (in any order of course) but without the locking overhead that is involved with files or a particular ...
-2
votes
1answer
397 views
Crawler - programming language choice [closed]
I'm currently developing a web crawler. The first version was developed in Node.js and runs pretty well.
The issues that I encountered with Node.js are in no particular order:
slow URL and ...
25
votes
3answers
3k views
How much work should I place inside a lock statement?
I am a junior developer working on writing an update for software that receives data from a third-party solution, stores it in a database, and then conditions the data for use by another third-party ...
1
vote
1answer
110 views
is a DoS attack a good analogy of Dining Philosophers?
Let's say that, instead philosophers, we have TCP/IP connections to a server, and instead forks we have the server's TCP/IP avaliable ports. In this scenario, we don't have a lot of connections ...
-1
votes
1answer
80 views
What's the best way to implement a real time show board to show results from concurrent result producers in Java?
I'm making a load test tool that launches multiple thread to simulate load on the target server. Each thread executes a predefined set of commands in the structure of TestSuite - TestCase- TestStep ...
1
vote
1answer
224 views
Experiences with C++ Async/actor model Library [closed]
I am fairly experienced with async and concurrent programming in c# using event, actor, and task based patterns, but now I have a task in c++ with which I have basic familiarity and it needs some ...
2
votes
3answers
632 views
Accessing shared data without blocking in TPL
I am writing a class that contains data. It exposes methods that allow to query the data, while the data is also being updated from an external source (web service, for example).
All the methods ...
5
votes
2answers
1k views
Where is the evidence for the performance of Node.js?
A lot of developers, especially ones who haven't used Node.js in production, seem to believe that Node.js is faster than other interpreted languages such as PHP, Python, and Ruby.
These claims ...
1
vote
2answers
104 views
When, if ever, are basic concurrency optimizations generally made?
Lets say I need to preform the following computationally intensive task
For i in range(100000000):
doComplexCalculationWithNoSideEffects(i)
Most people I talk to tell me that basically any ...
1
vote
1answer
66 views
How to model parallel processes (in a Bounded Context) with the same data store?
The situation. Let's say a background process puts stuff into data containers. It runs all the time, observes system events, and populates the data accordingly.
The user may launch a control panel ...
0
votes
2answers
364 views
Scaling locks in high concurrency web apps [closed]
Our web application has a certain resource type that is shared accross multiple users, and may thus be read and written by anyone at anytime. We resorted to the usual suspects, database transactions ...
1
vote
3answers
577 views
Is there an algorithm to determine the amount of work needed to keep workers busy?
I wrote a multi-threaded program that randomly generates strings, and after generating, checks to see if the string contains a certain value. Namely, StringGenerator and StringChecker. What I'm trying ...
1
vote
1answer
57 views
Locking on data vs locking on functions
In concurrent code, what is the difference between, and the pros and cons of each:
Locking on data
Locking on functions
My understanding is that locking on data is better, and I think I'm doing ...
1
vote
2answers
87 views
Lock data in DB while external API call is pending?
I have an interesting situation, and I am looking for the best way to solve it. My app runs like this:
1) The user gets a Promotion Pin from Some Company, and I have a db table with these pins also. ...
2
votes
1answer
113 views
Can concurrent code (threads, distributed computing, etc.) be directly ported to single-threaded/non-networked platforms?
Take an arbitrary "perfect" multi-threaded program, on an arbitrary multi-threaded platform, using an arbitrary programming language.
Assuming that this "perfect" multi-threaded program:
is ...
6
votes
0answers
205 views
Which languages have the best support for stackful coroutines? [closed]
Various languages support (some flavor of) coroutines.
One way to discriminate coroutines is whether they are stackful or not (terminology based on Ana Lucia de Moura; Roberto Ierusalimschy (2004). ...
2
votes
2answers
307 views
Alternative locking strategies
I'm having a problem with the design of my application, that neither optimistic nor pessimistic locking tends to solve. Here is a simplified/altered version of the problem that describes the ...
23
votes
8answers
6k views
Function guaranteed to never return the same value twice [closed]
This is a question I was asked at a job interview, and I can't figure out the answer they were looking for, so I'm hoping someone here might have some ideas. The goal is to write a function that is ...
1
vote
0answers
111 views
Concurrent Processes - Monitors and Reader/Writers
So this is a general question about the use of monitors in the Reader/Writers problem.
I know the monitor procedures for the Readers/Writers problem are used for mutual exclusion to a critical ...
3
votes
2answers
182 views
Simultaneous purchase in online shop bypassing limited offer
Our client sells several products in an online shop (our software) for a especially low price on the first purchase. Further purchases of each product will fallback to the regular price.
E.g. product ...
12
votes
2answers
240 views
Does Optimistic Concurrency per object imply Serializability if a transaction will never span multiple objects?
Given a system which provides:
Optimistic concurrency control / versioning per object (using CAS - Check-and-Set)
Transactions that never need to span more then a single object.
Snapshot Isolation
...