apc_add() versus apc_store()
Asked Answered
C

4

21

I know that apc_store() overwrites the key if it already exists, so I know the difference, my question is just: What's the better method/best practice?

Chrysoberyl answered 5/4, 2011 at 9:41 Comment(0)
D
43

The only difference between those two functions is that apc_add() will not overwrite an existing entry.
apc_store(), on the other hand, will overwrite an existing entry.

So, which one should your use, between apc_add() and apc_store() ?
Well, it all depends on your needs : do you want an existing entry to be overwritten, or not ?

Disciplinary answered 5/4, 2011 at 10:54 Comment(1)
A result of this difference might have major implications in concurrent environments: excessive locking, resulting with extremely high latencies or crashes (I've added another answer relating to this)Darby
D
2

In addition to what @Pascal MARTIN writes, there is a major practical difference between them.

In a heavily concurrent environment, e.g. when using apc for user objects in apache, the use of apc_store might lead to apc time bomb (the link is from 2007 but still relevant!), while apc_add mitigates this issue.

See also: https://serverfault.com/questions/342295/apc-keeps-crashing

Darby answered 5/11, 2014 at 9:46 Comment(0)
H
1

Really depends on the logic you need to apply: do you need to overwrite the key or not? It’s all up to you.

Holub answered 5/4, 2011 at 9:50 Comment(1)
Then there's a page fault in your memory.Unperforated
E
1

you need apc_add() in case you like to implement an atomic counter in a concurrent environment. thats the main use-case IMO.

Ethiopia answered 21/8, 2014 at 15:50 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.