Comments (4)
After discussions with various individuals, I'd like to make sure we still have the ability to apply this generic criteria to both batch queries and use "matches()" to verify it against streaming data. That's an extremely powerful feature. The current design means quite a bit of code needs to be changed when new criteria elements are added (such as regex) and it'd be nice to whittle that down a bit. I'm not seeing too many performance issues with the current implementation because generally the visitors (for validating and optimizating) only get done once when the query is sent to the service that's going to be applying it.
from mango.
What I mean by performance issues is for evaluating criteria. Currently the only way that can be done is to hook in a visitor that knows how to evaluate all of your criteria. This evaluation would need to be done every time here is a new event in the stream.
Only the optimization and validation needs to be done once.
from mango.
I mean, right now there's a single optimization that happens with the Node tree before it is turned into the Criteria. The purpose for that is so optimizations can be done once and the resulting Criteria tree can be matched against directly.
from mango.
With the new Predicate Criteria, the performance concern isn't an issue. That was mostly related to using the visitor pattern to allow for evaluation of the criteria to return a true/false in a boolean expression tree.
from mango.
Related Issues (20)
- IP classes should be caching the byteArray used for comparisons instead of the InetAddress HOT 3
- CloseableIterables needs a toList() or toCollection method HOT 2
- Host the javadocs for release versions
- Release mango 2.0 HOT 1
- Removed deprecated jackson serialization and deserialization classes
- Most of the criteria objects don't evaluate correctly
- Entity object needs to specify a serialVersionUuid HOT 1
- "Short Alias" for type encoders HOT 7
- AbstractAttributeStore should use the ArrayListMultiMap HOT 2
- Remove ComparableComparator
- Add a close/shutdown method to the Batcher interface that returns all of the unprocessed objects in the queue.
- RangeLeaf should not just extend AbstractKeyValueLeaf HOT 1
- Cleanup Criteria domain objects
- BigDecimalLexiEncoder has a bug with lexi encoding 0
- IP Type should be Public
- Invalid error message parameters HOT 1
- Replace Query and Criteria APIs with library support HOT 1
- Fix use of methods that have been deprecated in new guava versions. HOT 6
- Update to use Java 8
- Add encoders for Java 8's Instant time class
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 mango.