#Sateesh: This would be only one time activity only,but one problem with this approach is lets suppose i have 1gb of xml file when i create db for this xml it would result in approximatly 2gb of database and for this i need to maintain TB's of hard disk […]
This sounds like a general architectural challenge to me, which may not necessarily linked to BaseX itself. What do you need all those user-specific databases for?
which we are not able to defend with clients.
What do you mean by that?
#Sateesh: Per minute we can expect 100 parallel hits,in this hits some queries might be complex queries and some might be returning huge volumes of data in response.
Once again, this sounds more like a general issue. If the queries are really complex in terms of runtime (O(n²) or more?), and if the returned data is huge, you will always come across limits in terms of CPU power and bandwidth, no matter which system you are using. Maybe you could analyze if you really need to return the complete amount of data, or if the client can live with a much smaller result. Think of a world map: the contained amount of information is immense, but on a certain level, you will only see parts of the data. The same applies to the TreeMap in BaseX, which only retrieves parts of the database that are required for the actual visual representation. As you may know, XQuery is a very powerful language, which does not only allow you to do aggregation, ordering or filtering in a query. You can also use it to create completely new XML fragments that are comprised of the contents of existing databases.