Comments (5)
Resolved in #1105 which implements CompareAndClear op.
from foundationdb.
This seems pretty useful to me. I also have used counters in this way and have had to manually garbage collect them to remove those that are no longer in use. There are probably several atomic operations that have not yet been implemented that would also be useful.
from foundationdb.
It sounds like there were two options here, either to implement COMPARE_AND_CLEAR
that clears key k
if and only if the value at k
is equal to the other parameter, or a more specific ADD_AND_CLEAR
that would clear a key that hits zero. I think some of us on the team decided that COMPARE_AND_CLEAR
, being more generic, would be more useful even if it means a few more client operations.
from foundationdb.
Bindings could provide a ADD_AND_CLEAR
overload that internally calls ADD
and COMPARE_AND_CLEAR
, so that we have both :)
from foundationdb.
And more generally, layers can create functions that combine any of the atomic ops as they see fit. I suspect that will be how we initially approach the bindings we're currently publishing -- we probably won't provide any combinations in the bindings themselves, but instead defer that to layer writers as is appropriate to them.
from foundationdb.
Related Issues (20)
- Add typing for FDB python binding package
- FoundationDB is unresponsive on MacOS ARM64 when disk usage is high HOT 1
- TestOpenNotExistTenant will always fail on release-7.3/release-7.1
- GetEstimatedRangeSizeBytes can cause PacketLimitExceeded error on commit proxies
- Benchmark `Trace.cpp:SuppressionMap`
- ASSERTion in flow may be improved by bringing in less branches HOT 3
- FDBLibTLS being used? HOT 1
- Use pathlib.Path in Directory layer in Python bindings if possible
- DR fails atomicity in 7.3.43 HOT 4
- Use std::filesystem::path in Platform.h HOT 7
- Remove path code in platform.h
- Automatic idempotency ids have insufficient entropy
- release package for linux arm64 HOT 10
- Batch GRV Rate Limit Exceeded is not always thrown HOT 2
- Add an API to support splitting a given range into shards individually HOT 6
- Apple analysis
- Client side does not merge conflict ranges HOT 2
- Problems in retrieving conflicting keys after setting transaction option ReportConflictingKeys HOT 1
- SQLite in StorageServer deadlocked after the node was disconnected and resumed. HOT 4
- fbcli in python
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from foundationdb.