7

I don't know the correct way to explain this type of word in English, but it's similar to the word 'specificity'. You can describe something as specific using this word. I'm looking for a similar way to use 'atomic'. My intended usage of 'atomic' here is to describe the nature of an operation in programming: To perform an operation atomically, means that this operation completes 100% without being interrupted. It means the operation is guaranteed to be complete.

When discussing the property of being atomic with my coworkers, I wish to use it somewhat like: "This gives you the guarantee of atomicity". I know that 'atomicity' isn't a word (at least according to Google), but I hope that gives you an idea of what I'm trying to do.

What is the correct way of using 'atomic' in this way? Or am I maybe going down the wrong path here?

10
  • 15
    There certainly is a word atomicity as shown by Mr G. But anyway telling your co-workers that an "atomic" operation guarantees "atomicity" is no explanation at all. Commented Oct 19, 2018 at 13:41
  • Are you sure that the concept of “atomic” is the best way to express the idea ?
    – user 66974
    Commented Oct 19, 2018 at 13:52
  • 10
    @user240918 atomic is a technical term term used in the computer industry. Commented Oct 19, 2018 at 13:55
  • 3
    How can you say that Google doesn't thinks that "atomicity" is a word???
    – Hot Licks
    Commented Oct 19, 2018 at 22:25
  • 4
    The title of this question could be improved. My first thought (before reading the full question) was “atomically”. Commented Oct 20, 2018 at 13:04

4 Answers 4

78

Atomicity is a perfectly cromulent word. It is often used in the context of database transactions1,2,3 or thread safety4,5. For example, from 3 :

Atomicity takes individual operations and turns them into an all-or-nothing unit of work, succeeding if and only if all contained operations succeed.

3
  • 33
    +1 just for "perfectly cromulent". You is my kinda people.
    – Dan Bron
    Commented Oct 19, 2018 at 14:15
  • 3
    Wow, I learned about a new meme today too. I got more than I bargained for! Commented Oct 19, 2018 at 17:17
  • 11
    This is how words can embiggen your mind Commented Oct 21, 2018 at 9:40
14

Wikipedia recognizes separate meanings for programming and databases which may be why there is a bit of an argument about what it means.

But there is a more important point. People on this site may like "cromulence" and "atomicity" but your co-workers may not. If you have to ask here about the word and if we can't agree about its meaning and usage then you can be pretty certain it will not be clear to your intended readers. Say

This guarantees that the process will be atomic.

6
  • 16
    I worked in computer science for 45 years, and "atomicity" was always a legitimate term, and one that was readily comprehended.
    – Hot Licks
    Commented Oct 19, 2018 at 22:27
  • I taught database design and programming for a large computer manufacturer, back in the day. "Atomicity" was a perfectly legitimate word. But, apart from whether people knew the word or not, there was confusion on the part of a lot of programmers as to why such a feature would be a good idea. You had to teach them what could go wrong if database transactions were not atomic. Commented Oct 20, 2018 at 13:15
  • 1
    So you have to be very careful about the target audience. If they know and understand the word then use it, but if not you have to decide whether to use it and explain it or avoid the technical stuff altogether and say something like "guarantees that the process will work reliably without data loss." If you are trying to get funding to do a decent job and you tell the board it is for improved atomicity you are guaranteed not to get any money. If you mention critical data loss which they understand as "loss of business" or "risk of lawsuits" then the funding will appear while you blink. Commented Oct 20, 2018 at 13:32
  • "guaranteed...without data loss " implies a great deal more than atomicity does. If "atomicity" is too obscure, use "atomic transactions", "indivisible transactions" or "uninterruptible transactions". Provided you are talking about transactions. Commented Oct 20, 2018 at 15:41
  • 4
    Atomicity is the accepted jargon. Like many jargon words, they aren't considered real words outside of the application domain. If computer scientists only used the words that laypeople use, we wouldn't have words for quite a few things that we need to talk about daily. Commented Oct 21, 2018 at 0:20
8

Atomicity is fine, but I think it's important to understand atomicity and atomic operations. They aren't guaranteed to succeed, they are simply guaranteed to not complete partially. They can (and do) still fail, but it is an all or nothing operation.

Atomic is used to describe an individual operation that is as small as it can possibly be - not made up of components itself. An example in programming would be to fetch the read/write status of a file. That operation is atomic. But you can still fail to fetch the status (I/O Exception). Or, you can succeed (this file is read-only, this one is read-write). You cannot, however, partially succeed (this file can be read, but we don't know if it can be written).

So, be sure to use "atomicity" correctly. If you use it to state that something is guaranteed to succeed, you will be setting incorrect expectations and incorrectly using the word.

4
  • 1
    I am not totally persuaded that OP, or his technical colleagues, or any one else, really, thinks there can be or is some characteristic or methodology that guarantees success. I think IT people understand atomicity the same way traders do IOC or FOK orders; I don't think there's any confusion on the matter.
    – Dan Bron
    Commented Oct 19, 2018 at 14:23
  • 5
    I would hope not, but I've seen things... terrible things. I assume the OP, with the name void.pointer, probably knows a thing or two. But I'd hate for some tech sales guy to wander in here, see this post, think atomicity means guaranteed success, and use it in glossy slides. And yes, I've experienced this lol. Commented Oct 19, 2018 at 14:26
  • 1
    Nitpicking, "as small as it canpossibly be" may not be the right notion either. E.g., in a high level language such as C, you cannot subdivide an instruction such as x = 42 and yet it may not be atomic (depending on the type of x). Even at CPU level, a single instruction such as INC mem is not necessarily atomic. Locking or other technical measures, sometimes special instruction variants (and in particular some that at first glance or by their very name - COMPAREANDSWAP - are not as small as they can possibly be, are put in place, and this gives you the guarantee of atomicity Commented Oct 21, 2018 at 9:56
  • @HagenvonEitzen - very good point! Commented Oct 22, 2018 at 14:30
2

The phrase

This gives you the guarantee of atomicity

is perfectly valid, I have used it, or something very similar, on many occasions.

However, I've never heard "atomically" used like this in the U.K. tech industry.

Instead, I would say

To perform an atomic operation, means...

2
  • 3
    Myself and coworkers have definitely said things like "To perform an operation atomically ...". Both of your examples are good, though. Commented Oct 19, 2018 at 19:45
  • Maybe this is one of those subtle British vs American English differences @MatthewRead.
    – Mark Booth
    Commented Oct 22, 2018 at 8:16

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .