I have the following use case: a flat file has 500’000 records with 3 fields each. It is about 15-20MB big.
One field is a customer number, another an amount. Now I want to retrieve in one request the amounts for 100 customers. The search should be very performant, so I don’t want to use a database or lots of database queries.
The idea is to use a hash map that is stored in memory. The map items (amount) will be updated also during the day. At the same time I want to retrieve the amounts. So I have update and read operations on this map.
What do you think about using a map? What problems may I run into?
The hash map can store as many entries has you have memory on the server but accessing a hash map from the memory adapter is slow because the whole hash map will be copied if you read or update the hash map.
The good news is that we are working on a better solution. Soon you will be able to read and update single hash map entries.
Parallel update and read operation to the memory adapter are no problem because the access is serialized and the data is always copied to and from the memory adapter.
i read in the documentation about “Using the Memory Adapter with Maps” (http://wiki.e2e.ch/E2EDOC/Using+the+Memory+Adapter+with+Maps) and in my actual project i tried to access a hash map entry from the memory adapter. When i try to compile my project i get an exception: “The argument pin ‘hashMapKey’ is not input of the called component.”.
My Builder Version is 22.214.171.124 and i guess that it is not possible with this version, right? Can you tell me when it will be possible or what i need to consider to realize it?
In this Builder version the feature is not available yet. I uploaded the recent Builder in the beta directory on the FTP. It is untested and not released yet, but you can give it a try.
Official release date is not yet defined.