Multiprocess programming and enterprise indexing

"Manuel Amador (Rudd-O)" <amadorm-nDfMsQdK0rc/[email protected]>
Newsgroups gmane.linux.admin.managers
Message-ID <[email protected]>
Hi there, everyone!  I'm a frequent reader of LinuxManagers and I'd like 
to come up with another question for LinuxManagers to solve =)

This is the deal.  I'm developing an application which will serve as an 
enterprise real-time full-text-index for Linux.  We plan to release a 
fully functional version as open-source, and release an Enterprise 
edition with the ability to index networked NFS partitions, reply to 
queries posed by Windows SAMBA clients, and the ability to index 
proprietary file formats.  Our release date would be 6 months from now.  
The end-user model of the product is a search tool, akin to the Windows, 
KDE and GNOME search tools (we sure hope that at least the GNOME and KDE 
people piggyback on our services).  This search tool would let the user 
find any file based on properties/metadata (author, album, date, title, 
subject, etcetera) and data (full-text-indexing) in under ten seconds 
for ten thousand files.

Two questions.  On the business side of it, what would it be like for 
your company/corporation/workplace to have such a tool?  For most large 
corporations (or any with a large file server), there will exist the 
need for the enterprise version, because of the networked index 
capabilities, and because of the proprietary indexing thingie.

The second question is that we're planning to serve search requests 
through a search service (a daemon).  This daemon would listen through a 
UNIX named pipe (FIFO).  Now, if two different searches come through the 
same pipe, how can the search service distinguish between one search and 
the other?  What I mean is, how can I multiplex a single pipe's multiple 
inputs?  Are pipes two-way in Linux/Solaris?  This is an easy task if 
it's done with TCP/IP, but it's much trickier if using pipes.  Now, I 
can't use TCP/IP because of security and functionality constraints in 
our requirements list, but pipes aren't ruled out.

To try to make it more clear: applications wishing to pose a search 
query write to a pipe, and on the other side of the pipe the search 
service gets the query, queries the index and replies with a set of 
results.  Now, I've seen that PostgreSQL and MySQL both communicate with 
their clients through a single pipe (and TCP/IP).  How do they 
distinguish between multiple simultaneous requests?

Tricky question?  I understand how to make a program into a daemon, and 
how to read from/write to pipes. 

good luck, and thanks for your assistance =)

        Manuel Amador
_______________________________________________
LinuxManagers mailing list - http://www.linuxmanagers.org
submissions: LinuxManagers-35TzE1X9F6582KRnZfj+bdi2O/[email protected]
subscribe/unsubscribe: http://www.linuxmanagers.org/mailman/listinfo/linuxmanagers
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.